Preparar aplicativos iOS para políticas de proteção de aplicativo com o Intune App Wrapping Tool

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

A ferramenta é um aplicativo de linha de comando do 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, confira Microsoft Intune App Wrapping Tool para iOS no GitHub.

Observação

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

Pré-requisitos gerais para o App Wrapping Tool

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

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

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

  • Sua empresa ou um ISV (fornecedor independente de software) deve desenvolver e assinar o aplicativo iOS de entrada.

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

    • Ele deve ser compilado para iOS 16.0 ou posterior.

    • Ela não pode ser criptografada.

    • Nenhum atributo de arquivo estendido.

    • Defina direitos antes de processar o aplicativo com o Intune App Wrapping Tool. Os direitos dão ao aplicativo mais permissões e recursos além das permissões normalmente concedidas. Consulte Configurando direitos de aplicativo para obter instruções.

  • Certifique-se de que existam certificados de assinatura válidos no conjunto de chaves do sistema. Se você tiver problemas de assinatura de código do aplicativo, use as seguintes etapas para resolver:
    • Redefinir as configurações de confiança para todos os certificados relacionados
    • Instalar certificados intermediários no conjunto de chaves do sistema e no conjunto de chaves de entrada
    • Desinstalar e reinstalar todos os certificados relacionados

Registrar seu aplicativo com o Microsoft Entra ID

  1. Registre seus aplicativos com o Microsoft Entra ID. Para obter mais informações, consulte Registrar um aplicativo na plataforma de identidade da Microsoft.
  2. Adicione a URL de redirecionamento personalizada às configurações do aplicativo. Para obter mais informações, consulte Configurando MSAL.
  3. Conceda ao seu aplicativo acesso ao serviço Intune MAM. Para obter mais informações, consulte Conceder ao seu aplicativo acesso 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 de Encapsulamento de Aplicativos do Intune. Configurar seus aplicativos para a Biblioteca de Autenticação da Microsoft (MSAL): adicione a ID do cliente do aplicativo Microsoft Entra aos parâmetros de linha de comando com o Intune App Wrapping Tool. Para obter mais informações, consulte Parâmetros de linha de comando.

Observação

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

  1. Implante o aplicativo.

Pré-requisitos do Apple Developer para a App Wrapping Tool

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

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

Você precisa do seguinte para distribuir aplicativos encapsulados pelo Intune:

  • Uma conta de desenvolvedor do Apple Developer Enterprise Program.

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

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

Criar uma conta Apple Developer Enterprise

  1. Acesse o site do Apple Developer Enterprise Program.

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

  3. Leia a lista de verificação do que você precisa para se inscrever. Selecione Iniciar seu Registro na parte inferior da página.

  4. Entre com a Conta Apple da sua organização. Se você não tiver uma, selecione Criar Conta Apple.

  5. Selecione seu Tipo de Entidade e selecione Continuar.

  6. Preencha o formulário com as informações da sua organização. Selecione Continuar. Nesse momento, a Apple entra em contato com você para verificar se você está autorizado a inscrever sua organização.

  7. Após a verificação, selecione Concordo com a licença.

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

  9. Se você for o agente da equipe (a pessoa que se junta ao Apple Developer Enterprise Program da sua organização), convide os membros da equipe e atribua funções para formar sua equipe. Para saber como gerenciar sua equipe, leia a documentação da Apple sobre como gerenciar sua equipe de conta de desenvolvedor.

