ITSAppUsesNonExemptEncryption exportation compliance pendant les tests internes?

215

J'ai reçu ce message lors de la sélection de build pour testing.it interne dit qu'il faut définir ITSAppUsesNonExemptEncryption dans info.plist qu'est-ce que cela signifie? Est-ce nécessaire?

entrez la description de l'image ici

Avijit Nagare
la source
3
Il vous demande littéralement si vous utilisez une cryptographie / si votre application est conçue pour stocker des informations sécurisées cryptographiquement.
Andriko13
1
Depuis le 20 septembre 2016, cela n'est plus nécessaire. Voir ma réponse ici: stackoverflow.com/a/40391664/776167 - Vous pouvez dire que vous êtes exempté.
hisnameisjimmy

Réponses:

217

Représente fondamentalement <key>ITSAppUsesNonExemptEncryption</key><false/>une valeur booléenne égale à NO.

valeur info.plist

Mise à jour par @JosepH: cette valeur signifie que l'application n'utilise aucun chiffrement, ou seulement un chiffrement exempté. Si votre application utilise le chiffrement et n'est pas exemptée, vous devez définir cette valeur sur OUI / vrai.

Cela semble parfois discutable lorsqu'une application est considérée comme utilisant le cryptage.

Elijah Saounkine
la source
1
merci - c'est exactement ce que je cherchais (comment ajouter cette clé dans le fichier graphique plist)
Natalia
2
Définir «ITSAppUsesNonExemptEncryption» sur false / NO ne signifie pas que le chiffrement dans votre application n'a pas changé. Cela signifie que l'application n'utilise aucun chiffrement, ou seulement un chiffrement exempté. Si votre application utilise le cryptage et n'est pas exemptée, vous devez définir cette valeur sur OUI / vrai. Très peu d'applications peuvent définir cette valeur sur NON; par exemple, si une partie de votre application utilise https, vous devez presque certainement dire OUI. Voir stackoverflow.com/questions/2135081/…
JosephH
1
@JosephH bien, merci beaucoup pour la perspicacité, en effet vos informations semblent être correctes
Elijah Saounkine
23
Vous n'avez généralement pas besoin de définir ce paramètre sur OUI si vous utilisez https. Voir la note 4 de la catégorie 5, partie 2 . Dans la plupart des cas, si l'objectif principal de l'application n'est pas le cryptage, vous pouvez définir la valeur sur NO. Il y a quelques mises en garde ici, comme si vous êtes prêt ou non à renoncer à des informations sur demande de "l'autorité appropriée", alors lisez attentivement.
Ben Kane
1
Le cryptage HTTPS est implémenté au niveau du système d'exploitation; l'application n'entre pas dans la difficulté de chiffrer réellement les données. À ma connaissance, la suggestion de Ben Kane est correcte.
Elijah Saounkine
61

Selon la distribution WWDC2015 Quoi de neuf

entrez la description de l'image ici

La définition de "ITSAppUsesNonExemptEncryption" sur "NO" dans info.plist fonctionne correctement. si aucun contenu cryptographique dans votre application.

entrez la description de l'image ici

J'avais eu cette fenêtre contextuelle Lors de la sélection de la construction pour les tests internes, je n'ai pas inclus la clé "ITSAppUsesNonExemptEncryption" dans mon info.plist mais j'ai quand même travaillé pour moi.

Même si j'ai réussi à télécharger une nouvelle application, les clés "ITSEncryptionExportComplianceCode" et "ITSAppUsesNonExemptEncryption" n'étaient pas incluses.

Aussi Apple Doc.

Important: Si votre application nécessite que vous fournissiez des documents supplémentaires pour la vérification du chiffrement, votre application n'aura pas le statut Prêt pour la vente sur le magasin tant que la conformité à l'exportation n'aura pas examiné et approuvé vos documents. L'application ne peut pas être distribuée pour les tests préliminaires avant que la conformité à l'exportation ne l'ait examinée et approuvée.

Si votre application n'utilise pas de chiffrement et que vous ne voulez pas avoir à répondre à ces questions au moment de la soumission, vous pouvez fournir des informations de conformité d'exportation avec votre build. Vous pouvez également fournir une documentation nouvelle ou mise à jour via iTunes Connect pour recevoir la valeur de chaîne de clé appropriée à inclure dans votre version avant de la télécharger sur iTunes Connect.

Pour ajouter une documentation de conformité d'exportation dans iTunes Connect:

Accédez à la section Cryptage sous Fonctionnalités. Cliquez sur le signe plus à côté de la section de plateforme appropriée. Répondez aux questions de manière appropriée. Joignez le fichier lorsque vous y êtes invité. Cliquez sur Enregistrer. Vos documents seront ensuite envoyés pour examen immédiatement et le statut de votre document s'affichera dans Examen de la conformité. Une valeur de clé sera également générée automatiquement que vous pouvez inclure dans votre fichier Info.plist. Pour plus d'informations sur l'inclusion de la valeur clé dans votre build, consultez la section Ressources et aide Conformité commerciale.

Vous pouvez télécharger une version sans clé de conformité d'exportation. Si vous incluez une clé, cela peut indiquer que vous n'avez pas besoin de documentation de conformité d'exportation; cela ne nécessite aucune approbation. Si vous incluez une clé faisant référence à un document de conformité à l'exportation spécifique, ce document doit être approuvé; il ne peut pas être en révision ou rejeté.

entrez la description de l'image ici

Vous pouvez consulter vos réponses à tout moment en cliquant sur le nom du fichier du document et en sélectionnant Plus d'informations. Si vous devez mettre à jour votre documentation ou modifier l'une des réponses aux questions, vous devrez répéter les étapes ci-dessus pour ajouter un nouveau document correspondant à vos modifications.

