Ich habe diese Meldung erhalten, als ich Build für interne Tests ausgewählt habe. Es wird über das Festlegen von ITSAppUsesNonExemptEncryption in info.plist berichtet. Was bedeutet das? ist es nötig?
Ich habe diese Meldung erhalten, als ich Build für interne Tests ausgewählt habe. Es wird über das Festlegen von ITSAppUsesNonExemptEncryption in info.plist berichtet. Was bedeutet das? ist es nötig?
Antworten:
<key>ITSAppUsesNonExemptEncryption</key><false/>
Steht grundsätzlich für einen Booleschen Wert gleich NO.
Update von @JosepH: Dieser Wert bedeutet, dass die App keine oder nur eine ausgenommene Verschlüsselung verwendet. Wenn Ihre App Verschlüsselung verwendet und nicht ausgenommen ist, müssen Sie diesen Wert auf YES / true setzen.
Es scheint manchmal umstritten, wenn eine App Verschlüsselung verwendet.
Laut WWDC2015 Distribution Whats New
Das Setzen von "ITSAppUsesNonExemptEncryption" auf "NO" in info.plist funktioniert einwandfrei. wenn kein kryptografischer Inhalt in Ihrer App.
Ich hatte dieses Popup Bei der Auswahl des Builds für interne Tests habe ich den Schlüssel "ITSAppUsesNonExemptEncryption" nicht in meine info.plist aufgenommen, aber trotzdem für mich gearbeitet.
Selbst wenn ich erfolgreich eine neue Anwendung hochgeladen habe, waren die Schlüssel "ITSEncryptionExportComplianceCode" und "ITSAppUsesNonExemptEncryption" nicht enthalten.
Auch Apple Doc.
Wichtig: Wenn Ihre App erfordert, dass Sie zusätzliche Dokumente für die Überprüfung der Verschlüsselung bereitstellen, hat Ihre App erst dann den Status "Bereit zum Verkauf" im Store, wenn Export Compliance Ihre Dokumente überprüft und genehmigt hat. Die App kann erst zum Testen vor der Veröffentlichung verteilt werden, wenn Export Compliance sie überprüft und genehmigt hat.
Wenn Ihre App keine Verschlüsselung verwendet und Sie diese Fragen zum Zeitpunkt der Übermittlung nicht beantworten müssen, können Sie Ihrem Build Informationen zur Exportkonformität bereitstellen. Sie können auch neue oder aktualisierte Dokumentationen über iTunes Connect bereitstellen, um den entsprechenden Schlüsselzeichenfolgenwert zu erhalten, der in Ihren Build aufgenommen werden soll, bevor Sie ihn auf iTunes Connect hochladen.
So fügen Sie in iTunes Connect eine Dokumentation zur Exportkonformität hinzu:
Gehen Sie zum Abschnitt Verschlüsselung unter Funktionen. Klicken Sie auf das Pluszeichen neben dem entsprechenden Plattformabschnitt. Beantworten Sie die Fragen angemessen. Hängen Sie die Datei an, wenn Sie dazu aufgefordert werden. Klicken Sie auf Speichern. Ihre Dokumente werden dann sofort zur Überprüfung gesendet und der Status Ihres Dokuments wird in der Konformitätsprüfung angezeigt. Außerdem wird automatisch ein Schlüsselwert generiert, den Sie in Ihre Info.plist-Datei aufnehmen können. Weitere Informationen zum Einfügen des Schlüsselwerts in Ihren Build finden Sie im Abschnitt Ressourcen und Hilfe zur Einhaltung von Handelsbestimmungen.
Sie können einen Build ohne einen Export-Compliance-Schlüssel hochladen. Wenn Sie einen Schlüssel angeben, kann dies darauf hinweisen, dass Sie keine Dokumentation zur Exportkonformität benötigen. Dies bedarf keiner Genehmigung. Wenn Sie einen Schlüssel angeben, der auf ein bestimmtes Exportkonformitätsdokument verweist, muss dieses Dokument genehmigt werden. Es kann nicht in Überprüfung oder Abgelehnt sein.
Sie können Ihre Antworten jederzeit überprüfen, indem Sie auf den Namen der Dokumentdatei klicken und Weitere Informationen auswählen. Wenn Sie Ihre Dokumentation aktualisieren oder eine der Antworten auf die Fragen ändern müssen, müssen Sie die obigen Schritte wiederholen, um ein neues Dokument hinzuzufügen, das Ihren Änderungen entspricht.
Fügen Sie diesen Schlüssel in die Plist-Datei ein ... Alles wird gut.
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
Einfach vorher einfügen </dict></plist>
Apple hat unseren Erstellungsprozess vereinfacht, sodass Sie nicht jedes Mal auf dasselbe Kontrollkästchen klicken müssen. Sie können Ihren iTC-Fluss optimieren, indem Sie dieses Flag in die App kompilieren.
Dies ist ab 2019 immer noch der Fall.
Grundsätzlich sind zwei Dinge zu beachten. Sie sind nur zu , es nicht erlaubt , wenn Sie entweder die Verschlüsselung überhaupt nicht verwenden , oder Sie einen Teil der frei Regelungen sind . Dies gilt für folgende Anwendungen:
Quelle: Handelskammer : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15
Verbraucheranwendungen
- Piraterie und Diebstahlprävention für Software oder Musik;
- Musik, Filme, Musik, digitale Fotos - Player, Rekorder und Organisatoren
- Spiele / Spiele - Geräte, Laufzeitsoftware, HDMI und andere Komponentenschnittstellen, Entwicklungstools
- LCD-Fernseher, Blu-ray / DVD, Video-on-Demand (VoD), Kino, digitale Videorecorder (DVRs) / persönliche Videorecorder (PVRs) - Geräte, Online-Medienhandbücher, Integrität und Schutz kommerzieller Inhalte, HDMI und andere Komponenten Schnittstellen (keine Videokonferenzen);
- Drucker, Kopierer, Scanner, Digitalkameras, Internetkameras - einschließlich Teile und Baugruppen
- Haushaltsgeräte und Haushaltsgeräte
Geschäfts- / Systemanwendungen: Systembetrieb, Integration und Steuerung. Einige Beispiele
Business Process Automation (BPA) - Prozessplanung und -planung, Supply Chain Management, Inventar und Lieferung
Transport - Sicherheit und Wartung, Systemüberwachung und Bordsteuerungen (einschließlich Luftfahrt-, Eisenbahn- und gewerbliche Fahrzeugsysteme), Technologien für intelligente Autobahnen, Betrieb öffentlicher Verkehrsmittel und Erhebung von Fahrpreisen usw.
Industrie-, Fertigungs- oder mechanische Systeme - einschließlich Robotik, Anlagensicherheit, Versorgungsunternehmen, Fabrik- und andere schwere Geräte, Anlagensteuerungen wie Feuermelder und HLK
medizinisch / klinisch - einschließlich diagnostischer Anwendungen, Patientenplanung und Vertraulichkeit medizinischer Datensätze
Angewandte Geowissenschaften - Bergbau / Bohrungen, Probenahme in der Atmosphäre / Wetterüberwachung, Kartierung / Vermessung, Dämme / Hydrologie
Forschung / wissenschaftlich / analytisch. Einige Beispiele:
Business Process Management (BPM) - Abstraktion und Modellierung von Geschäftsprozessen
wissenschaftliche Visualisierung / Simulation / Co-Simulation (ausgenommen solche Tools für Computer, Vernetzung, Kryptoanalyse usw.)
Datensynthesewerkzeuge für die Sozial-, Wirtschafts- und Politikwissenschaften (z. B. Wirtschaft, Bevölkerung, globaler Klimawandel, Meinungsumfragen usw. Prognose und Modellierung)
Sichere Lieferung und Installation von geistigem Eigentum. Einige Beispiele
Software-Download Auto-Installer und Updater
Schutz des Lizenzschlüsselprodukts und ähnliche Kaufvalidierung
Software- und Hardware-Design IP-Schutz
CAD-Software (Computer Aided Design) und andere Zeichenwerkzeuge
Hinweis: Diese Bestimmungen gelten auch für das Testen Ihrer App mit TestFlight
Der gleiche Fehler wurde so behoben
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 hat die Regeln dazu geändert. Ich habe alle Apple-Dokumente und so viele US-Exportregister gelesen, wie ich finden konnte.
Meiner Ansicht nach bedeutete dies bis vor kurzem sogar die Verwendung von HTTPS für die meisten Apps, dass Apple das Exportzertifikat benötigen würde. Einige Apps wie Banking wären in Ordnung, aber für viele Apps fielen sie nicht in die Ausnahmekategorie, die sehr, sehr breit ist.
Allerdings hat Apple jetzt ein Getout unter der Ausnahmekategorie für Apps eingeführt, die NUR https verwenden. Ich weiß nicht, wann sie dies getan haben, aber ich denke, es war entweder Dezember 2016 oder Januar 2017. Wir reichen unsere Apps jetzt ohne das Zertifikat der US-Regierung ein.