我在选择构建进行内部测试时收到了这条消息。它说在信息中设置ITSAppUsesNonExemptEncryption。请问这是什么意思?有必要吗?
当前回答
苹果已经改变了这方面的规则。我阅读了所有的苹果文件和我所能找到的美国出口法规。
我的观点是,直到最近,即使在大多数应用程序中使用HTTPS,也意味着苹果需要导出证书。一些应用程序,如银行应用程序可以,但对于许多应用程序来说,它们不属于非常广泛的例外类别。
然而,苹果现在在JUST使用https的应用程序的豁免类别下引入了一个getout。我不知道他们是什么时候做的,但我想应该是2016年12月或2017年1月。我们现在提交我们的应用程序没有从美国政府的证书。
其他回答
基本上<key>ITSAppUsesNonExemptEncryption</key><false/>表示一个布尔值等于NO。
由@JosepH更新:这个值意味着应用程序不使用加密,或只使用豁免加密。如果你的应用程序使用加密并且没有被豁免,你必须将这个值设置为YES/true。
当一个应用程序被认为使用加密时,这似乎是有争议的。
在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);
}
}
在plist文件中添加此密钥…一切都会好起来的。
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
只是在</dict></plist>之前粘贴
推荐文章
- 如何使用iOS创建GUID/UUID
- 禁用所呈现视图控制器的交互式撤销
- 点击按钮时如何打开手机设置?
- 如何使用UIVisualEffectView来模糊图像?
- 如何修复UITableView分隔符在iOS 7?
- 故事板中的自定义单元格行高设置没有响应
- 如何改变时间和时区在iPhone模拟器?
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 如何在Swift中获得唯一的设备ID ?
- 我如何知道何时UITableView完成了ReloadData?
- 复制文本到剪贴板与iOS
- 在Swift中根据字符串计算UILabel的大小
- 如何调用手势点击在UIView编程在迅速
- 什么是Swift相当于respondsToSelector?
- 如何检查NSString是否以某个字符开始