Otrzymałem ten komunikat podczas wybierania kompilacji do testów wewnętrznych. Mówi o ustawianiu ITSAppUsesNonExemptEncryption w info.plist, co to znaczy? czy to konieczne?
Otrzymałem ten komunikat podczas wybierania kompilacji do testów wewnętrznych. Mówi o ustawianiu ITSAppUsesNonExemptEncryption w info.plist, co to znaczy? czy to konieczne?
Odpowiedzi:
Zasadniczo <key>ITSAppUsesNonExemptEncryption</key><false/>
oznacza wartość logiczną równą NO.
Aktualizacja przez @JosepH: ta wartość oznacza, że aplikacja nie używa szyfrowania lub tylko szyfrowanie zwolnione. Jeśli aplikacja używa szyfrowania i nie jest zwolniona, musisz ustawić tę wartość na TAK / prawda.
Czasami wydaje się dyskusyjne, gdy aplikacja rozważa użycie szyfrowania.
Według WWDC2015 Dystrybucja Co nowego
Ustawienie „ITSAppUsesNonExemptEncryption” na „NIE” w info.plist działa poprawnie. jeśli w Twojej aplikacji nie ma treści kryptograficznych.
Otrzymałem to okienko wyskakujące Podczas wybierania kompilacji do testów wewnętrznych nie dodałem klucza „ITSAppUsesNonExemptEncryption” do mojego info.plist, ale nadal działało dla mnie.
Nawet pomyślnie przesłana nowa aplikacja nie zawierała kluczy „ITSEncryptionExportComplianceCode” i „ITSAppUsesNonExemptEncryption”.
Również Apple Doc.
Ważne: jeśli aplikacja wymaga dostarczenia dodatkowych dokumentów do przeglądu szyfrowania, nie będzie miała statusu Gotowy do sprzedaży w sklepie, dopóki zgodność eksportowa nie przejrzy i nie zatwierdzi dokumentów. Aplikacja nie może być rozpowszechniana w celu przetestowania przedpremierowego, dopóki zgodność eksportowa nie zostanie sprawdzona i zatwierdzona.
Jeśli aplikacja nie korzysta z szyfrowania i nie chcesz odpowiadać na te pytania w momencie przesyłania, możesz podać informacje o zgodności eksportu z kompilacją. Możesz także dostarczyć nową lub zaktualizowaną dokumentację za pośrednictwem iTunes Connect, aby otrzymać odpowiednią wartość ciągu klucza, którą należy uwzględnić w kompilacji przed przesłaniem jej do iTunes Connect.
Aby dodać dokumentację zgodności z eksportem w iTunes Connect:
Przejdź do sekcji Szyfrowanie w części Funkcje. Kliknij znak plus obok odpowiedniej sekcji platformy. Odpowiedz odpowiednio na pytania. Załącz plik po wyświetleniu monitu. Kliknij Zapisz. Twoje dokumenty zostaną natychmiast przesłane do przeglądu, a status dokumentu będzie widoczny w Przeglądu zgodności. Kluczowa wartość zostanie również wygenerowana automatycznie, którą można dołączyć do pliku Info.plist. Aby uzyskać więcej informacji na temat dołączania kluczowej wartości do kompilacji, zobacz sekcję Zasoby i pomoc Zgodność z przepisami.
Możesz przesłać kompilację bez klucza zgodności eksportu. Jeśli podasz klucz, może to oznaczać, że nie potrzebujesz dokumentacji zgodności z eksportem; nie wymaga to zgody. Jeśli podasz klucz, który odwołuje się do określonego dokumentu zgodności z eksportem, dokument ten musi zostać zatwierdzony; nie może być w trybie recenzji ani odrzucenia.
Możesz przejrzeć swoje odpowiedzi w dowolnym momencie, klikając nazwę pliku dokumentu i wybierając Więcej informacji. Jeśli musisz zaktualizować dokumentację lub zmienić dowolną odpowiedź na pytania, musisz powtórzyć powyższe kroki, aby dodać nowy dokument, który odpowiada wprowadzonym zmianom.
Dodaj ten klucz do pliku plist ... Wszystko będzie dobrze ..
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
Po prostu wklej wcześniej </dict></plist>
Apple uprościło nasz proces tworzenia, więc nie musisz za każdym razem klikać tego samego pola wyboru. Możesz usprawnić przepływ iTC, kompilując tę flagę w aplikacji.
Tak jest nadal od 2019 r.
Należy pamiętać o 2 rzeczach. Możesz ustawić tę wartość na NIE, jeśli albo w ogóle nie korzystasz z szyfrowania , albo jesteś objęty wyłączonymi przepisami . Dotyczy to następujących rodzajów aplikacji:
Źródło: Izba handlowa : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15
Aplikacje konsumenckie
- zapobieganie piractwu i kradzieży oprogramowania lub muzyki;
- muzyka, filmy, utwory / muzyka, zdjęcia cyfrowe - odtwarzacze, nagrywarki i organizery
- gry / gry - urządzenia, oprogramowanie uruchomieniowe, interfejsy HDMI i inne komponenty, narzędzia programistyczne
- Telewizor LCD, Blu-ray / DVD, wideo na żądanie (VoD), kino, cyfrowe nagrywarki wideo (DVR) / osobiste nagrywarki wideo (PVR) - urządzenia, przewodniki multimedialne on-line, integralność i ochrona treści komercyjnych, HDMI i inne elementy interfejsy (nie wideokonferencje);
- drukarki, kopiarki, skanery, aparaty cyfrowe, kamery internetowe - w tym części i podzespoły
- narzędzia i sprzęt gospodarstwa domowego
Aplikacje biznesowe / systemowe: obsługa systemów, integracja i kontrola. Kilka przykładów
automatyzacja procesów biznesowych (BPA) - planowanie i harmonogramowanie procesów, zarządzanie łańcuchem dostaw, inwentaryzacja i dostawa
transport - bezpieczeństwo i konserwacja, monitorowanie systemów i sterowniki pokładowe (w tym systemy lotnicze, kolejowe i komercyjne systemy samochodowe), technologie „inteligentnych autostrad”, operacje transportu publicznego i pobieranie opłat itp.
systemy przemysłowe, produkcyjne lub mechaniczne - w tym robotyka, bezpieczeństwo instalacji, media, fabryka i inny ciężki sprzęt, sterowniki systemów obiektów, takie jak alarmy przeciwpożarowe i HVAC
medyczne / kliniczne - w tym aplikacje diagnostyczne, harmonogramy pacjentów i poufność zapisów danych medycznych
geologia stosowana - górnictwo / wiercenie, pobieranie próbek atmosferycznych / monitorowanie pogody, mapowanie / pomiary, tamy / hydrologia
Badania naukowe / naukowe / analityczne. Kilka przykładów:
zarządzanie procesami biznesowymi (BPM) - abstrakcja i modelowanie procesów biznesowych
wizualizacja naukowa / symulacja / ko-symulacja (z wyłączeniem takich narzędzi do obliczeń, tworzenia sieci, kryptoanalizy itp.)
narzędzia do syntezy danych dla nauk społecznych, ekonomicznych i politycznych (np. ekonomiczne, populacyjne, globalne zmiany klimatu, badanie opinii publicznej itp. prognozowanie i modelowanie)
Bezpieczna dostawa i instalacja własności intelektualnej. Kilka przykładów
automatyczne instalatory i aktualizatory do pobierania oprogramowania
ochrona klucza licencyjnego i podobna walidacja zakupu
projektowanie oprogramowania i sprzętu Ochrona IP
oprogramowanie do projektowania wspomaganego komputerowo (CAD) i inne narzędzia kreślarskie
Uwaga: te przepisy dotyczą również testowania aplikacji przy użyciu TestFlight
Ten sam błąd rozwiązany w ten sposób
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 zmieniło zasady w tym zakresie. Przeczytałem wszystkie dokumenty Apple i tyle amerykańskich rejestrów eksportowych, ile mogłem znaleźć.
Moje zdanie na ten temat było do niedawna nawet przy użyciu HTTPS dla większości aplikacji, co oznaczało, że Apple wymagałoby certyfikatu eksportowego. Niektóre aplikacje, takie jak bankowość, byłyby w porządku, ale w przypadku wielu aplikacji nie należą one do kategorii wyłączonej, która jest bardzo, bardzo szeroka.
Jednak firma Apple wprowadziła obecnie opcję zwolnienia dla kategorii zwolnionych dla aplikacji, które TYLKO używają protokołu https. Nie wiem, kiedy to zrobili, ale myślę, że był to grudzień 2016 lub styczeń 2017. Teraz przesyłamy nasze aplikacje bez certyfikatu rządowego USA.