Prepare aplicativos iOS para políticas de proteção de aplicativos com a Ferramenta de Encapsulamento de Aplicativos do Intune

Use o Microsoft Intune App Wrapping Tool para iOS para habilitar políticas de proteção de aplicativo do Intune para aplicativos iOS internos sem alterar o código do próprio aplicativo.

A ferramenta é um aplicativo de linha de comando macOS que cria um wrapper em torno de um aplicativo. Depois que um aplicativo é processado, você pode alterar a funcionalidade do aplicativo implantando políticas de proteção de aplicativo nele.

Para baixar a ferramenta, consulte Microsoft Intune App Wrapping Tool para iOS no GitHub.

Observação

Se você tiver problemas com o uso do App Wrapping Tool do Intune com seus aplicativos, envie uma solicitação de assistência no GitHub.

Pré-requisitos gerais para o App Wrapping Tool

Antes de executar o App Wrapping Tool, você precisa cumprir alguns pré-requisitos gerais:

  • Baixe o Microsoft Intune App Wrapping Tool para iOS no GitHub.

  • Um computador macOS que tem o conjunto de ferramentas Xcode versão 14.0 ou posterior instalado.

  • O aplicativo iOS de entrada deve ser desenvolvido e assinado por sua empresa ou um ISV (fornecedor de software independente).

    • O arquivo de aplicativo de entrada deve ter a extensão .ipa ou .app.

    • O aplicativo de entrada deve ser compilado para o iOS 14.0 ou posterior.

    • O aplicativo de entrada não pode ser criptografado.

    • O aplicativo de entrada não pode ter atributos de arquivo estendidos.

    • O aplicativo de entrada deve ter direitos definidos antes de ser processado pela App Wrapping Tool do Intune. Os direitos dão ao aplicativo mais permissões e recursos além daqueles normalmente concedidos. Consulte Definir direitos de aplicativo para obter instruções.

  • Verifique se há certificados de assinatura válidos em seu sistema keychain. Se você tiver problemas de assinatura de código do aplicativo, use as seguintes etapas para resolve:
    • Redefinir configurações de confiança para todos os certificados relacionados
    • Instalar certificados intermediários no sistema keychain e keychain de entrada
    • Desinstalar e reinstalar todos os certificados relacionados

Registrar seu aplicativo com Microsoft Entra ID

  1. Registre seus aplicativos com Microsoft Entra ID. Para obter mais informações, consulte Registrar um aplicativo com o plataforma de identidade da Microsoft.
  2. Adicione a URL de redirecionamento personalizada às configurações do aplicativo. Para obter mais informações, consulte Configurando o MSAL.
  3. Dê ao seu aplicativo acesso ao serviço MAM do Intune. Para obter mais informações, confira Dar acesso ao aplicativo ao serviço de Gerenciamento de Aplicativos Móveis do Intune.
  4. Depois que as alterações acima forem concluídas, execute a versão mais recente da ferramenta Debrulho de Aplicativo do Intune. Configurar seus aplicativos para a MSAL (Biblioteca de Autenticação da Microsoft): adicione a ID do cliente do aplicativo Microsoft Entra aos parâmetros de linha de comando com o App Wrapping Tool do Intune. Para obter mais informações, confira Parâmetros de linha de comando.

Observação

Os parâmetros -ac e -ar são parâmetros necessários. Cada aplicativo precisará de um conjunto exclusivo desses parâmetros. -aa é necessário apenas para aplicativos de locatário único.

  1. Implante o aplicativo.

Pré-requisitos do Desenvolvedor da Apple para o App Wrapping Tool

Para distribuir aplicativos encapsulados exclusivamente para os usuários da sua organização, você precisa de uma conta com o Apple Developer Enterprise Program e várias entidades para assinatura de aplicativo que estão vinculadas à sua conta do Apple Developer.

Para saber mais sobre como distribuir aplicativos iOS internamente para os usuários da sua organização, leia o guia oficial para Distribuir Aplicativos do Programa Empresarial do Desenvolvedor da Apple.

Você precisará do seguinte para distribuir aplicativos encapsulados pelo Intune:

  • Uma conta de desenvolvedor com o Apple Developer Enterprise Program.

  • Certificado de assinatura de distribuição interno e ad hoc com identificador de equipe válido.

    • Você precisará do hash SHA1 do certificado de assinatura como um parâmetro para o App Wrapping Tool do Intune.
  • Perfil de provisionamento de distribuição interna.

