ITSAppUsesNonExemptEncryption esporta la conformità durante i test interni?


215

Ho ricevuto questo messaggio mentre selezionavo build per testing interno. Dice sull'impostazione di ITSAppUsesNonExemptEncryption in info.plist cosa significa? è necessario?

inserisci qui la descrizione dell'immagine


3
Sta letteralmente chiedendo se stai usando una crittografia / se la tua app è progettata per archiviare informazioni sicure crittograficamente.
Andriko13

1
A partire dal 20 settembre 2016, questo non è più necessario. Vedi la mia risposta qui: stackoverflow.com/a/40391664/776167 - Puoi dire di essere esente.
Jimmy

Risposte:


217

Sostanzialmente <key>ITSAppUsesNonExemptEncryption</key><false/>sta per un valore booleano pari a NO.

valore info.plist

Aggiornamento di @JosepH: questo valore indica che l'app non utilizza alcuna crittografia o solo la crittografia esente. Se l'app utilizza la crittografia e non è esente, è necessario impostare questo valore su YES / true.

A volte sembra discutibile quando un'app utilizza la crittografia.


1
grazie - era esattamente quello che stavo cercando (come aggiungere questa chiave nel file grafico del plist)
Natalia

2
Impostando "ITSAppUsesNonExemptEncryption" su false / NO NON significa che la crittografia nella tua app non è cambiata. Significa che l'app non utilizza alcuna crittografia o solo la crittografia esente. Se la tua app utilizza la crittografia e non è esente, devi impostare questo valore su YES / true. Molte app possono impostarlo su NO; ad esempio, se qualsiasi parte della tua app utilizza https, quasi sicuramente devi dire SÌ. Vedere stackoverflow.com/questions/2135081/...
JosephH

1
@JosephH va bene, grazie mille per la comprensione, anzi le tue informazioni sembrano essere corrette
Elia Saounkine,

23
Di solito non è necessario impostarlo su SÌ se si utilizza https. Vedi nota 4 della categoria 5 parte 2 . Per la maggior parte, se lo scopo principale dell'app non è la crittografia, è possibile impostare il valore su NO. Ci sono alcuni avvertimenti qui, come se sei disposto a rinunciare o meno alle informazioni su richiesta dell '"autorità competente", quindi leggi attentamente.
Ben Kane,

1
La crittografia HTTPS è implementata a livello di sistema operativo; l'applicazione non ha problemi a crittografare effettivamente i dati. A mio avviso, il suggerimento di Ben Kane è corretto.
Elia Saounkine,

61

Secondo WWDC2015 Distribuzione Novità

inserisci qui la descrizione dell'immagine

L'impostazione di "ITSAppUsesNonExemptEncryption" su "NO" in info.plist funziona correttamente. se nessun contenuto crittografico nella tua app.

inserisci qui la descrizione dell'immagine

Ho avuto questo pop-up Durante la selezione di build per i test interni non ho incluso la chiave "ITSAppUsesNonExemptEncryption" nel mio info.plist ma ho ancora lavorato per me.

Anche se ho caricato con successo la nuova applicazione non includeva le chiavi "ITSEncryptionExportComplianceCode" e "ITSAppUsesNonExemptEncryption".

Anche di Apple doc.

Importante: se la tua app richiede di fornire documenti aggiuntivi per la revisione della crittografia, la tua app non avrà lo stato Pronto per la vendita sul negozio fino a quando la conformità all'esportazione non avrà esaminato e approvato i tuoi documenti. L'app non può essere distribuita per i test preliminari fino a quando non è stata esaminata e approvata la conformità all'esportazione.

Se l'app non utilizza la crittografia e non si desidera rispondere a queste domande al momento dell'invio, è possibile fornire informazioni sulla conformità delle esportazioni con la build. Puoi anche fornire documentazione nuova o aggiornata tramite iTunes Connect per ricevere il valore della stringa chiave appropriato da includere con la tua build prima di caricarla su iTunes Connect.

Per aggiungere la documentazione sulla conformità all'esportazione in iTunes Connect:

Vai alla sezione Crittografia in Funzioni. Fai clic sul segno più accanto alla sezione della piattaforma appropriata. Rispondi alle domande in modo appropriato. Allegare il file quando richiesto. Fai clic su Salva. I documenti verranno quindi inviati immediatamente per la revisione e lo stato del documento verrà visualizzato in Revisione conformità. Verrà inoltre generato automaticamente un valore chiave che è possibile includere nel file Info.plist. Per ulteriori informazioni sull'inclusione del valore chiave nella build, consultare la sezione Risorse e Guida Conformità commerciale.

Puoi caricare una build senza una chiave di conformità per l'esportazione. Se si include una chiave, può indicare che non è necessaria la documentazione di conformità all'esportazione; questo non richiede approvazione. Se si include una chiave che fa riferimento a uno specifico documento di conformità all'esportazione, tale documento deve essere approvato; non può essere in revisione o rifiutato.

inserisci qui la descrizione dell'immagine

Puoi rivedere le tue risposte in qualsiasi momento facendo clic sul nome del file del documento e selezionando Altre informazioni. Se è necessario aggiornare la documentazione o modificare una delle risposte alle domande, sarà necessario ripetere i passaggi precedenti per aggiungere un nuovo documento corrispondente alle modifiche.