Criar um certificado de assinatura da Apple

  1. Acesse o portal do desenvolvedor da Apple.

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

  3. Entre com sua conta organizacional da Apple.

  4. Selecione Certificados, IDs & Perfis.

    Portal do desenvolvedor da Apple - Certificados, IDs & perfis

  5. Selecione o portal do desenvolvedor da Apple mais entrar no canto superior direito. Essa ação adiciona um certificado do iOS.

  6. Opte por criar um certificado interno e ad hoc em Produção.

    Selecione In-House e certificado Ad Hoc

    Observação

    Se você não planeja distribuir o aplicativo e deseja apenas testá-lo internamente, pode usar um certificado de Desenvolvimento de Aplicativos para iOS em vez de um certificado para Produção. Se você usar um certificado de desenvolvimento, verifique se o perfil de provisionamento móvel inclui os dispositivos em que você planeja instalar o aplicativo.

  7. Selecione 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 Acesso às Chaves em seu computador macOS.

    Leia as instruções para criar um CSR

  9. Siga as instruções anteriores para criar uma Solicitação de Assinatura de Certificado. Em seu computador macOS, inicie o aplicativo Acesso às Chaves .

  10. No menu macOS na parte superior da tela, vá para Acesso às Chaves Assistente > de Certificado > Solicitar um certificado de uma autoridade de certificação.

    Solicitar um certificado de uma Autoridade de Certificação no Acesso às Chaves

  11. Siga as instruções do site do desenvolvedor da Apple para criar um arquivo de solicitação de assinatura de certificado (CSR). Salve o arquivo CSR no seu computador macOS.

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

  12. Retorne ao site do desenvolvedor da Apple. Selecione Continuar. Em seguida, carregue o arquivo CSR.

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

    Baixar seu certificado de assinatura

  14. Clique duas vezes no arquivo de certificado que você baixou para adicionar o certificado a um conjunto de chaves.

  15. Abra o Acesso às Chaves novamente. Localize seu certificado pesquisando seu nome na barra de pesquisa no canto superior direito. Clique com o botão direito do mouse no item para abrir o menu e selecione Obter informações. Nas telas de exemplo, estamos usando um certificado de desenvolvimento em vez de um certificado de produção.

    Adicionar seu certificado a um chaveiro

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

    Informações sobre o iPhone - Impressões digitais Cadeia de caracteres SHA1

Criar um perfil de Provisionamento de Distribuição In-House

  1. Voltar para o portal da conta de desenvolvedor da Apple e entrar com sua conta organizacional da Apple.

  2. Selecione Certificados, IDs & Perfis.

  3. Selecione o portal do desenvolvedor da Apple mais entrar no canto superior direito. Essa ação adiciona um perfil de provisionamento do iOS.

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

    Selecionar perfil de provisionamento interno

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

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

  7. Salve o arquivo em um local memorável. Esse arquivo é usado para o parâmetro -p ao usar a 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 em Microsoft Intune Application Restrictions Packager para iOS.dmg. Uma janela com o Contrato de Licença de Usuário Final (EULA) é exibida. Leia o documento com atenção.

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

Executar a App Wrapping Tool

Importante

Intune lança regularmente atualizações para o Intune App Wrapping Tool. marcar regularmente o Intune App Wrapping Tool para iOS para atualizações e incorporá-lo ao seu ciclo de lançamento de desenvolvimento de software para garantir que seus aplicativos dão suporte às configurações mais recentes da Política de Proteção do Aplicativo.

Usar terminal

Abra o Terminal 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> -ac <client ID of input app> -ar <redirect URI of input app> [-aa <authority URI of input app>] [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>] [-dt] [-dl] [-ds]

Observação

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

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

./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" -ac "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ar "msauth.myAppsBundleID://auth" -v

Parâmetros de linha de comando

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

Exemplo: O comando de exemplo a seguir executa a 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
Propriedade Como usar
-i <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 Biblioteca do Microsoft Authenticator> Esse é o GUID no campo ID do Cliente da listagem do aplicativo no Registro de Aplicativo.
-ar <Redirect/Reply URI of the input app if the app uses the Biblioteca do Microsoft Authenticator> Esse é o URI de redirecionamento configurado no Registro do aplicativo. Normalmente, seria o protocolo de URL do aplicativo para o qual o aplicativo Microsoft Authenticator retornaria após a autenticação agenciada.
-aa (Necessário para aplicativos de locatário único) <Authority URI of the input app> ou seja, https://login.microsoftonline.com/<tenantID>/
-v (Opcional) Envia mensagens detalhadas para o console. Use esse sinalizador para depurar erros.
-e (Opcional) Use esse sinalizador para que a App Wrapping Tool remova direitos ausentes à medida que processa o aplicativo. Para obter mais informações, consulte Configurando direitos de aplicativo.
-xe (Opcional) Imprime informações sobre as extensões do iOS no aplicativo e quais direitos são necessários para usá-las. Para obter mais informações, consulte Configurando direitos de aplicativo.
-x (Opcional) <An array of paths to extension provisioning profiles>. Use essa propriedade se o 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 de pacote que o aplicativo de entrada (não recomendado).