Etapas para criar uma conta do Apple Developer Enterprise

  1. Acesse o site do Apple Developer Enterprise Program.

  2. No canto superior direito da página, clique em Registrar.

  3. Leia a lista de verificação do que você precisa registrar. Clique em Iniciar Seu Registro na parte inferior da página.

  4. Entre com a ID da Apple da sua organização. Se você não tiver um, clique em Criar ID da Apple.

  5. Selecione o Tipo de Entidade e clique em Continuar.

  6. Preencha o formulário com as informações da sua organização. Clique em Continuar. Neste ponto, a Apple entra em contato com você para verificar se você está autorizado a registrar sua organização.

  7. Após a verificação, clique em Concordar com a Licença.

  8. Depois de concordar com a licença, conclua comprando e ativando o programa.

  9. Se você for o agente de equipe (a pessoa que ingressa no Apple Developer Enterprise Program em nome de sua organização), crie sua equipe primeiro convidando membros da equipe e atribuindo funções. Para saber como gerenciar sua equipe, leia a documentação da Apple sobre como gerenciar sua equipe de conta de desenvolvedor.

Etapas para criar um certificado de assinatura da Apple

  1. Acesse o portal do Desenvolvedor da Apple.

  2. No canto superior direito da página, clique em Conta.

  3. Entre com sua ID da Apple organizacional.

  4. Clique em Certificados, IDs & Perfis.

    Portal do Desenvolvedor da Apple – Certificados, IDs & Perfis

  5. Clique no portal do Desenvolvedor da Apple mais entrar no canto superior direito para adicionar um certificado iOS.

  6. Escolha criar um certificado Interno e Ad Hoc emProdução.

    Selecione certificado In-House e Ad Hoc

    Observação

    Se não planeja distribuir o aplicativo e só deseja testá-lo internamente, você pode usar um certificado de Desenvolvimento de Aplicativos do iOS em vez de um certificado para Produção. Se você usar um certificado de desenvolvimento, verifique se o perfil de provisionamento móvel faz referência aos dispositivos nos quais o aplicativo será instalado.

  7. Clique em Avançar na parte inferior da página.

  8. Leia as instruções sobre como criar uma CSR (Solicitação de Assinatura de Certificado) usando o aplicativo Keychain Access em seu computador macOS.

    Ler instruções para criar um CSR

  9. Siga as instruções acima para criar uma Solicitação de Assinatura de Certificado. No computador macOS, inicie o aplicativo Keychain Access .

  10. No menu macOS na parte superior da tela, vá para Assistente de Certificado > de Acesso > do Keychain Solicitar um certificado de uma autoridade de certificado.

    Solicitar um certificado de uma Autoridade de Certificado no Acesso ao Keychain

  11. Siga as instruções do site do desenvolvedor da Apple acima sobre como criar um arquivo CSR. Salve o arquivo CSR no computador macOS.

    Insira informações para o certificado que você está solicitando

  12. Retorne ao site de desenvolvedores da Apple. Clique em Continuar. Em seguida, carregue o arquivo CSR.

  13. A Apple gera seu certificado de assinatura. Baixe e salve-o em um local memorável em seu computador macOS.

    Baixe seu certificado de assinatura

  14. Clique duas vezes no arquivo de certificado que você acabou de baixar para adicionar o certificado a um keychain.

  15. Abra o Acesso ao Keychain novamente. Localize seu certificado pesquisando seu nome na barra de pesquisa superior direita. Clique com o botão direito do mouse no item para atualizar o menu e clique em Obter Informações. Nas telas de exemplo, estamos usando um certificado de desenvolvimento em vez de um certificado de produção.

    Adicione seu certificado a um keychain

  16. Uma janela informativa é exibida. Role até a parte inferior e procure no rótulo Impressões digitais . Copie a cadeia de caracteres SHA1 (desfocada) para usar como o argumento para "-c" para o App Wrapping Tool.

    Informações do iPhone – Cadeia de caracteres SHA1 de impressões digitais

