Я получил это сообщение при выборе сборки для внутреннего тестирования. Он говорит о настройке ITSAppUsesNonExemptEncryption в info.plist, что это значит? это необходимо?
Я получил это сообщение при выборе сборки для внутреннего тестирования. Он говорит о настройке ITSAppUsesNonExemptEncryption в info.plist, что это значит? это необходимо?
Ответы:
В основном <key>ITSAppUsesNonExemptEncryption</key><false/>
означает логическое значение, равное NO.
Обновление от @JosepH: это значение означает, что приложение не использует шифрование или только исключает шифрование. Если ваше приложение использует шифрование и не является исключением, вы должны установить для этого значения значение YES / true.
Иногда кажется спорным, когда приложение использует шифрование.
В соответствии с 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.
Вы можете загрузить сборку без ключа соответствия экспорту. Если вы включите ключ, это может означать, что вам не нужна документация соответствия экспорту; это не требует одобрения. Если вы включаете ключ, который ссылается на конкретный документ соответствия экспорту, этот документ должен быть утвержден; он не может быть в рассмотрении или отклонен.
Вы можете просмотреть свои ответы в любое время, щелкнув имя файла документа и выбрав «Дополнительная информация». Если вам необходимо обновить свою документацию или изменить какие-либо ответы на вопросы, вам нужно будет повторить шаги, описанные выше, чтобы добавить новый документ, соответствующий вашим изменениям.
Добавьте этот ключ в файл plist ... Все будет хорошо ..
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
Просто вставьте перед </dict></plist>
Apple упростила наш процесс сборки, поэтому вам не нужно каждый раз нажимать на один и тот же флажок. Вы можете оптимизировать свой поток iTC, компилируя этот флаг в приложение.
Это все еще так на 2019 год.
Есть в основном две вещи, которые нужно иметь в виду. Вам разрешено установить его в значение НЕТ, если вы либо вообще не используете шифрование , либо вы являетесь частью освобожденных правил . Это относится к следующим видам приложений:
Источник: Торговая палата : 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
Та же ошибка решена следующим образом
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 изменила правила по этому вопросу. Я прочитал все документы Apple и столько экспортных документов США, сколько смог найти.
По моему мнению, до недавнего времени даже использование HTTPS для большинства приложений означало, что Apple потребуется экспортный сертификат. Некоторые приложения, такие как банковское дело, будут в порядке, но для многих приложений они не попадают в категорию исключений, которая очень и очень широка.
Тем не менее, Apple в настоящее время представила выход в категории исключений для приложений, которые ПРОСТО используют HTTPS. Я не знаю, когда они это сделали, но я думаю, что это было либо в декабре 2016 года, либо в январе 2017 года. Сейчас мы представляем наши приложения без сертификата правительства США.