ITSAppUsesNonExemptEncryption Exportkonformität beim internen Testen?


215

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?

Geben Sie hier die Bildbeschreibung ein


3
Es wird buchstäblich gefragt, ob Sie eine Kryptografie verwenden oder ob Ihre App so konzipiert ist, dass sichere Informationen kryptografisch gespeichert werden.
Andriko13

1
Ab dem 20. September 2016 ist dies nicht mehr erforderlich. Siehe meine Antwort hier: stackoverflow.com/a/40391664/776167 - Sie können sagen, dass Sie befreit sind.
hisnameisjimmy

Antworten:


217

<key>ITSAppUsesNonExemptEncryption</key><false/>Steht grundsätzlich für einen Booleschen Wert gleich NO.

info.plist Wert

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.


1
danke - das war genau das, wonach ich gesucht habe (wie man diesen Schlüssel in die grafische Plist-Datei einfügt)
Natalia

2
Wenn Sie 'ITSAppUsesNonExemptEncryption' auf false / NO setzen, bedeutet dies NICHT, dass sich die Verschlüsselung in Ihrer App nicht geändert hat. Dies 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. Sehr wenige Apps können diesen Wert auf NO setzen. Wenn beispielsweise ein Teil Ihrer App https verwendet, müssen Sie mit ziemlicher Sicherheit JA sagen. Siehe stackoverflow.com/questions/2135081/…
JosephH

1
@ JosephH in Ordnung, vielen Dank für die Einsicht, in der Tat scheinen Ihre Informationen korrekt zu sein
Elijah Saounkine

23
Normalerweise müssen Sie dies nicht auf JA setzen, wenn Sie https verwenden. Siehe Anmerkung 4 aus Kategorie 5, Teil 2 . Wenn der Hauptzweck der App nicht die Verschlüsselung ist, können Sie den Wert größtenteils auf NO setzen. Hier gibt es einige Einschränkungen, z. B. ob Sie bereit sind, Informationen auf Anfrage von "der zuständigen Behörde" preiszugeben. Lesen Sie sie daher sorgfältig durch.
Ben Kane

1
Die HTTPS-Verschlüsselung ist auf Betriebssystemebene implementiert. Die Anwendung macht sich nicht die Mühe, Daten tatsächlich zu verschlüsseln. Nach meinem Verständnis ist der Vorschlag von Ben Kane richtig.
Elijah Saounkine

61

Laut WWDC2015 Distribution Whats New

Geben Sie hier die Bildbeschreibung ein

Das Setzen von "ITSAppUsesNonExemptEncryption" auf "NO" in info.plist funktioniert einwandfrei. wenn kein kryptografischer Inhalt in Ihrer App.

Geben Sie hier die Bildbeschreibung ein

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.

Geben Sie hier die Bildbeschreibung ein

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.



51

Fügen Sie diesen Schlüssel in die Plist-Datei ein ... Alles wird gut.

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

Einfach vorher einfügen </dict></plist>


25

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.


17

Um aus der Dropdown-Liste auszuwählen, geben Sie bitte die folgende Zeile ein:

App verwendet nicht ausgenommene Verschlüsselung


12

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


4

Der gleiche Fehler wurde so behoben

Geben Sie hier die Bildbeschreibung ein

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

}

fügte eine verwandte Codezeile hinzu, damit der Entwickler die erforderlichen Schlüssel hinzufügen konnte
Rıfat Erdem Sahin

Verstanden, entfernte meinen Kommentar. Danke
Bhargav Rao

4

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.


1
Link zur "raus" -Dokumentation? Ich kann nicht feststellen, ob HTTPS in Ordnung ist oder nicht.
Gbhall

@gbhall Wird für HTTPS nicht benötigt. Sie können versuchen, sich zu bewerben, und Sie werden nicht einmal mehr das Bewerbungsformular von den GOV-Sites erhalten. (erinnere mich nicht an den Namen)

@ Sneak OK Prost Mann. Hoffentlich bleibt das auch in Zukunft so.
Gbhall

@ Sneak Prost Mann. Dieses neuere Beispiel scheint darauf hinzudeuten, dass Sie einen Jahresbericht einreichen müssen: stackoverflow.com/a/44396900/333733
gbhall

1
@Sneak definitiv etwas zu untersuchen. Danke für die Links. Im Moment nur HTTPS.
Gbhall
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.