内部测试时,ITSAppUsesNonExemptEncryption导出合规性吗?


215

我在选择内部测试版本时收到此消息。它说到在info.plist中设置ITSAppUsesNonExemptEncryption是什么意思?有必要吗?

在此处输入图片说明


3
从字面上看,这是在询问您是否使用任何加密/您的应用是否旨在以加密方式存储安全信息。
Andriko13年

1
自2016年9月20日起,不再需要此功能。请在此处查看我的答案:stackoverflow.com/a/40391664/776167-您可以说自己是免税的。
hisnameisjimmy

Answers:


217

基本上<key>ITSAppUsesNonExemptEncryption</key><false/>代表等于NO的布尔值。

info.plist值

通过@JosepH更新:此值表示该应用程序不使用加密,或仅使用豁免加密。如果您的应用程序使用加密且不被豁免,则必须将此值设置为YES / true。

有时,当一个应用程序被认为使用加密时,这似乎是有争议的。


1
谢谢-这正是我想要的(如何将此密钥添加到图形化plist文件中)
Natalia

2
将“ ITSAppUsesNonExemptEncryption”设置为false / NO并不意味着您的应用程序中的加密未更改。这意味着该应用程序不使用加密,或仅使用豁免加密。如果您的应用程序使用加密而不是免税,则必须将此值设置为YES / true。例如,如果您的应用程序的任何部分使用https,您几乎肯定需要说是。参见stackoverflow.com/questions/2135081/…–
JosephH

1
@JosephH好,非常感谢您的见解,确实您的信息似乎是正确的
Elijah Saounkine

23
如果使用https,通常不需要将其设置为YES。请参阅类别5第2部分中的注释4。在大多数情况下,如果应用程序的主要用途不是加密,则可以将值设置为NO。这里有一些警告,例如您是否愿意根据“适当的权威”的要求放弃信息,因此请仔细阅读。
本·凯恩

1
HTTPS加密是在操作系统级别实现的;应用程序不会真正加密数据。以我的理解,本·凯恩的建议是正确的。
伊利亚·索恩金

61

据WWDC2015分布有什么新消息

在此处输入图片说明

在info.plist中将“ ITSAppUsesNonExemptEncryption”设置为“ NO”可以正常工作。如果您的应用程序中没有加密内容。

在此处输入图片说明

我得到了这个弹出窗口。在选择内部测试版本时,我没有在info.plist中包含“ ITSAppUsesNonExemptEncryption”密钥,但仍然可以使用。

即使我成功上传了新应用程序,也没有包含“ ITSEncryptionExportComplianceCode”和“ ITSAppUsesNonExemptEncryption”密钥。

也是Apple Doc。

重要提示:如果您的应用要求您提供其他文档以供加密审核,则在“出口合规性”审核并批准您的文档之前,您的应用将不会在商店中处于“待售”状态。在Export Compliance审核并批准之前,无法分发该应用程序以进行预发布测试。

如果您的应用程序未使用加密,并且您不想在提交时回答这些问题,则可以在构建中提供导出合规性信息。您也可以通过iTunes Connect提供新的或更新的文档,以在将其上载到iTunes Connect之前接收要包含在构建中的适当的字符串值。

要在iTunes Connect中添加导出合规性文档:

转到“功能”下的“加密”部分。单击适当的平台部分旁边的加号。适当回答问题。出现提示时附加文件。单击保存。您的文件将立即发送以供审查,并且文件的状态将显示在“合规性审查”中。还将自动生成一个键值,您可以将其包含在Info.plist文件中。有关在构建中包含键值的更多信息,请参见“资源和帮助”部分的“贸易合规性”。

您可以上载没有导出合规性密钥的构建。如果包含密钥,则可以表明您不需要导出合规性文档;这不需要批准。如果您包含引用特定出口合规性文件的密钥,则必须批准该文件。它不能处于“审核中”或“已拒绝”状态。

在此处输入图片说明

您可以随时通过单击文档文件名并选择“更多信息”来查看答案。如果您需要更新文档或更改问题的任何答案,则需要重复上述步骤以添加与您的更改相对应的新文档。




25

苹果简化了我们的构建流程,因此您无需每次都单击同一复选框。您可以通过将此标志编译到应用程序中来简化iTC流程。

截至2019年仍然如此。


17

要从下拉菜单中进行选择,请开始输入以下内容:

应用程序使用非豁免加密


12

基本上有两件事要牢记。如果您根本不使用加密或者您属于豁免法规的一部分,则只能将其设置为NO 。这适用于以下类型的应用程序:

资料来源:商会https : //www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

