ITSAppUsesNonExemptencryption出口符合性,而内部testing?

我在select内部testing版本的时候收到了这个消息。关于在info.plist中设置ITSAppUsesNonExemptEncryption是什么意思? 有必要吗?

在这里输入图像说明

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

info.plist值

通过@JosepH更新:这个值意味着应用程序不使用encryption,或者只是免除encryption。 如果您的应用程序使用encryption并且不能免除,则必须将此值设置为YES / TRUE。

有时,当一个应用程序被认为使用encryption似乎有争议。

根据WWDC2015分发什么新的

在这里输入图像说明

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

在这里输入图像说明

我已经得到这个popup在select构build内部testing期间,我没有在我的info.plist中包括“ITSAppUsesNonExemptEncryption”键,但仍然为我工作。

即使我成功上传的新应用程序没有包含“ITSEncryptionExportComplianceCode”和“ITSAppUsesNonExemptEncryption”键。

另外苹果文件。

重要提示:如果您的应用程序要求您提供有关encryption审核的其他文档,则在出口合规部门审核并批准您的文档之前,您的应用程序在商店中将没有“准备好销售”状态。 在出口合规部门审核并批准之前,该应用程序无法分发至预发布testing。

如果您的应用程序未使用encryption,并且您不希望在提交时回答这些问题,则可以在您的构build中提供导出遵从性信息。 您还可以通过iTunes Connect提供新的或更新的文档,以便在上传到iTunes Connect之前接收适当的密钥string值以包含在您的版本中。

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

转到“function”下的“encryption”部分。 点击相应平台部分旁边的加号。 正确回答问题。 提示时附加文件。 点击保存。 您的文件将立即发送审查,您的文件的状态将显示在合规审查。 一个关键值也会自动生成,您可以将其包含在Info.plist文件中。 有关在构build中包含关键值的更多信息,请参阅资源和帮助部分Trade Compliance。

您可以上传没有导出合规性密钥的版本。 如果您包含密钥,则可能表示您不需要出口合规性文档; 这不需要批准。 如果您包含引用特定出口合规性文件的密钥,则该文件必须获得批准; 它不能在审查或拒绝。

在这里输入图像说明

您可以随时查看您的答案,方法是单击文档文件名并select更多信息。 如果您需要更新文档或更改任何问题的答案,则需要重复上述步骤以添加与您的更改相符的新文档。

在plist文件中添加这个键…一切都会好起来的

 <key>ITSAppUsesNonExemptEncryption</key> <false/> 

只需粘贴在</dict></plist>

苹果已经简化了我们的构build过程,所以你不需要每次点击同一个checkbox。 你可以通过编译这个标志到应用程序来简化你的iTCstream程。

基本上有两件事要记住。 只有在根本不使用encryption的情况下才允许设置为“否”, 或者您是豁免条例的一部分 。 这适用于以下types的应用程序:

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

消费者应用

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

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

  • 业务stream程自动化(BPA) – stream程计划和调度,供应链pipe理,库存和交付

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

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

  • 医疗/临床 – 包括诊断应用,患者日程安排和医疗数据logging保密性

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

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

  • 业务stream程pipe理(BPM) – 业务stream程抽象和build模

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

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

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

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

  • 许可证重要产品保护和类似的购买validation

  • 软件和硬件deviseIP保护

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

注意:这些规定也适用于使用TestFlighttesting您的应用程序

要从下拉列表中select,请开始input以下行:

应用程序使用非豁免encryption

像这样解决了同样的错误

在这里输入图像说明

  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); } } 

苹果已经改变了这个规则。 我阅读了所有的苹果文档,以及尽可能多的美国出口注册。

我对此的看法直到最近甚至在大多数应用中使用HTTPS意味着苹果将需要出口证书。 一些应用程序,如银行业务可以,但对于许多应用程序,它们并不属于非常广泛的优秀类别。

不过,苹果公司现在已经引入了豁免类别下的getout,用于只使用https的应用程序。 我不知道他们什么时候这样做,但我认为是2016年12月或2017年1月。我们现在提交我们的应用程序没有从美国政府的证书。