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

我在选择构建进行内部测试时收到了这条消息。它说的是在info中设置ITSAppUsesNonExemptEncryption。请问这是什么意思?有必要吗?

enter image description here

135491 次浏览

苹果简化了我们的构建过程,所以你不需要每次都点击相同的复选框。你可以通过将这个标志编译到应用程序中来简化你的iTC流程。

截至2019年,情况仍然如此。

在plist文件中添加此密钥…一切都会好起来的。

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

只是粘贴在</dict></plist>之前

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

info。plist价值”> < / ></p>


<p>由@JosepH更新:这个值意味着应用程序不使用加密,或只使用豁免加密。如果你的应用程序使用加密并且没有被豁免,你必须将这个值设置为YES/true。</p>


<p>当一个应用程序被认为使用加密时,这似乎是有争议的。</p></div>
                                                                            </div>
                                </div>
                            </div>
                        </div>
                                                <div class=

根据WWDC2015分布什么新

enter image description here

在info中设置ITSAppUsesNonExemptEncryption为NO。plist作品 很好。如果你的应用程序中没有加密内容

enter image description here

在选择构建进行内部测试时,我得到了这个弹出框,我没有在我的信息中包含“ITSAppUsesNonExemptEncryption”键。Plist,但仍然为我工作。

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

苹果医生。

重要:如果你的应用要求你提供额外的文件 为了加密审查,你的应用程序不会有Ready for Sale 在出口符合性审查和批准之前,存储的状态 你的文档。该应用程序不能进行预发布测试 直到出口合规部门审查并批准。

如果你的应用没有使用加密,并且你不想在提交时回答这些问题,你可以在你的构建中提供导出遵从性信息。您还可以通过iTunes Connect提供新的或更新的文档,以便在将其上传到iTunes Connect之前接收相应的键字符串值。

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

进入功能下的加密部分。 单击相应平台部分旁边的加号。 恰当地回答问题。 当出现提示时附加文件。 单击Save。 然后,您的文件将被立即发送进行审查,您的文件的状态将显示在合规性审查中。一个键值也将自动生成,您可以包括在您的信息。plist文件。有关在构建中包含键值的更多信息,请参阅参考资料和帮助部分贸易遵从性

您可以在没有导出遵从性密钥的情况下上传构建。如果您包含一个密钥,它可以表明您不需要导出遵从性文档;这并不需要批准。如果包含引用特定出口合规文件的密钥,则该文件必须获得批准;它不能在评审中或被拒绝。

enter image description here

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

基本上有两件事要记住。如果你要么根本不使用加密或者你是豁免条例的一部分,你只允许将它设置为NO。这适用于以下几种应用:

来源:Chamber of Commerce .: https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

使用者应用程序

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

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

  • 业务流程自动化(BPA) -流程规划和调度,供应链管理,库存和交付

  • 运输-安全与维护,系统监控和机载控制器(包括航空,铁路和商业 汽车系统),“智能高速公路”技术,公共交通 操作和收费等

    工业,制造或机械系统-包括机器人,工厂安全,公用事业,工厂和其他重型设备, 设施系统控制器,如火灾报警器和暖通空调

  • 医疗/临床-包括诊断应用、患者调度和医疗数据记录机密性

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

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

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

  • 科学可视化/仿真/联合仿真(不包括计算、网络、密码分析等工具)

  • 社会、经济和政治科学的数据合成工具(例如,经济、人口、全球气候变化、公众舆论 投票等,预测和建模)

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

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

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

  • 软硬件设计IP保护

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

注意:这些规则同样适用于使用TestFlight测试应用程序

同样的错误是这样解决的

enter image description here

    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,也意味着苹果需要导出证书。一些应用程序,如银行应用程序可以,但对于许多应用程序来说,它们不属于非常广泛的例外类别。

然而,苹果现在在JUST使用https的应用程序的豁免类别下引入了一个getout。我不知道他们是什么时候做的,但我想应该是2016年12月或2017年1月。我们现在提交我们的应用程序没有从美国政府的证书。

要从下拉菜单中选择,请输入以下一行:

应用程序使用非豁免加密

在Xcode 12中使用应用程序使用非豁免加密代替ITSAppUsesNonExemptEncryption