Avijit Nagare
la source
Pour plus. stackoverflow.com/questions/2135081/…
Avijit Nagare
51

Ajoutez cette clé dans le fichier plist ... Tout ira bien ..

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

Il suffit de coller avant </dict></plist>

Akshay Phulare
la source
25

Apple a simplifié notre processus de construction, vous n'avez donc pas besoin de cliquer sur la même case à chaque fois. Vous pouvez rationaliser votre flux iTC en compilant cet indicateur dans l'application.

C'est toujours le cas à partir de 2019.

Pedro Góes
la source
17

Pour sélectionner dans la liste déroulante, commencez à taper la ligne suivante:

L'application utilise un cryptage non exempté

mriaz0011
la source
12

Il y a essentiellement 2 choses à garder à l'esprit. Vous êtes autorisé à le mettre sur NO si vous soit de ne pas utiliser le cryptage du tout , ou vous faites partie des règlements exemptés . Cela s'applique aux types d'applications suivants:

Source: Chambre de commerce : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

Applications grand public

  • prévention du piratage et du vol de logiciels ou de musique;
  • musique, films, morceaux / musique, photos numériques - lecteurs, enregistreurs et organisateurs
  • jeux / jeux - appareils, logiciels d'exécution, interfaces HDMI et autres composants, outils de développement
  • TV LCD, Blu-ray / DVD, vidéo à la demande (VoD), cinéma, enregistreurs vidéo numériques (DVR) / enregistreurs vidéo personnels (PVR) - appareils, guides multimédias en ligne, intégrité et protection du contenu commercial, HDMI et autres composants interfaces (pas de vidéoconférence);
  • imprimantes, copieurs, scanners, appareils photo numériques, caméras Internet - y compris les pièces et sous-ensembles
  • services publics et appareils électroménagers

Applications métier / systèmes: opérations systèmes, intégration et contrôle. Quelques exemples

  • automatisation des processus d'affaires (BPA) - planification et planification des processus, gestion de la chaîne d'approvisionnement, inventaire et livraison

  • transports - sécurité et entretien, surveillance des systèmes et contrôleurs embarqués (y compris les systèmes aéronautiques, ferroviaires et automobiles commerciaux), technologies de la `` route intelligente '', opérations de transport en commun et collecte des tarifs, etc.

  • systèmes industriels, manufacturiers ou mécaniques - y compris la robotique, la sécurité des usines, les services publics, les équipements industriels et autres équipements lourds, les contrôleurs de systèmes d'installations tels que les alarmes incendie et CVC

  • médical / clinique - y compris les applications de diagnostic, la planification des patients et la confidentialité des enregistrements de données médicales

  • géosciences appliquées - exploitation minière / forage, échantillonnage atmosphérique / surveillance météorologique, cartographie / levé, barrages / hydrologie

Recherche / scientifique / analytique. Quelques exemples:

  • gestion des processus d'affaires (BPM) - abstraction et modélisation des processus d'affaires

  • visualisation / simulation / co-simulation scientifique (à l'exclusion de ces outils de calcul, de mise en réseau, de cryptanalyse, etc.)

  • outils de synthèse de données pour les sciences sociales, économiques et politiques (p. ex. économie, population, changement climatique mondial, sondages d'opinion, etc. prévisions et modélisation)

Livraison et installation sécurisées de la propriété intellectuelle. Quelques exemples

  • logiciels installateurs et mises à jour automatiques

  • protection des clés de licence des produits et validation d'achat similaire

  • conception de logiciels et de matériel Protection IP

  • logiciel de conception assistée par ordinateur (CAO) et autres outils de rédaction

Remarque: Ces réglementations s'appliquent également au test de votre application à l'aide de TestFlight

codeur de production
la source
4

La même erreur résolue comme ceci

entrez la description de l'image ici

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

}
Rıfat Erdem Sahin
la source
a ajouté une ligne de code associée afin que le développeur puisse utiliser pour ajouter les clés nécessaires
Rıfat Erdem Sahin
J'ai compris, supprimé mon commentaire. Merci
Bhargav Rao
4

Apple a changé les règles à ce sujet. J'ai lu tous les documents Apple et autant de réglementations d'exportation américaines que possible.

Jusqu'à récemment, mon avis était que même en utilisant HTTPS pour la plupart des applications, Apple aurait besoin du certificat d'exportation. Certaines applications telles que les services bancaires seraient acceptables, mais pour de nombreuses applications, elles ne tombaient pas dans la catégorie des exonérations, qui est très, très large.

Cependant, Apple a maintenant introduit une sortie dans la catégorie exonérée pour les applications qui utilisent JUST https. Je ne sais pas quand ils l'ont fait, mais je pense que c'était soit en décembre 2016 ou en janvier 2017. Nous soumettons maintenant nos applications sans le certificat du gouvernement américain.

Rob Willett
la source
1
Lien vers la documentation "sortir"? Je ne peux pas déterminer si HTTPS est correct ou non.
gbhall
@gbhall Pas nécessaire pour HTTPS. Vous pouvez essayer de postuler et vous n'obtiendrez même plus le formulaire de candidature sur les sites GOV. (ne me souviens pas du nom)
@Sneak OK cheers man. Espérons que cela reste vrai pour l'avenir.
gbhall
@Sneak applaudit l'homme. Cet exemple plus récent semble indiquer que vous devez soumettre un rapport annuel: stackoverflow.com/a/44396900/333733
gbhall
1
@Sneak a certainement quelque chose à approfondir. Merci pour les liens. Juste HTTPS pour le moment.
gbhall