Etapas para criar um perfil de provisionamento de distribuição In-House

  1. Voltar ao portal da conta do Desenvolvedor da Apple e entre com sua ID organizacional da Apple.

  2. Clique em Certificados, IDs & Perfis.

  3. Clique no portal do Desenvolvedor da Apple mais entrar no canto superior direito para adicionar um perfil de provisionamento do iOS.

  4. Escolha criar um perfil de provisionamento No House em Distribuição.

    Selecionar no perfil de provisionamento da Casa

  5. Clique em Continuar. Certifique-se de vincular o certificado de assinatura gerado anteriormente ao perfil de provisionamento.

  6. Siga as etapas para baixar seu perfil (com a extensão .mobileprovision) no computador macOS.

  7. Salve o arquivo em um local memorável. Esse arquivo será usado para o parâmetro -p ao usar o App Wrapping Tool.

Baixar o App Wrapping Tool

  1. Baixe os arquivos do App Wrapping Tool do GitHub para um computador macOS.

  2. Clique duas vezes Microsoft Intune Empacotador de Restrições de Aplicativo para iOS.dmg. Uma janela com o Contrato de Licença de Usuário Final (EULA) será exibida. Leia o documento com cuidado.

  3. Escolha Concordar em aceitar o EULA, que monta o pacote no computador.

Execute o App Wrapping Tool

Importante

O Intune libera regularmente as atualizações no App Wrapping Tool do Intune. Marcar regularmente a App Wrapping Tool do Intune para iOS para atualizações e incorpore em seu ciclo de versão de desenvolvimento de software para garantir que seus aplicativos dêem suporte às configurações mais recentes da Política de Proteção de Aplicativo.

Usar terminal

Abra o terminal do macOS e execute o seguinte comando:

/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

Observação

Alguns parâmetros são opcionais, conforme mostrado na tabela a seguir.

Exemplo: O comando de exemplo a seguir executa o App Wrapping Tool no aplicativo chamado MyApp.ipa. Um perfil de provisionamento e o hash SHA-1 do certificado de assinatura são especificados e usados para assinar o aplicativo embrulhado. O aplicativo de saída (MyApp_Wrapped.ipa) é criado e armazenado em sua pasta Desktop.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB"  -v true

Parâmetros de linha de comando

Você pode usar os seguintes parâmetros de linha de comando com o App Wrapping Tool:

Exemplo: O comando de exemplo a seguir executa o App Wrapping Tool, incorporando os comandos necessários ao encapsular um aplicativo para uso em um único locatário.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -aa https://login.microsoftonline.com/<tenantID> -ac "Client ID of the input app if the app uses the Microsoft Authentication Library" -ar "Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library"  -v true
Propriedade Como usar
-Eu <Path of the input native iOS application file>. O nome do arquivo deve terminar em .app ou .ipa.
-o <Path of the wrapped output application>
-P <Path of your provisioning profile for iOS apps>
-C <SHA1 hash of the signing certificate>
-H Mostra informações detalhadas de uso sobre as propriedades de linha de comando disponíveis para o App Wrapping Tool.
-Ac <Client ID of the input app if the app uses the Microsoft Authentication Library> Este é o GUID no campo ID do cliente da listagem do aplicativo na folha Registro de Aplicativo.
-ar <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> Este é o URI de redirecionamento configurado em seu Registro de Aplicativo. Normalmente, seria o protocolo URL do aplicativo ao qual o aplicativo Microsoft Authenticator retornaria após a autenticação intermediada.
-Aa (Necessário para aplicativos de locatário único) <Authority URI of the input app> I.e https://login.microsoftonline.com/<tenantID>/
-V (Opcional) Saídas de mensagens verbosas para o console. É recomendável usar esse sinalizador para depurar quaisquer erros.
-e (Opcional) Use esse sinalizador para que o App Wrapping Tool remova direitos ausentes à medida que processa o aplicativo. Consulte Definir direitos do aplicativo para obter mais detalhes.
-Xe (Opcional) Imprime informações sobre as extensões iOS no aplicativo e quais direitos são necessários para usá-las. Consulte Definir direitos do aplicativo para obter mais detalhes.
-X (Opcional) <An array of paths to extension provisioning profiles>. Use isso se seu aplicativo precisar de perfis de provisionamento de extensão.
-B (Opcional) Use -b sem um argumento se quiser que o aplicativo de saída encapsulado tenha a mesma versão do pacote que o aplicativo de entrada (não recomendado).

