我在选择构建进行内部测试时收到了这条消息。它说在信息中设置ITSAppUsesNonExemptEncryption。请问这是什么意思?有必要吗?
当前回答
苹果已经改变了这方面的规则。我阅读了所有的苹果文件和我所能找到的美国出口法规。
我的观点是,直到最近,即使在大多数应用程序中使用HTTPS,也意味着苹果需要导出证书。一些应用程序,如银行应用程序可以,但对于许多应用程序来说,它们不属于非常广泛的例外类别。
然而,苹果现在在JUST使用https的应用程序的豁免类别下引入了一个getout。我不知道他们是什么时候做的,但我想应该是2016年12月或2017年1月。我们现在提交我们的应用程序没有从美国政府的证书。
其他回答
在Xcode 12中使用Non-Exempt Encryption而不是ITSAppUsesNonExemptEncryption
苹果已经改变了这方面的规则。我阅读了所有的苹果文件和我所能找到的美国出口法规。
我的观点是,直到最近,即使在大多数应用程序中使用HTTPS,也意味着苹果需要导出证书。一些应用程序,如银行应用程序可以,但对于许多应用程序来说,它们不属于非常广泛的例外类别。
然而,苹果现在在JUST使用https的应用程序的豁免类别下引入了一个getout。我不知道他们是什么时候做的,但我想应该是2016年12月或2017年1月。我们现在提交我们的应用程序没有从美国政府的证书。
在plist文件中添加此密钥…一切都会好起来的。
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
只是在</dict></plist>之前粘贴
同样的错误是这样解决的
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);
}
}
基本上<key>ITSAppUsesNonExemptEncryption</key><false/>表示一个布尔值等于NO。
由@JosepH更新:这个值意味着应用程序不使用加密,或只使用豁免加密。如果你的应用程序使用加密并且没有被豁免,你必须将这个值设置为YES/true。
当一个应用程序被认为使用加密时,这似乎是有争议的。
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Swift:声明一个空字典
- 为什么ARC仍然需要@autoreleasepool ?
- 在成功提交我的应用程序后,“太多符号文件”
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- Xcode 4挂在“附加到(应用程序名称)”
- CFNetwork SSLHandshake iOS 9失败
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0
- 缺少推荐的图标文件-该包不包含iPhone / iPod Touch的应用程序图标,像素为“120x120”,png格式