Answers:
基本上<key>ITSAppUsesNonExemptEncryption</key><false/>
代表等于NO的布尔值。
通过@JosepH更新:此值表示该应用程序不使用加密,或仅使用豁免加密。如果您的应用程序使用加密且不被豁免,则必须将此值设置为YES / true。
有时,当一个应用程序被认为使用加密时,这似乎是有争议的。
据WWDC2015分布有什么新消息
在info.plist中将“ ITSAppUsesNonExemptEncryption”设置为“ NO”可以正常工作。如果您的应用程序中没有加密内容。
我得到了这个弹出窗口。在选择内部测试版本时,我没有在info.plist中包含“ ITSAppUsesNonExemptEncryption”密钥,但仍然可以使用。
即使我成功上传了新应用程序,也没有包含“ ITSEncryptionExportComplianceCode”和“ ITSAppUsesNonExemptEncryption”密钥。
重要提示:如果您的应用要求您提供其他文档以供加密审核,则在“出口合规性”审核并批准您的文档之前,您的应用将不会在商店中处于“待售”状态。在Export Compliance审核并批准之前,无法分发该应用程序以进行预发布测试。
如果您的应用程序未使用加密,并且您不想在提交时回答这些问题,则可以在构建中提供导出合规性信息。您也可以通过iTunes Connect提供新的或更新的文档,以在将其上载到iTunes Connect之前接收要包含在构建中的适当的字符串值。
要在iTunes Connect中添加导出合规性文档:
转到“功能”下的“加密”部分。单击适当的平台部分旁边的加号。适当回答问题。出现提示时附加文件。单击保存。您的文件将立即发送以供审查,并且文件的状态将显示在“合规性审查”中。还将自动生成一个键值,您可以将其包含在Info.plist文件中。有关在构建中包含键值的更多信息,请参见“资源和帮助”部分的“贸易合规性”。
您可以上载没有导出合规性密钥的构建。如果包含密钥,则可以表明您不需要导出合规性文档;这不需要批准。如果您包含引用特定出口合规性文件的密钥,则必须批准该文件。它不能处于“审核中”或“已拒绝”状态。
您可以随时通过单击文档文件名并选择“更多信息”来查看答案。如果您需要更新文档或更改问题的任何答案,则需要重复上述步骤以添加与您的更改相对应的新文档。
将此密钥添加到plist文件中...一切都会好起来..
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
只是粘贴之前 </dict></plist>
苹果简化了我们的构建流程,因此您无需每次都单击同一复选框。您可以通过将此标志编译到应用程序中来简化iTC流程。
截至2019年仍然如此。
基本上有两件事要牢记。如果您根本不使用加密,或者您属于豁免法规的一部分,则只能将其设置为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
像这样解决了同样的错误
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);
}
}
苹果已经改变了规则。我通读了所有的Apple文档以及我能找到的尽可能多的美国出口法规。
我对此的看法是直到最近,即使对于大多数应用程序都使用HTTPS,这也意味着Apple需要出口证书。某些应用程序(例如银行业务)可以使用,但对于许多应用程序,它们并没有属于非常非常广泛的免税类别。
但是,Apple现在针对仅使用https的应用程序在免税类别下引入了getout。我不知道他们什么时候做的,但我认为是2016年12月或2017年1月。我们现在提交的应用程序没有美国政府的证书。