51

Aggiungi questa chiave nel file plist ... Andrà tutto bene ..

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

Basta incollare prima </dict></plist>


25

Apple ha semplificato il nostro processo di creazione, quindi non è necessario fare clic sulla stessa casella di controllo ogni volta. Puoi ottimizzare il tuo flusso iTC compilando questo flag nell'app.

Questo è ancora il caso dal 2019.


17

Per selezionare dal menu a discesa, inizia a digitare la seguente riga:

L'app utilizza la crittografia non esente


12

Fondamentalmente ci sono 2 cose da tenere a mente. È consentito soltanto per impostarlo su NO se uno non si utilizza la crittografia a tutti , o fai parte della normativa esenti . Questo vale per i seguenti tipi di applicazioni:

Fonte: Camera di commercio : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

Applicazioni per il consumatore

  • prevenzione della pirateria e del furto di software o musica;
  • musica, film, melodie / musica, foto digitali - lettori, registratori e organizzatori
  • giochi / giochi: dispositivi, software di runtime, interfacce HDMI e di altri componenti, strumenti di sviluppo
  • TV LCD, Blu-ray / DVD, video on demand (VoD), cinema, videoregistratori digitali (DVR) / videoregistratori personali (PVR) - dispositivi, guide multimediali online, integrità e protezione dei contenuti commerciali, HDMI e altri componenti interfacce (non videoconferenza);
  • stampanti, fotocopiatrici, scanner, fotocamere digitali, fotocamere Internet - comprese parti e sottoassiemi
  • servizi domestici ed elettrodomestici

Applicazioni aziendali / di sistema: operazioni di sistema, integrazione e controllo. Qualche esempio

  • automazione dei processi aziendali (BPA): pianificazione e programmazione dei processi, gestione della catena di approvvigionamento, inventario e consegna

  • trasporti: sicurezza e manutenzione, monitoraggio dei sistemi e controllori di bordo (compresi i sistemi aeronautico, ferroviario e commerciale), tecnologie "autostrada intelligente", operazioni di trasporto pubblico e raccolta delle tariffe, ecc.

  • sistemi industriali, manifatturieri o meccanici - inclusi robotica, sicurezza degli impianti, servizi pubblici, attrezzature industriali e di altro tipo, dispositivi di controllo dei sistemi quali allarmi antincendio e HVAC

  • medico / clinico - comprese le applicazioni diagnostiche, la programmazione dei pazienti e la riservatezza delle registrazioni dei dati medici

  • geoscienze applicate - mining / perforazione, campionamento atmosferico / monitoraggio meteorologico, mappatura / rilievo, dighe / idrologia

Ricerca / scientifica / analitica. Qualche esempio:

  • gestione dei processi aziendali (BPM): astrazione e modellizzazione dei processi aziendali

  • visualizzazione / simulazione / co-simulazione scientifica (esclusi tali strumenti per informatica, reti, crittoanalisi, ecc.)

  • strumenti di sintesi dei dati per le scienze sociali, economiche e politiche (ad es. economia, popolazione, cambiamenti climatici globali, sondaggi di opinione, previsioni e modellistica ecc.)

Consegna e installazione sicure della proprietà intellettuale. Qualche esempio

  • software scaricare autoinstallatori e programmi di aggiornamento

  • protezione del prodotto chiave di licenza e convalida dell'acquisto simile

  • progettazione software e hardware Protezione IP

  • software di progettazione assistita da computer (CAD) e altri strumenti di disegno

Nota: queste normative valgono anche per testare la tua app usando TestFlight


4

Lo stesso errore risolto in questo modo

inserisci qui la descrizione dell'immagine

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

}

ha aggiunto una riga di codice correlata in modo che dev possa usare per aggiungere le chiavi necessarie
Rıfat Erdem Sahin

Capito, rimosso il mio commento. Grazie
Bhargav Rao

4

Apple ha cambiato le regole su questo. Ho letto tutti i documenti Apple e tutti i registri di esportazione statunitensi che ho potuto trovare.

La mia opinione su questo fino a poco tempo fa anche usando HTTPS per la maggior parte delle app significava che Apple avrebbe richiesto il certificato di esportazione. Alcune app come quelle bancarie andrebbero bene, ma per molte app non rientrano nella categoria eccezionale che è molto, molto ampia.

Tuttavia, Apple ha ora introdotto un getout nella categoria esente per le app che usano SOLO https. Non so quando lo hanno fatto, ma penso che fosse dicembre 2016 o gennaio 2017. Ora stiamo presentando le nostre app senza il certificato del governo degli Stati Uniti.


1
Link alla documentazione "esci"? Non riesco a determinare se HTTPS va bene o no.
gbhall,

@gbhall Non necessario per HTTPS. Puoi provare a fare domanda e non otterrai più il modulo di domanda dai siti GOV. (non ricordare il nome)

@Sneak OK evviva l'uomo. Speriamo che rimanga vero andando verso il futuro.
gbhall,

@Sneak evviva l'uomo. Questo esempio più recente sembra indicare è necessario presentare una relazione annuale: stackoverflow.com/a/44396900/333733
gbhall

1
@Sneak sicuramente qualcosa da esaminare di più. Grazie per i collegamenti. Solo HTTPS al momento.
gbhall,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.