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


当前回答

在Xcode 12中使用Non-Exempt Encryption而不是ITSAppUsesNonExemptEncryption

其他回答

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

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

当一个应用程序被认为使用加密时,这似乎是有争议的。

同样的错误是这样解决的

    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);
    }

}

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

应用程序使用非豁免加密

在Xcode 12中使用Non-Exempt Encryption而不是ITSAppUsesNonExemptEncryption

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

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