Use -b <custom bundle version> se quiser que o aplicativo embrulhado tenha um CFBundleVersion personalizado. Se você optar por especificar um CFBundleVersion personalizado, é uma boa ideia incrementar o CFBundleVersion do aplicativo nativo pelo componente menos significativo, como 1.0.0 -> 1.0.1.
-F (Opcional) <Path to a plist file specifying arguments.> Use esse sinalizador na frente do arquivo plist se você optar por usar o modelo de plist para especificar o restante das propriedades IntuneMAMPackager como -i, -o e -p. Consulte Usar uma plist para inserir argumentos.
-Dt (Opcional) Desabilite a coleção de Microsoft Intune telemetria do cliente.
-Dl (Opcional) Desabilite os logs MSAL dos logs INtune para aplicativos integrados ao MSAL e implementem seu próprio retorno de chamada de log msal.

Usar uma plist para argumentos de entrada

Uma maneira fácil de executar o App Wrapping Tool é colocar todos os argumentos de comando em um arquivo plist. Plist é um formato de arquivo semelhante ao XML que você pode usar para inserir seus argumentos de linha de comando usando uma interface de formulário.

Na pasta IntuneMAMPackager/Contents/MacOS, abra Parameters.plist (um modelo de plist em branco) com um editor de texto ou Xcode. Insira seus argumentos para as seguintes chaves:

Chave Plist Tipo Valor padrão Observações
Caminho do Pacote de Aplicativo de Entrada Cadeia de caracteres vazio O mesmo que -i
Caminho do Pacote de Aplicativo de Saída Cadeia de caracteres vazio O mesmo que -o
Caminho do perfil de provisionamento Cadeia de caracteres vazio O mesmo que -p
Hash de certificado SHA-1 Cadeia de caracteres vazio O mesmo que -c
Autoridade MSAL Cadeia de caracteres vazio O mesmo que -aa
ID do cliente MSAL Cadeia de caracteres vazio O mesmo que -ac
URI de resposta MSAL Cadeia de caracteres vazio O mesmo que -ar
Verbose Habilitado Booliano falso O mesmo que -v
Remover direitos ausentes Booliano falso O mesmo que -e
Impedir atualização de build padrão Booliano falso Equivalente ao uso de -b sem argumentos
Compilar substituição de cadeia de caracteres Cadeia de caracteres vazio O CFBundleVersion personalizado do aplicativo de saída encapsulado
Caminhos de perfil de provisionamento de extensão Matriz de cadeias de caracteres vazio Uma matriz de perfis de provisionamento de extensão para o aplicativo.
Desabilitar a Telemetria Booliano falso O mesmo que -dt
Desabilitar a substituição de log do MSAL Booliano falso O mesmo que -dl

Execute o IntuneMAMPackager com a plist como o único argumento:

./IntuneMAMPackager –f Parameters.plist

Pós-encapsulamento

Após a conclusão do processo de encapsulamento, a mensagem "O aplicativo foi embrulhado com êxito" será exibida. Se ocorrer um erro, consulte Mensagens de erro para obter ajuda.

O aplicativo encapsulado é salvo na pasta de saída especificada anteriormente. Você pode carregar o aplicativo no centro de administração do Intune e associá-lo a uma política de gerenciamento de aplicativos móveis.

Importante

Ao carregar um aplicativo encapsulado, você pode tentar atualizar uma versão mais antiga do aplicativo se uma versão mais antiga (encapsulada ou nativa) já estiver implantada no Intune. Se você tiver um erro, carregue o aplicativo como um novo aplicativo e exclua a versão mais antiga.

Agora você pode implantar o aplicativo em seus grupos de usuários e direcionar políticas de proteção de aplicativo para o aplicativo. O aplicativo será executado no dispositivo usando as políticas de proteção de aplicativo especificadas.

Com que frequência devo reembrulhar meu aplicativo iOS com o App Wrapping Tool do Intune?

Os cenários main em que você precisaria reembrulhar seus aplicativos são os seguintes:

  • O próprio aplicativo lançou uma nova versão. A versão anterior do aplicativo foi encapsulada e carregada no centro de administração do Intune.
  • O Intune App Wrapping Tool para iOS lançou uma nova versão que permite correções de bugs de chave ou novos recursos específicos da política de proteção de aplicativo do Intune. Isso acontece após 6 a 8 semanas por meio do repositório GitHub para o Microsoft Intune App Wrapping Tool para iOS.

Para iOS/iPadOS, embora seja possível concluir com um perfil de certificação/provisionamento diferente do original usado para assinar o aplicativo, se os direitos especificados no aplicativo não forem incluídos no novo perfil de provisionamento, o encapsulamento falhará. Usar a opção de linha de comando "-e", que remove todos os direitos ausentes do aplicativo, para forçar o encapsulamento a não falhar nesse cenário pode causar uma falha na funcionalidade no aplicativo.