Use -b <custom bundle version> se quiser que o aplicativo encapsulado 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 plist para especificar o restante das propriedades IntuneMAMPackager, como -i, -o e -p. Consulte Usar um plist para inserir argumentos.
-dt (Opcional) Desabilite a coleta de dados de cliente do Microsoft Intune.
-dl (Opcional) Desabilite os logs MSAL dos logs do Intune para aplicativos integrados à MSAL e implemente seu próprio retorno de chamada de log MSAL.
-ds (Opcional) Desabilite as proteções do Intune para SFSafariViewController, SFAuthSession e ASWebAuthenticationSession.
-mp (Opcional) <Path to a plist file containing MAM settings to merge into the wrapped app>. Use esta propriedade para fornecer configurações personalizadas do SDK do MAM do Intune que serão mescladas ao dicionário IntuneMAMSettings do aplicativo durante o processo de encapsulamento. Observação: as configurações MultiIdentity, MAMPolicyRequired, AutoEnrollOnLaunch, e ContainingAppBundleId não têm suporte via -mp, pois são configuradas automaticamente pelo App Wrapping Tool. As configurações de autenticação (ADALAuthority, ADALClientId, ADALRedirectUri) também não têm suporte via -mp e devem ser configuradas usando os parâmetros de linha de comando -aa, -ac e -ar.

Usar um plist para inserir argumentos

Uma maneira fácil de executar a 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 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 aplicativos de entrada Cadeia de caracteres vazio O mesmo que -i
Caminho do pacote de aplicativos de saída Cadeia de caracteres vazio Igual a -o
Caminho do perfil de provisionamento Cadeia de caracteres vazio Igual a -p
Hash do Certificado SHA-1 Cadeia de caracteres vazio Igual a -c
Autoridade MSAL Cadeia de caracteres vazio Igual a -aa
ID do cliente MSAL Cadeia de caracteres vazio Igual a -ac
URI de resposta MSAL Cadeia de caracteres vazio O mesmo que -ar
Detalhado Habilitado Booliano falso O mesmo que -v
Remover Direitos Ausentes Booliano falso Igual a -e
Impedir atualização de build padrão Booliano falso Equivalente a usar -b sem argumentos
Substituição da Cadeia de Caracteres de Build 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 Telemetria Booliano falso O mesmo que -dt
Desabilitar a substituição do log MSAL Booliano falso Igual a -dl
Caminho Plist de configurações do MAM Cadeia de caracteres vazio Igual a -mp

Execute o IntuneMAMPackager com o plist como único argumento:

./IntuneMAMPackager –f Parameters.plist

Pós-embrulho

Após a conclusão do processo de encapsulamento, a mensagem "O aplicativo foi encapsulado 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 aplicativo móvel.

Importante

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

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

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

Os principais cenários em que você precisaria reencapsular 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 importantes ou novos recursos específicos da política de proteção de aplicativos Intune. O lançamento de uma nova versão ocorre a cada 6 a 8 semanas por meio do repositório GitHub para o Microsoft Intune App Wrapping Tool para iOS.

Para iOS/iPadOS, você pode encapsular o aplicativo com um certificado ou perfil de provisionamento diferente daquele originalmente usado para assinar o aplicativo. No entanto, se o novo perfil de provisionamento não incluir os direitos especificados no aplicativo, o processo de encapsulamento falhará. Se você usar a opção de linha de comando "-e", que remove todos os direitos ausentes do aplicativo, forçar a quebra de texto para não falhar nesse cenário pode causar a funcionalidade interrompida no aplicativo.

Algumas práticas recomendadas para reempacotamento incluem:

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

Mensagens de erro e arquivos de log

