Я получил это сообщение при выборе сборки для внутреннего тестирования. В нем говорится о настройке ITSAppUsesNonExemptEncryption в info.plist, что это значит? это нужно?

enter image description here

Ответы (9)

Согласно распределению WWDC2015 Что нового

enter image description here

Setting "ITSAppUsesNonExemptEncryption" to "NO" in info.plist works fine. if no cryptographic content in your app.

enter image description here

У меня появилось это всплывающее окно. Во время выбора сборки для внутреннего тестирования я не включил ключ «ITSAppUsesNonExemptEncryption» в свой info.plist, но все равно работал у меня.

Даже если я успешно загрузил новое приложение, в нем не было ключей «ITSEncryptionExportComplianceCode» и «ITSAppUsesNonExemptEncryption».

Также Apple Doc.

Важно: если ваше приложение требует предоставления дополнительных документов для проверки шифрования ваше приложение не будет готово к продаже статус в магазине до тех пор, пока Экспортное соответствие не будет рассмотрено и одобрено ваши документы. Приложение не может быть передано для предварительного тестирования. пока Экспортное соответствие не рассмотрит и не утвердит его.

Если ваше приложение не использует шифрование, и вы не хотите отвечать на эти вопросы во время отправки, вы можете предоставить информацию о соответствии экспорта в своей сборке. Вы также можете предоставить новую или обновленную документацию через iTunes Connect, чтобы получить соответствующее значение ключевой строки для включения в вашу сборку перед ее загрузкой в ​​iTunes Connect.

Чтобы добавить документацию о соответствии экспорта в iTunes Connect:

Перейдите в раздел «Шифрование» в разделе «Возможности». Щелкните значок плюса рядом с соответствующим разделом платформы. Ответьте на вопросы должным образом. Прикрепите файл, когда будет предложено. Щелкните Сохранить. После этого ваши документы будут немедленно отправлены на рассмотрение, а статус вашего документа будет отображаться в разделе «Проверка соответствия». Также будет автоматически сгенерировано значение ключа, которое вы можете включить в свой файл Info.plist. Дополнительную информацию о включении ключевого значения в вашу сборку см. В разделе «Ресурсы и справка» Торговое соответствие.

You can upload a build without an export compliance key. If you include a key, it can indicate that you do not need export compliance documentation; this requires no approval. If you include a key that references a specific export compliance document, that document must be approved; it cannot be in In Review or Rejected.

enter image description here

Вы можете просмотреть свои ответы в любое время, щелкнув имя файла документа и выбрав «Дополнительная информация». Если вам нужно обновить документацию или изменить какие-либо ответы на вопросы, вам нужно будет повторить описанные выше шаги, чтобы добавить новый документ, соответствующий вашим изменениям.

Та же ошибка решается вот так

enter image description here

    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 упростила наш процесс сборки, поэтому вам не нужно каждый раз устанавливать один и тот же флажок. Вы можете оптимизировать поток iTC, скомпилировав этот флаг в приложении.

Это по-прежнему актуально по состоянию на 2019 год.

Добавьте этот ключ в plist файл ... Все будет хорошо ..

ITSAppUsesNonExemptEncryption  

Просто вставьте перед

В Xcode 12 используйте Приложение использует шифрование без исключения вместо ITSAppUsesNonExemptEncryption

Чтобы выбрать из раскрывающегося списка, начните вводить следующую строку:

Приложение использует шифрование без исключения

Обычно ITSAppUsesNonExemptEncryption обозначает логическое значение, равное NO.

info.plist value

Обновление от @JosepH: это значение означает, что приложение не использует шифрование или только не использует шифрование. Если ваше приложение использует шифрование и не является исключением, вы должны установить для этого значения YES / true.

Иногда это кажется спорным, когда считается, что приложение использует шифрование.

В основном нужно иметь в виду 2 вещи. Вы можете установить для него значение NO, только если вы либо вообще не используете шифрование, , либо являетесь частью освобожденных правил. Это относится к следующим видам приложений:

Источник: Торговая палата: https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

Потребительские приложения

  • предотвращение пиратства и кражи программного обеспечения или музыки;
  • музыка, фильмы, мелодии / музыка, цифровые фотографии - плееры, рекордеры и органайзеры
  • игры / игры - устройства, рабочее ПО, HDMI и другие компонентные интерфейсы, инструменты разработки
  • ЖК-телевизор, Blu-ray / DVD, видео по запросу (VoD), кино, цифровые видеомагнитофоны (DVR) / персональные видеомагнитофоны (PVR) - устройства, онлайн мультимедийные руководства, целостность и защита коммерческого контента, HDMI и другие интерфейсы компонентов (кроме видеоконференцсвязи);
  • принтеры, копировальные аппараты, сканеры, цифровые камеры, Интернет-камеры - включая детали и узлы
  • бытовые коммуникации и техника

Бизнес / системные приложения: управление системами, интеграция и управление. Некоторые примеры

  • автоматизация бизнес-процессов (BPA) - планирование и составление графиков процессов, управление цепочкой поставок, инвентаризация и доставка

  • транспорт - безопасность и обслуживание, мониторинг систем и бортовые контроллеры (включая авиационные, железнодорожные и коммерческие автомобильные системы), технологии «умных магистралей», общественный транспорт операции, сбор за проезд и т. д.

  • промышленные, производственные или механические системы - включая робототехнику, безопасность предприятий, коммунальные услуги, заводское и другое тяжелое оборудование, контроллеры систем объектов, такие как пожарная сигнализация и HVAC

  • медицинские / клинические - включая диагностические приложения, график пациентов и конфиденциальность медицинских данных

  • прикладные науки о Земле - добыча полезных ископаемых / бурение, отбор атмосферных проб / мониторинг погоды, картографирование / съемка, плотины / гидрология

Научно-исследовательские / аналитические. Некоторые примеры:

  • управление бизнес-процессами (BPM) - абстракция и моделирование бизнес-процессов

  • научная визуализация / моделирование / совместное моделирование (за исключением таких инструментов для вычислений, сетей, криптоанализа и т. Д.)

  • инструменты синтеза данных для социальных, экономических и политических наук (например, экономика, народонаселение, глобальное изменение климата, общественное мнение опрос и др. прогнозирование и моделирование)

Безопасная доставка и установка интеллектуальной собственности. Некоторые примеры

  • программы автоматической установки и обновления программного обеспечения

  • лицензионный ключ для защиты продукта и аналогичная проверка покупки

  • Программно-аппаратный дизайн Защита IP

  • Программное обеспечение для автоматизированного проектирования (САПР) и другие инструменты для черчения

Примечание. Эти правила также действительны для тестирования вашего приложения с помощью TestFlight

Apple изменила правила на этот счет. Я прочитал все документы Apple и все правила экспорта США, которые смог найти.

На мой взгляд, до недавнего времени даже использование HTTPS для большинства приложений означало, что Apple потребует экспортный сертификат. Некоторые приложения, такие как банковское дело, подойдут, но для многих приложений они не попадают в категорию исключений, которая является очень и очень широкой.

Однако Apple теперь представила выход в категорию исключений для приложений, которые ТОЛЬКО используют https. Я не знаю, когда они это сделали, но я думаю, что это было либо в декабре 2016 года, либо в январе 2017 года. Сейчас мы отправляем наши приложения без сертификата правительства США.

2022 WebDevInsider