Conformidade com a exportação de ITSAppUsesNonExemptEncryption durante o teste interno?

215

Recebi esta mensagem ao selecionar compilar para testes internos. Diz sobre a configuração de ITSAppUsesNonExemptEncryption em info.plist , o que isso significa? isso é necessário?

insira a descrição da imagem aqui

Avijit Nagare
fonte
3
É literalmente perguntando se você está usando alguma criptografia / se seu aplicativo foi projetado para armazenar informações seguras criptograficamente.
precisa saber é o seguinte
1
Em 20 de setembro de 2016, isso não é mais necessário. Veja minha resposta aqui: stackoverflow.com/a/40391664/776167 - Você pode dizer que está isento.
hisnameisjimmy

Respostas:

217

Basicamente, <key>ITSAppUsesNonExemptEncryption</key><false/>significa um valor booleano igual a NO.

valor info.plist

Atualização por @JosepH: esse valor significa que o aplicativo não usa criptografia ou apenas criptografia isenta. Se seu aplicativo usa criptografia e não está isento, você deve definir esse valor como YES / true.

Às vezes, parece discutível quando um aplicativo é considerado usar criptografia.

Elijah Saounkine
fonte
1
graças - este foi exatamente o que eu estava procurando (como adicionar esta chave para o arquivo plist gráfica)
Natalia
2
Definir 'ITSAppUsesNonExemptEncryption' como false / NO NÃO significa que a criptografia no seu aplicativo não foi alterada. Isso significa que o aplicativo não usa criptografia ou apenas criptografia isenta. Se seu aplicativo usa criptografia e não está isento, você deve definir esse valor como YES / true. Muito poucos aplicativos podem defini-lo como NÃO; por exemplo, se alguma parte do seu aplicativo usa https, você quase certamente precisa dizer SIM. Veja stackoverflow.com/questions/2135081/…
JosephH
1
@JosephH bem, muito obrigado para o insight, na verdade, a sua informação parece ser correta
Elias Saounkine
23
Normalmente, você não precisa definir isso como SIM se estiver usando https. Ver nota 4 da categoria 5, parte 2 . Na maior parte, se o objetivo principal do aplicativo não for criptografia, você poderá definir o valor como NÃO. Existem algumas advertências aqui, como se você deseja ou não renunciar a informações mediante solicitação da "autoridade apropriada", então leia com atenção.
Ben Kane
1
A criptografia HTTPS é implementada no nível do SO; aplicação não entra no problema de realmente cifrar dados. No meu entender, a sugestão de Ben Kane está correta.
Elijah Saounkine
61

De acordo com a distribuição WWDC2015, o que há de novo

insira a descrição da imagem aqui

Definir "ITSAppUsesNonExemptEncryption" como "NO" no info.plist funciona bem. se não houver conteúdo criptográfico no seu aplicativo.

insira a descrição da imagem aqui

Recebi esse pop-up Durante a seleção da compilação para testes internos, não incluí a chave "ITSAppUsesNonExemptEncryption" em meu info.plist, mas ainda funcionava para mim.

Mesmo que eu enviei com sucesso o novo aplicativo não incluiu as chaves "ITSEncryptionExportComplianceCode" e "ITSAppUsesNonExemptEncryption".

Também Apple Doc.

Importante: se o seu aplicativo exigir que você forneça documentos adicionais para a revisão de criptografia, ele não terá o status de Pronto para Venda na loja até que a Conformidade com a Exportação tenha analisado e aprovado seus documentos. O aplicativo não pode ser distribuído para testes de pré-lançamento até que a Exportação Conformidade tenha analisado e aprovado.

Se seu aplicativo não estiver usando criptografia e você não quiser responder a essas perguntas no momento do envio, forneça informações de conformidade de exportação com sua compilação. Você também pode fornecer documentação nova ou atualizada via iTunes Connect para receber o valor apropriado da string de chave a ser incluído na sua compilação antes de fazer o upload para o iTunes Connect.

Para adicionar documentação de conformidade à exportação no iTunes Connect:

Vá para a seção Criptografia em Recursos. Clique no sinal de adição ao lado da seção da plataforma apropriada. Responda as perguntas adequadamente. Anexe o arquivo quando solicitado. Clique em Save. Seus documentos serão enviados para revisão imediatamente e o status do seu documento será exibido na Revisão de conformidade. Um valor-chave também será gerado automaticamente e você poderá incluir no seu arquivo Info.plist. Para obter mais informações sobre como incluir o valor da chave na sua compilação, consulte a seção Recursos e ajuda sobre conformidade comercial.

Você pode carregar uma construção sem uma chave de conformidade de exportação. Se você incluir uma chave, isso pode indicar que você não precisa da documentação de conformidade de exportação; isso não requer aprovação. Se você incluir uma chave que faça referência a um documento de conformidade de exportação específico, esse documento deverá ser aprovado; não pode estar em revisão ou rejeitado.

insira a descrição da imagem aqui

Você pode revisar suas respostas a qualquer momento clicando no nome do arquivo do documento e selecionando Mais informações. Se você precisar atualizar sua documentação ou alterar alguma das respostas às perguntas, precisará repetir as etapas acima para adicionar um novo documento que corresponda às suas alterações.

Avijit Nagare
fonte
Para mais. stackoverflow.com/questions/2135081/…
Avijit Nagare
51