Algumas práticas recomendadas para reembrulhar incluem:

  • Garantir que um perfil de provisionamento diferente tenha todos os direitos necessários como qualquer perfil de provisionamento anterior.

Mensagens de erro e arquivos de log

Use as informações a seguir para solucionar problemas que você tem com a ferramenta de encapsulamento de aplicativo.

Mensagens de erro

Se a ferramenta de encapsulamento de aplicativo não for concluída com êxito, uma das seguintes mensagens de erro será exibida no console:

Mensagem de erro Mais informações
Você deve especificar um perfil de provisionamento iOS válido. Seu perfil de provisionamento pode não ser válido. Verifique se você tem as permissões corretas para dispositivos e se seu perfil está visando corretamente o desenvolvimento ou a distribuição. Seu perfil de provisionamento também pode ter expirado.
Especifique um nome de aplicativo de entrada válido. Verifique se o nome do aplicativo de entrada especificado está correto.
Especifique um caminho válido para o aplicativo de saída. Verifique se o caminho para o aplicativo de saída especificado existe e está correto.
Especifique um perfil de provisionamento de entrada válido. Verifique se você forneceu um nome de perfil de provisionamento válido e uma extensão. Seu perfil de provisionamento pode estar ausente ou talvez você não tenha incluído a opção de linha de comando –p.
O aplicativo de entrada especificado não foi encontrado. Especifique um nome e um caminho de aplicativo de entrada válidos. Verifique se o caminho do aplicativo de entrada é válido e existe. Verifique se o aplicativo de entrada existe nesse local.
O arquivo de perfil de provisionamento de entrada especificado não foi encontrado. Especifique um arquivo de perfil de provisionamento de entrada válido. Verifique se o caminho para o arquivo de provisionamento de entrada é válido e se o arquivo especificado existe.
A pasta de aplicativo de saída especificada não foi encontrada. Especifique um caminho válido para o aplicativo de saída. Verifique se o caminho de saída especificado é válido e existe.
O aplicativo de saída não tem extensão .ipa . Somente aplicativos com as extensões .app e .ipa são aceitos pelo App Wrapping Tool. Verifique se o arquivo de saída tem uma extensão válida.
Um certificado de assinatura inválido foi especificado. Especifique um certificado de assinatura da Apple válido. Verifique se você baixou o certificado de assinatura correto do portal do desenvolvedor da Apple. Seu certificado pode ter expirado ou pode estar faltando uma chave pública ou privada. Se o seu perfil de provisionamento e certificado da Apple puder ser usado para assinar corretamente um aplicativo no Xcode, eles serão válidos para o App Wrapping Tool. Além disso, verifique se o certificado de assinatura tem um nome exclusivo no keychain do computador macOS do host. Se houver várias versões do mesmo certificado no keychain esse erro poderá ser retornado.
O aplicativo de entrada especificado é inválido. Especifique um aplicativo válido. Verifique se você tem um aplicativo iOS válido que foi compilado como um arquivo .app ou .ipa.
O aplicativo de entrada especificado é criptografado. Especifique um aplicativo não criptografado válido. O App Wrapping Tool não dá suporte a aplicativos criptografados. Forneça um aplicativo não criptografado.
O aplicativo de entrada especificado não está em um formato PIE (Executável Independente de Posição). Especifique um aplicativo válido no formato PIE. Os aplicativos PIE (executáveis independentes) de posição podem ser carregados em um endereço de memória aleatório quando executados. Isso pode ter benefícios de segurança. Para saber mais sobre os benefícios de segurança, consulte a documentação do Desenvolvedor da Apple.
O aplicativo de entrada que você especificou já foi encapsulado. Especifique um aplicativo desembrulhado válido. Você não pode processar um aplicativo que já foi processado pela ferramenta. Se você quiser processar um aplicativo novamente, execute a ferramenta usando a versão original do aplicativo.
O aplicativo de entrada especificado não está assinado. Especifique um aplicativo assinado válido. A ferramenta de encapsulamento de aplicativos exige que os aplicativos sejam assinados. Consulte a documentação do desenvolvedor para saber como assinar um aplicativo embrulhado.
O aplicativo de entrada especificado deve estar no formato .ipa ou .app. Somente extensões .app e .ipa são aceitas pela ferramenta de encapsulamento de aplicativo. Verifique se o arquivo de entrada tem uma extensão válida e foi compilado como um arquivo .app ou .ipa.
O aplicativo de entrada especificado já foi encapsulado e está na versão mais recente do modelo de política. O App Wrapping Tool não reembrulhará um aplicativo encapsulado existente com a versão mais recente do modelo de política.
AVISO: você não especificou um hash de certificado SHA1. Verifique se o aplicativo encapsulado está assinado antes da implantação. Verifique se você especifica um hash SHA1 válido seguindo o sinalizador de linha de comando –c.