消费类应用

  • 防止软件或音乐的盗版和盗窃;
  • 音乐,电影,曲调/音乐,数码照片–播放器,记录器和组织者
  • 游戏/游戏–设备,运行时软件,HDMI和其他组件接口,开发工具
  • 液晶电视,蓝光/ DVD,视频点播(VoD),电影院,数字录像机(DVR)/个人录像机(PVR)–设备,在线媒体指南,商业内容的完整性和保护,HDMI和其他组件接口(非视频会议);
  • 打印机,复印机,扫描仪,数码相机,网络摄像机-包括零件和子组件
  • 家用工具

业务/系统应用程序:系统操作,集成和控制。一些例子

  • 业务流程自动化(BPA)–流程计划和计划,供应链管理,库存和交付

  • 运输–安全和维护,系统监控和车载控制器(包括航空,铁路和商用汽车系统),“智能高速公路”技术,公交运营和票价收取等。

  • 工业,制造或机械系统-包括机器人,工厂安全,公用事业,工厂和其他重型设备,设施系统控制器(例如火警和HVAC)

  • 医疗/临床–包括诊断应用程序,患者安排和医疗数据记录的机密性

  • 应用地球科学–采矿/钻探,大气采样/天气监测,测绘/勘测,水坝/水文学

研究/科学/分析。一些例子:

  • 业务流程管理(BPM)–业务流程抽象和建模

  • 科学的可视化/仿真/协同仿真(不包括用于计算,联网,密码分析等的工具)

  • 用于社会,经济和政治科学的数据综合工具(例如经济,人口,全球气候变化,民意测验等的预测和建模)

确保知识产权的交付和安装。一些例子

  • 软件下载自动安装程序和更新程序

  • 许可证关键产品保护和类似的购买验证

  • 软件和硬件设计IP保护

  • 计算机辅助设计(CAD)软件和其他绘图工具

注意:这些规定也适用于使用 TestFlight


4

像这样解决了同样的错误

在此处输入图片说明

    using UnityEngine;
    using System.Collections;
    using UnityEditor.Callbacks;
    using UnityEditor;
    using System;
    using UnityEditor.iOS.Xcode;
    using System.IO;

public class AutoIncrement : MonoBehaviour {

    [PostProcessBuild]
    public static void ChangeXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
    {

        if (buildTarget == BuildTarget.iOS)
        {

            // Get plist
            string plistPath = pathToBuiltProject + "/Info.plist";
            var plist = new PlistDocument();
            plist.ReadFromString(File.ReadAllText(plistPath));

            // Get root
            var rootDict = plist.root;

            // Change value of NSCameraUsageDescription in Xcode plist
            var buildKey = "NSCameraUsageDescription";
            rootDict.SetString(buildKey, "Taking screenshots");

            var buildKey2 = "ITSAppUsesNonExemptEncryption";
            rootDict.SetString(buildKey2, "false");


            // Write to file
            File.WriteAllText(plistPath, plist.WriteToString());
        }
    }
    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }

    [PostProcessBuild]
    public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
    {
        //A new build has happened so lets increase our version number
        BumpBundleVersion();
    }


    // Bump version number in PlayerSettings.bundleVersion
    private static void BumpBundleVersion()
    {
        float versionFloat;

        if (float.TryParse(PlayerSettings.bundleVersion, out versionFloat))
        {
            versionFloat += 0.01f;
            PlayerSettings.bundleVersion = versionFloat.ToString();
        }
    }
    [MenuItem("Leman/Build iOS Development", false, 10)]
    public static void CustomBuild()
    {
        BumpBundleVersion();
        var levels= new String[] { "Assets\\ShootTheBall\\Scenes\\MainScene.unity" };
        BuildPipeline.BuildPlayer(levels, 
            "iOS", BuildTarget.iOS, BuildOptions.Development);
    }

}

添加了相关的代码行,以便开发可以用它来添加必要的钥匙
瑞法特埃德姆·沙辛

知道了,删除了我的评论。谢谢
巴尔加夫饶

4

苹果已经改变了规则。我通读了所有的Apple文档以及我能找到的尽可能多的美国出口法规。

我对此的看法是直到最近,即使对于大多数应用程序都使用HTTPS,这也意味着Apple需要出口证书。某些应用程序(例如银行业务)可以使用,但对于许多应用程序,它们并没有属于非常非常广泛的免税类别。

但是,Apple现在针对仅使用https的应用程序在免税类别下引入了getout。我不知道他们什么时候做的,但我认为是2016年12月或2017年1月。我们现在提交的应用程序没有美国政府的证书。


1
链接到“获取”文档?我无法确定HTTPS是否可以。
gbhall

@gbhall HTTPS不需要。您可以尝试申请,甚至从GOV网站上都无法获得申请表。(不记得这个名字)

@Sneak OK欢呼的人。希望将来仍然如此。
gbhall

@偷偷的欢呼的人。这个最近的示例似乎表明您需要提交年度报告:stackoverflow.com/a/44396900/333733
gbhall

1
@Sneak绝对值得研究。感谢您的链接。目前只有HTTPS。
gbhall
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.