Use as informações a seguir para solucionar os 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 do 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á direcionando 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. Certifique-se de fornecer um nome e uma extensão de perfil de provisionamento válidos. Seu perfil de provisionamento pode não ter direitos ou a –p opção de linha de comando não está incluída.
O aplicativo de entrada que você especificou 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 que você especificou 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 do aplicativo de saída que você especificou não foi encontrada. Especifique um caminho válido para o aplicativo de saída. Verifique se o caminho de saída é 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 pela 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 válido da Apple. Certifique-se de baixar 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 certificado Apple e o perfil de provisionamento puderem ser usados 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 conjunto de chaves do computador macOS host. Se existirem várias versões do mesmo certificado nas chaves, a ferramenta retornará esse erro.
O aplicativo de entrada especificado é inválido. Especifique um aplicativo válido. Certifique-se de que seu aplicativo iOS válido seja compilado como um .app arquivo ou .ipa .
O aplicativo de entrada especificado é criptografado. Especifique um aplicativo válido e não criptografado. A App Wrapping Tool não dá suporte a aplicativos criptografados. Forneça um aplicativo não criptografado.
O aplicativo de entrada que você especificou não está em um formato PIE (Executável Independente de Posição). Especifique um aplicativo válido no formato PIE. Aplicativos PIE (executáveis independentes de posição) podem ser carregados em um endereço de memória aleatório quando executados. Esse recurso pode fornecer benefícios de segurança. Para obter mais informações sobre os benefícios de segurança, consulte a documentação do desenvolvedor da Apple.
O aplicativo de entrada especificado é encapsulado. Especifique um aplicativo não encapsulado válido. Você não poderá processar um aplicativo se a ferramenta já o processou. Se você quiser processar um aplicativo novamente, execute a ferramenta usando a versão original do aplicativo.
O aplicativo de entrada que você especificou não está assinado. Especifique um aplicativo assinado válido. A ferramenta de encapsulamento de aplicativo exige que os aplicativos sejam assinados. Consulte a documentação do desenvolvedor para saber como assinar um aplicativo encapsulado.
O aplicativo de entrada especificado deve estar no formato .ipa ou .app. A ferramenta de encapsulamento de aplicativo só aceita .app e .ipa extensões. Verifique se o arquivo de entrada tem uma extensão válida e é compatível com um .app arquivo ou .ipa .
O aplicativo de entrada especificado é encapsulado e está na versão mais recente do modelo de política. A App Wrapping Tool não encapsula novamente 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. Certifique-se de que o aplicativo encapsulado esteja assinado antes da implantação. Certifique-se de especificar um hash SHA1 válido após o sinalizador de linha de –c comando.

Coletar 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. Selecione 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 registro em log é habilitada para aplicativos encapsulados com o Intune App Wrapping Tool versão 7.1.13 ou superior.

Coletar 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 à 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 Depurar Aplicativos iOS Implantados.

Os aplicativos encapsulados também apresentarão aos usuários a opção de enviar logs diretamente do dispositivo por email após o aplicativo falhar. 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 possui alguns requisitos que devem ser atendidos para garantir todas as funcionalidades.

Requisito Detalhes
Perfil de provisionamento do iOS Verifique se o perfil de provisionamento é válido antes de incluí-lo. A App Wrapping Tool não marca se o perfil de provisionamento expirou ao processar um aplicativo iOS. Se você especificar um perfil de provisionamento expirado, a ferramenta de encapsulamento de aplicativo o incluirá. Você não vê um problema até que o aplicativo não seja instalado em um dispositivo iOS.
Certificado de assinatura do iOS Certifique-se de que o certificado de assinatura seja válido antes de especificá-lo. A ferramenta não marca 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 não será instalada nos dispositivos.

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

Configurando direitos de aplicativo

Antes de encapsular seu aplicativo, você pode conceder direitos para conceder ao aplicativo permissões e recursos extras 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 um conjunto de chaves compartilhado). Serviços de aplicativo específicos chamados de recursos são habilitados no Xcode durante o desenvolvimento do aplicativo. Após a habilitação, os recursos são refletidos no arquivo de direitos. Para obter mais informações sobre direitos e funcionalidades, consulte Adicionando capacidades na Biblioteca do Desenvolvedor do iOS. Para obter uma lista completa das funcionalidades com suporte, consulte Funcionalidades com suporte.

Recursos com suporte para a App Wrapping Tool para iOS

Funcionalidade Descrição Orientações recomendadas
Grupos de aplicativos Use grupos de aplicativos para permitir que vários aplicativos acessem contêineres compartilhados e permitir mais comunicação entre processos.

Para habilitar grupos de aplicativos, abra o painel Recursos e selecione ATIVADO em Grupos de aplicativos. Você pode adicionar grupos de aplicativos ou selecionar os existentes.
Use a notação DNS (Sistema de Nome de Domínio) reversa ao configurar Grupos de Aplicativos:

group.com.companyName.AppGroup
Modos em segundo plano Ativar os modos em segundo plano permite que seu aplicativo iOS continue sendo executado 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 seu aplicativo iOS. A proteção de dados usa o hardware de criptografia integrado 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 insere uma loja diretamente em seu aplicativo, permitindo que você se conecte à loja e processe com segurança os pagamentos do usuário. Você pode usar a compra no aplicativo para receber o pagamento por funcionalidades aprimoradas ou por mais conteúdo utilizável pelo seu aplicativo.
Compartilhamento de chaves Habilitar o compartilhamento de conjunto de chaves permite que seu aplicativo compartilhe senhas no conjunto de chaves com outros aplicativos desenvolvidos por sua equipe. Ao usar o compartilhamento de conjunto de chaves, use a notação DNS inversa:

com.companyName.KeychainGroup
VPN pessoal Habilite a VPN pessoal para permitir que seu aplicativo crie e controle uma configuração personalizada de VPN do sistema usando a estrutura de Extensão de Rede.
Notificações por push O serviço de Notificação por Push da Apple (APNs) permite 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 de acessórios sem fio Habilitar a configuração de acessório sem fio adiciona a estrutura de Acessório Externo ao seu projeto e permite que seu aplicativo configure acessórios Made for iPhone (MFi) Wi-Fi.

Etapas para habilitar os direitos

  1. Habilitar recursos no seu aplicativo:

    a. No Xcode, vá para o destino do seu aplicativo e selecione Funcionalidades.

    b. Ative os recursos apropriados. Para obter informações detalhadas sobre cada funcionalidade e como determinar os valores corretos, consulte Adicionando funcionalidades na Biblioteca do Desenvolvedor iOS.

    c. Anote todas as IDs que você criou durante o processo. Essas IDs podem ser chamadas de AppIdentifierPrefix valores.

    d. Compile e assine seu aplicativo a ser encapsulado.

  2. Habilite os direitos em seu perfil de provisionamento:

    a. Entre no Apple Developer Member Center.

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

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

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

  3. Certifique-se de que você atendeu a todos os pré-requisitos e, em seguida, encapsule o aplicativo.

Solucionar erros comuns com direitos

Se a 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 a partir do aplicativo de entrada. A App Wrapping Tool não pode ler o arquivo de direitos que foi 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, marque se há 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 ao conjunto de chaves). Geralmente, você pode criar um novo perfil de provisionamento que habilita os mesmos recursos do aplicativo. Quando as IDs entre o perfil e o aplicativo não correspondem, a App Wrapping Tool substitui as IDs se for possível. Se você ainda receber esse erro depois de criar um novo perfil de provisionamento, poderá tentar remover direitos do aplicativo usando o –e parâmetro (consulte Usar o –e parâmetro para remover direitos de uma seção do aplicativo).

Localizar os direitos existentes de um aplicativo assinado

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

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

  2. Expanda o arquivo .zip. Essa ação cria uma pasta Payload que contém seu pacote .app.

  3. Use a ferramenta codesign para marcar os direitos no pacote .app, onde 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 incorporado do aplicativo, onde YourApp.app é o nome real do pacote de .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 os recursos que estão sendo usados pelo aplicativo, ele poderá interrompê-lo. Um exemplo de onde você pode remover as funcionalidades ausentes é em um aplicativo produzido pelo fornecedor que tem todas as funcionalidades 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> -ac <client ID of input app> -ar <redirect URI of input app> -e

Segurança e privacidade para o App Wrapping Tool

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

  • O certificado de assinatura, o perfil de provisionamento e o aplicativo de linha de negócios especificados devem estar no mesmo computador macOS usado para executar a ferramenta de encapsulamento de aplicativo. Se os arquivos estiverem em um caminho UNC, verifique se o computador macOS pode acessá-los. O caminho deve ser protegido por meio de assinatura IPsec ou SMB.

    O aplicativo encapsulado importado para o centro de administração deve estar no mesmo computador em que 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 de 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 na App Wrapping Tool está protegida, principalmente se for uma pasta remota.

  • Os aplicativos iOS que incluem uma caixa de diálogo de upload de arquivo podem permitir que os usuários contornem, capturem, copiem e colem as restrições aplicadas ao aplicativo. Por exemplo, um usuário pode usar a caixa de diálogo de upload de 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, isso poderá afetar o funcionamento correto dos aplicativos restritos.

  • O registro de esquemas de URL personalizados permite que URLs específicas sejam redirecionadas para seu aplicativo. O iOS e o 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 esquemas de URL personalizados e diretrizes de segurança para lidar com URLs malformadas.

Recursos adicionais