Coletando logs para seus aplicativos encapsulados do dispositivo

Use as etapas a seguir para obter logs para seus aplicativos encapsulados durante a solução de problemas.

  1. Acesse o aplicativo configurações do iOS em seu dispositivo e selecione seu aplicativo LOB.
  2. Selecione Microsoft Intune.
  3. Alterne a configuração do Console de Diagnóstico de Exibição para Ativado.
  4. Inicie seu aplicativo LOB.
  5. Clique no link "Introdução".
  6. Agora você pode enviar logs diretamente para a Microsoft ou compartilhá-los por meio de outro aplicativo no dispositivo.

Observação

A funcionalidade de log está habilitada para aplicativos que foram encapsulados com o Intune App Wrapping Tool versão 7.1.13 ou superior.

Coletando logs de falha do sistema

Seu aplicativo pode estar registrando informações úteis no console do dispositivo cliente iOS. Essas informações são úteis quando você está tendo problemas com o aplicativo e precisa determinar se o problema está relacionado ao App Wrapping Tool ou ao próprio aplicativo. Para recuperar essas informações, use as seguintes etapas:

  1. Reproduza o problema executando o aplicativo.

  2. Colete a saída do console seguindo as instruções da Apple para depuração de aplicativos iOS implantados.

Os aplicativos embrulhados também apresentarão aos usuários a opção de enviar logs diretamente do dispositivo por email após a falha do aplicativo. Os usuários podem enviar os logs para você examinar e encaminhar para a Microsoft, se necessário.

Requisitos de certificado, perfil de provisionamento e autenticação

O App Wrapping Tool para iOS tem alguns requisitos que devem ser atendidos para garantir a funcionalidade completa.

Requisito Detalhes
Perfil de provisionamento do iOS Verifique se o perfil de provisionamento é válido antes de incluí-lo. O App Wrapping Tool não marcar se o perfil de provisionamento expirou ao processar um aplicativo iOS. Se um perfil de provisionamento expirado for especificado, a ferramenta de encapsulamento de aplicativo incluirá o perfil de provisionamento expirado e você não saberá que há um problema até que o aplicativo não seja instalado em um dispositivo iOS.
Certificado de assinatura do iOS Verifique se o certificado de assinatura é válido antes de especifique-o. A ferramenta não marcar se um certificado expirou ao processar aplicativos iOS. Se o hash de um certificado expirado for fornecido, a ferramenta processará e assinará o aplicativo, mas ele não será instalado em dispositivos.

Verifique se o certificado fornecido para assinar o aplicativo embrulhado tem uma correspondência no perfil de provisionamento. A ferramenta não valida se o perfil de provisionamento tiver uma correspondência para o certificado fornecido para assinar o aplicativo encapsulado.
Autenticação Um dispositivo deve ter um PIN para que a criptografia funcione. Em dispositivos aos quais você implantou um aplicativo embrulhado, tocar na barra de status no dispositivo exigirá que o usuário entre novamente com uma conta corporativa ou escolar. A política padrão em um aplicativo encapsulado é a autenticação no relançamento. O iOS manipula qualquer notificação externa (como uma chamada telefônica) saindo do aplicativo e relançando-a.

Definir direitos de aplicativo

Antes de encerrar seu aplicativo, você pode conceder direitos para dar ao aplicativo permissões e recursos adicionais que excedem o que um aplicativo normalmente pode fazer. Um arquivo de direito é usado durante a assinatura de código para especificar permissões especiais em seu aplicativo (por exemplo, acesso a uma keychain compartilhada). Os serviços de aplicativo específicos chamados recursos são habilitados no Xcode durante o desenvolvimento do aplicativo. Depois de habilitados, as funcionalidades são refletidas no arquivo de direitos. Para obter mais informações sobre direitos e funcionalidades, confira Adicionar recursos na Biblioteca de Desenvolvedores do iOS. Para obter uma lista completa de recursos com suporte, consulte Recursos com suporte.

