ITSAppUsesNonExemptEncryption соответствие экспорта при внутреннем тестировании?

215

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

введите описание изображения здесь

Авижит Нагаре
источник
3
Он буквально спрашивает, используете ли вы какую-либо криптографию / ваше приложение предназначено для криптографического хранения защищенной информации.
Andriko13
1
По состоянию на 20 сентября 2016 года это больше не требуется. Смотрите мой ответ здесь: stackoverflow.com/a/40391664/776167 - Вы можете сказать, что вы освобождены.
hisnameisjimmy

Ответы:

217

В основном <key>ITSAppUsesNonExemptEncryption</key><false/>означает логическое значение, равное NO.

Значение info.plist

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

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

Элайджа Саункин
источник
1
спасибо - это было именно то, что я искал (как добавить этот ключ в графический файл plist)
Наталья
2
Установка «ITSAppUsesNonExemptEncryption» в false / NO не означает, что шифрование в вашем приложении не изменилось. Это означает, что приложение не использует шифрование или только исключает шифрование. Если ваше приложение использует шифрование и не освобождается, вы должны установить это значение в YES / true. Очень немногие приложения могут установить его в NO; Например, если какая-то часть вашего приложения использует https, вам почти наверняка нужно сказать ДА. См stackoverflow.com/questions/2135081/...
JosephH
1
@JosephH хорошо, большое спасибо за понимание, действительно, ваша информация, кажется, верна
Элайджа Саункин
23
Обычно вам не нужно устанавливать значение YES, если вы используете https. См. Примечание 4 к категории 5, часть 2 . По большей части, если основной целью приложения не является шифрование, вы можете установить значение NO. Здесь есть некоторые оговорки, например, хотите ли вы отказаться от информации по запросу «соответствующего органа», так что читайте внимательно.
Бен Кейн
1
HTTPS-шифрование реализовано на уровне ОС; приложение не входит в проблему фактического шифрования данных. В моем понимании предложение Бена Кейна верно.
Илия Саункин
61

В соответствии с WWDC2015 Распределение Что нового

введите описание изображения здесь

Установка «ITSAppUsesNonExemptEncryption» в «NO» в info.plist работает нормально. если в вашем приложении нет криптографического контента.

введите описание изображения здесь

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

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

Также Apple Doc.

Важное замечание: Если ваше приложение требует, чтобы вы предоставили дополнительные документы для проверки шифрования, ваше приложение не будет иметь статус «Готов к продаже» в магазине до тех пор, пока Export Compliance не рассмотрит и не утвердит ваши документы. Приложение нельзя распространять для предварительного тестирования до тех пор, пока Export Compliance не рассмотрит и не одобрит его.

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

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

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

Вы можете загрузить сборку без ключа соответствия экспорту. Если вы включите ключ, это может означать, что вам не нужна документация соответствия экспорту; это не требует одобрения. Если вы включаете ключ, который ссылается на конкретный документ соответствия экспорту, этот документ должен быть утвержден; он не может быть в рассмотрении или отклонен.

введите описание изображения здесь

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

Авижит Нагаре
источник
Для большего. stackoverflow.com/questions/2135081/…
Avijit Nagare
51

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

<key>ITSAppUsesNonExemptEncryption</key>  
<false/>

Просто вставьте перед </dict></plist>

Акшай Фуларе
источник
25

Apple упростила наш процесс сборки, поэтому вам не нужно каждый раз нажимать на один и тот же флажок. Вы можете оптимизировать свой поток iTC, компилируя этот флаг в приложение.

Это все еще так на 2019 год.

Педро Гоес
источник
17

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

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

mriaz0011
источник
12

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • автоустановщики загрузки и обновления ПО

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

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

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

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

productioncoder
источник
4

Та же ошибка решена следующим образом

введите описание изображения здесь

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

}
Рифат Эрдем Сахин
источник
добавил соответствующую строку кода, чтобы dev мог использовать для добавления необходимые ключи
Rıfat Erdem Sahin
Понял, удалил мой комментарий. Спасибо
Бхаргав Рао
4

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

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

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

Роб Уиллетт
источник
1
Ссылка на документацию "выйти"? Я не могу определить, в порядке ли HTTPS или нет.
gbhall
@gbhall Не требуется для HTTPS. Вы можете попробовать подать заявку, и вы больше не получите форму заявки с сайтов GOV. (не помню имя)
@ Пробирайся, ура, парень. Надеюсь, это останется верным в будущем.
gbhall
@ Скрытность приветствует человека. Этот более свежий пример, похоже, указывает на то, что вам нужно подавать годовой отчет: stackoverflow.com/a/44396900/333733
gbhall
1
@ Подбери определенно что-то, на что можно посмотреть. Спасибо за ссылки. Просто HTTPS на данный момент.
gbhall