Adicione esta chave no arquivo plist ... Tudo ficará bem ..

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

Basta colar antes </dict></plist>

Akshay Phulare
fonte
25

A Apple simplificou nosso processo de criação, para que você não precise clicar sempre na mesma caixa de seleção. Você pode otimizar seu fluxo iTC compilando esse sinalizador no aplicativo.

Este ainda é o caso a partir de 2019.

Pedro Góes
fonte
17

Para selecionar no menu suspenso, digite a seguinte linha:

O aplicativo usa criptografia não isenta

mriaz0011
fonte
12

Existem basicamente duas coisas a ter em mente. Você só pode defini-lo como NÃO se não usar a criptografia , ou se fizer parte dos regulamentos isentos . Isso se aplica aos seguintes tipos de aplicativos:

Fonte: Câmara de Comércio : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

Aplicações para consumidores

  • prevenção de pirataria e roubo de software ou música;
  • música, filmes, músicas / músicas, fotos digitais - players, gravadores e organizadores
  • jogos / jogos - dispositivos, software de execução, interfaces HDMI e outros componentes, ferramentas de desenvolvimento
  • TV LCD, Blu-ray / DVD, vídeo sob demanda (VoD), cinema, gravadores de vídeo digital (DVRs) / gravadores de vídeo pessoal (PVRs) - dispositivos, guias de mídia on-line, proteção e integridade de conteúdo comercial, HDMI e outros componentes interfaces (não videoconferência);
  • impressoras, copiadoras, scanners, câmeras digitais, câmeras na Internet - incluindo peças e submontagens
  • utilidades e eletrodomésticos

Aplicações de negócios / sistemas: operações, integração e controle de sistemas. Alguns exemplos

  • automação de processos de negócios (BPA) - planejamento e programação de processos, gerenciamento da cadeia de suprimentos, estoque e entrega

  • transporte - segurança e manutenção, monitoramento de sistemas e controladores de bordo (incluindo aviação, ferrovia e sistemas automotivos comerciais), tecnologias de 'rodovia inteligente', operações de transporte público e cobrança de tarifas, etc.

  • sistemas industriais, de manufatura ou mecânicos - incluindo robótica, segurança de instalações, utilitários, fábricas e outros equipamentos pesados, controladores de sistemas de instalações, como alarmes de incêndio e HVAC

  • médico / clínico - incluindo aplicativos de diagnóstico, agendamento do paciente e confidencialidade dos registros de dados médicos

  • geociências aplicadas - mineração / perfuração, amostragem atmosférica / monitoramento climático, mapeamento / levantamento, barragens / hidrologia

Pesquisa / científica / analítica. Alguns exemplos:

  • gerenciamento de processos de negócios (BPM) - abstração e modelagem de processos de negócios

  • visualização / simulação / co-simulação científica (excluindo essas ferramentas para computação, redes, criptoanálise, etc.)

  • ferramentas de síntese de dados para ciências sociais, econômicas e políticas (por exemplo, econômicas, populacionais, mudanças climáticas globais, pesquisas de opinião pública, etc. previsão e modelagem)

Entrega e instalação seguras de propriedade intelectual. Alguns exemplos

  • auto-instaladores e atualizadores de download de software

  • proteção de produto com chave de licença e validação de compra semelhante

  • design de software e hardware proteção IP

  • software de desenho assistido por computador (CAD) e outras ferramentas de desenho

Nota: esses regulamentos também são verdadeiros para testar seu aplicativo usando TestFlight

codificador de produção
fonte
4

O mesmo erro resolvido assim

insira a descrição da imagem aqui

    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
fonte
adicionada uma linha de código relacionado tão dev poderia usar para adicionar as chaves necessárias
Rıfat Erdem Sahin
Entendi, removi meu comentário. Obrigado
Bhargav Rao
4

A Apple mudou as regras sobre isso. Li todos os documentos da Apple e todos os registros de exportação dos EUA que pude encontrar.

Minha opinião sobre isso foi, até recentemente, usar HTTPS para a maioria dos aplicativos significava que a Apple exigiria o certificado de exportação. Alguns aplicativos, como serviços bancários, seriam aceitáveis, mas para muitos aplicativos eles não se enquadravam na categoria de exceção, que é muito, muito ampla.

No entanto, a Apple agora introduziu um getout na categoria de isenção para aplicativos que APENAS usam https. Não sei quando eles fizeram isso, mas acho que foi em dezembro de 2016 ou janeiro de 2017. Agora estamos enviando nossos aplicativos sem o certificado do governo dos EUA.

Rob Willett
fonte
1
Link para a documentação "sair"? Não consigo determinar se o HTTPS está bom ou não.
gbhall
@gbhall Não é necessário para HTTPS. Você pode tentar se inscrever e nem receberá mais o formulário de inscrição nos sites da GOV. (não me lembro o nome)
@ Sneak OK elogia o homem. Espero que isso continue sendo verdade no futuro.
precisa saber é o seguinte
@ Sneak elogios homem. Este exemplo mais recente parece indicar que você precisa enviar um relatório anual: stackoverflow.com/a/44396900/333733
gbhall
1
@ Sneak definitivamente algo para procurar mais. Obrigado pelos links. Apenas HTTPS no momento.
precisa saber é o seguinte