Recursos com suporte para o App Wrapping Tool para iOS

Funcionalidade Descrição Diretrizes recomendadas
Grupos de aplicativos Use grupos de aplicativos para permitir que vários aplicativos acessem contêineres compartilhados e permitam comunicação interprocessar adicional entre aplicativos.

Para habilitar grupos de aplicativos, abra o painel Recursos e clique em ON em Grupos de Aplicativos. Você pode adicionar grupos de aplicativos ou selecionar os existentes.
Ao usar grupos de aplicativos, use a notação DNS reversa:

group.com.companyName.AppGroup
Modos em segundo plano Habilitar modos em segundo plano permite que seu aplicativo iOS continue em execução em segundo plano.
Proteção de dados A proteção de dados adiciona um nível de segurança aos arquivos armazenados em disco pelo aplicativo iOS. A proteção de dados usa o hardware de criptografia interno presente em dispositivos específicos para armazenar arquivos em um formato criptografado em disco. Seu aplicativo precisa ser provisionado para usar a proteção de dados.
Compra no aplicativo A compra no aplicativo in-app inscreve uma loja diretamente em seu aplicativo, permitindo que você se conecte à loja e processe pagamentos com segurança do usuário. Você pode usar a compra no aplicativo para coletar pagamento para funcionalidade aprimorada ou para conteúdo adicional utilizável pelo seu aplicativo.
Compartilhamento de chaveiro Habilitar keychain compartilhamento permite que seu aplicativo compartilhe senhas no keychain com outros aplicativos desenvolvidos pela sua equipe. Ao usar keychain compartilhamento, use a notação DNS reversa:

com.companyName.KeychainGroup
VPN pessoal Habilite a VPN pessoal para permitir que seu aplicativo crie e controle uma configuração vpn do sistema personalizado usando a estrutura de Extensão de Rede.
Notificações por push As APNs (Serviço de Notificação por Push) da Apple permitem que um aplicativo que não está em execução em primeiro plano notifique o usuário de que ele tem informações para o usuário. Para que as notificações por push funcionem, você precisa usar um perfil de provisionamento específico do aplicativo.

Siga as etapas na documentação do desenvolvedor da Apple.
Configuração do acessório sem fio Habilitar a configuração do acessório sem fio adiciona a estrutura do Acessório Externo ao seu projeto e permite que seu aplicativo configure acessórios MFi Wi-Fi.

Etapas para habilitar direitos

  1. Habilitar recursos em seu aplicativo:

    a. No Xcode, acesse o destino do aplicativo e clique em Recursos.

    b. Ative as funcionalidades apropriadas. Para obter informações detalhadas sobre cada funcionalidade e como determinar os valores corretos, consulte Adicionar recursos na Biblioteca de Desenvolvedores do iOS.

    c. Observe todas as IDs que você criou durante o processo. Estes também podem ser chamados de AppIdentifierPrefix valores.

    d. Crie e assine seu aplicativo para ser encapsulado.

  2. Habilitar direitos em seu perfil de provisionamento:

    a. Entre no Centro de Membros do Desenvolvedor da Apple.

    b. Crie um perfil de provisionamento para seu aplicativo. Para obter instruções, consulte Como obter os pré-requisitos para o App Wrapping Tool do Intune para iOS.

    c. Em seu perfil de provisionamento, habilite os mesmos direitos que você tem em seu aplicativo. Você precisará fornecer as mesmas IDs (os AppIdentifierPrefix valores) especificados durante o desenvolvimento do seu aplicativo.

    d. Conclua o assistente de perfil de provisionamento e baixe seu arquivo.

  3. Verifique se você satisfize todos os pré-requisitos e embrulhe o aplicativo.

Solucionar problemas de erros comuns com direitos

Se o App Wrapping Tool para iOS mostrar um erro de direito, tente as seguintes etapas de solução de problemas.

