我在选择构建进行内部测试时收到了这条消息。它说在信息中设置ITSAppUsesNonExemptEncryption。请问这是什么意思?有必要吗?
当前回答
要从下拉菜单中选择,请输入以下一行:
应用程序使用非豁免加密
其他回答
根据WWDC2015发布最新消息
在info中设置ITSAppUsesNonExemptEncryption为NO。plist作品 很好。如果你的应用程序中没有加密内容。
在选择构建进行内部测试时,我得到了这个弹出框,我没有在我的信息中包含“ITSAppUsesNonExemptEncryption”键。Plist,但仍然为我工作。
即使我成功上传了新的应用程序,也不包括“ITSEncryptionExportComplianceCode”和“ITSAppUsesNonExemptEncryption”密钥。
还有Apple Doc。
重点:如果你的应用程序要求你提供额外的文件 为了加密审查,你的应用程序不会有Ready for Sale 在出口符合性审查和批准之前,存储的状态 你的文档。该应用程序不能进行预发布测试 直到出口合规部门审查并批准为止。
如果你的应用没有使用加密,并且你不想在提交时回答这些问题,你可以在你的构建中提供导出遵从性信息。您还可以通过iTunes Connect提供新的或更新的文档,以便在将其上传到iTunes Connect之前接收相应的键字符串值。
要在iTunes Connect中添加导出合规性文档:
Go to the Encryption section under Features. Click the plus sign next to the appropriate platform section. Answer the questions appropriately. Attach the file when prompted. Click Save. Your documents will then be sent for review immediately and the status of your document will show in Compliance Review. A key value will also be generated automatically that you can include in your Info.plist file. For more information on including the key value with your build, see the Resources and Help section Trade Compliance.
您可以在没有导出遵从性密钥的情况下上传构建。如果您包含一个密钥,它可以表明您不需要导出遵从性文档;这并不需要批准。如果包含引用特定出口合规文件的密钥,则该文件必须获得批准;它不能在评审中或被拒绝。
您可以随时通过单击文档文件名并选择更多信息来查看您的答案。如果您需要更新您的文档或更改问题的任何答案,您将需要重复上述步骤以添加与您的更改相对应的新文档。
基本上<key>ITSAppUsesNonExemptEncryption</key><false/>表示一个布尔值等于NO。
由@JosepH更新:这个值意味着应用程序不使用加密,或只使用豁免加密。如果你的应用程序使用加密并且没有被豁免,你必须将这个值设置为YES/true。
当一个应用程序被认为使用加密时,这似乎是有争议的。
在plist文件中添加此密钥…一切都会好起来的。
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
只是在</dict></plist>之前粘贴
在Xcode 12中使用Non-Exempt Encryption而不是ITSAppUsesNonExemptEncryption
同样的错误是这样解决的
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);
}
}
推荐文章
- 理解设置
- 架构i386的未定义符号:_OBJC_CLASS_$_SKPSMTPMessage",引用自:错误
- UILabel对齐文本到中心
- Objective-C中方法混合的危险是什么?
- 如何使用接口生成器创建的nib文件加载UIView
- iOS如何设置应用程序图标和启动图像
- 更改UITextField和UITextView光标/插入符颜色
- 'Project Name'是通过优化编译的——步进可能会表现得很奇怪;变量可能不可用
- 如何设置回退按钮文本在Swift
- 模拟器慢动作动画现在打开了吗?
- 如何为TableView创建NSIndexPath
- 滑动删除和“更多”按钮(就像iOS 7的邮件应用程序)
- 如何比较两个nsdate:哪个是最近的?
- 使UINavigationBar透明
- 如何改变推和弹出动画在一个基于导航的应用程序