Problema Motivo Solução
Falha ao analisar os direitos gerados do aplicativo de entrada. O App Wrapping Tool não pode ler o arquivo de direitos extraído do aplicativo. O arquivo de direitos pode estar malformado. Inspecione o arquivo de direitos do seu aplicativo. As instruções a seguir explicam como fazer isso. Ao inspecionar o arquivo de direitos, marcar para qualquer sintaxe malformada. O arquivo deve estar no formato XML.
Os direitos estão ausentes no perfil de provisionamento (os direitos ausentes estão listados). Reempacote o aplicativo com um perfil de provisionamento que tenha esses direitos. Há uma incompatibilidade entre os direitos habilitados no perfil de provisionamento e os recursos habilitados no aplicativo. Essa incompatibilidade também se aplica às IDs associadas a recursos específicos (como grupos de aplicativos e acesso keychain). Geralmente, você pode criar um novo perfil de provisionamento que habilita os mesmos recursos que o aplicativo. Quando as IDs entre o perfil e o aplicativo não corresponderem, o App Wrapping Tool substituirá as IDs se puder. Se você ainda receber esse erro depois de criar um novo perfil de provisionamento, poderá tentar remover direitos do aplicativo usando o parâmetro –e (consulte Usando o parâmetro –e para remover direitos de uma seção de aplicativo).

Localizar os direitos existentes de um aplicativo assinado

Para examinar os direitos existentes de um aplicativo assinado e perfil de provisionamento:

  1. Encontre o arquivo .ipa e altere sua extensão para .zip.

  2. Expanda o arquivo .zip. Isso produzirá uma pasta Payload que contém seu pacote .app.

  3. Use a ferramenta codesign para marcar os direitos no pacote .app, em que YourApp.app é o nome real do pacote .app.:

    codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. Use a ferramenta de segurança para marcar os direitos do perfil de provisionamento inserido do aplicativo, em que YourApp.app é o nome real do pacote .app.

    security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
    

Remover direitos de um aplicativo usando o parâmetro –e

Esse comando remove todos os recursos habilitados no aplicativo que não estão no arquivo de direitos. Se você remover recursos que estão sendo usados pelo aplicativo, ele poderá interromper seu aplicativo. Um exemplo de onde você pode remover recursos ausentes está em um aplicativo produzido pelo fornecedor que tem todos os recursos por padrão.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager –i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> –p /<path to provisioning profile> –c <SHA1 hash of the certificate> -e

Segurança e privacidade para o App Wrapping Tool

Use as práticas recomendadas de segurança e privacidade a seguir ao usar o App Wrapping Tool.

  • O certificado de assinatura, o perfil de provisionamento e o aplicativo de linha de negócios especificado devem estar no mesmo computador macOS que você usa para executar a ferramenta de encapsulamento de aplicativo. Se os arquivos estiverem em um caminho UNC, verifique se eles estão acessíveis no computador macOS. O caminho deve ser protegido por meio da assinatura IPsec ou SMB.

    O aplicativo encapsulado importado para o centro de administração deve estar no mesmo computador no qual você executa a ferramenta. Se o arquivo estiver em um caminho UNC, verifique se ele está acessível no computador que executa o centro de administração. O caminho deve ser protegido por meio da assinatura IPsec ou SMB.

  • O ambiente em que o App Wrapping Tool é baixado do repositório GitHub precisa ser protegido por meio da assinatura IPsec ou SMB.

  • O aplicativo que você processa deve vir de uma fonte confiável para garantir a proteção contra ataques.

  • Verifique se a pasta de saída especificada no App Wrapping Tool está protegida, especialmente se for uma pasta remota.

  • Aplicativos iOS que incluem uma caixa de diálogo de carregamento de arquivo podem permitir que os usuários contornem, cortem, copiem e colem restrições aplicadas ao aplicativo. Por exemplo, um usuário pode usar a caixa de diálogo upload do arquivo para carregar uma captura de tela dos dados do aplicativo.

  • Ao monitorar a pasta de documentos em seu dispositivo de dentro de um aplicativo encapsulado, você poderá ver uma pasta chamada .msftintuneapplauncher. Se você alterar ou excluir esse arquivo, ele poderá afetar o funcionamento correto de aplicativos restritos.

  • Registrar esquemas de URL personalizados permite que URLs específicas sejam redirecionadas para seu aplicativo. IOS e iPadOS permitem que vários aplicativos registrem o mesmo esquema de URL personalizado e o sistema operacional determina qual aplicativo é invocado. Consulte a documentação da Apple Definindo um esquema de URL personalizado para seu aplicativo para obter recomendações para ajudar a evitar colisões de esquema de URL personalizadas e diretrizes de segurança para lidar com URLs malformadas.

Confira também