Prepare aplicativos iOS para políticas de proteção de aplicativos com a Ferramenta de Encapsulamento de Aplicativos do Intune
Utilize o Microsoft Intune App Wrapping Tool para iOS para ativar Intune políticas de proteção de aplicações para aplicações iOS internas sem alterar o código da própria aplicação.
A ferramenta é uma aplicação de linha de comandos macOS que cria um wrapper em torno de uma aplicação. Assim que uma aplicação for processada, pode alterar a funcionalidade da aplicação ao implementar políticas de proteção de aplicações na mesma.
Para transferir a ferramenta, veja Microsoft Intune App Wrapping Tool para iOS no GitHub.
Observação
Se tiver problemas com a utilização do Intune App Wrapping Tool com as suas aplicações, submeta um pedido de assistência no GitHub.
Pré-requisitos gerais do App Wrapping Tool
Antes de executar o App Wrapping Tool, tem de cumprir alguns pré-requisitos gerais:
Transfira o Microsoft Intune App Wrapping Tool para iOS a partir do GitHub.
Um computador macOS com a versão 14.0 ou posterior do conjunto de ferramentas Xcode instalada.
A aplicação iOS de entrada tem de ser desenvolvida e assinada pela sua empresa ou por um fornecedor independente de software (ISV).
O ficheiro da aplicação de entrada tem de ter a extensão .ipa ou .app.
A aplicação de entrada tem de ser compilada para o iOS 14.0 ou posterior.
A aplicação de entrada não pode ser encriptada.
A aplicação de entrada não pode ter atributos de ficheiro expandidos.
A aplicação de entrada tem de ter elegibilidade definida antes de ser processada pelo Intune App Wrapping Tool. As elegibilidades dão à aplicação mais permissões e capacidades para além das que normalmente são concedidas. Veja Definir elegibilidades da aplicação para obter instruções.
- Certifique-se de que existem certificados de assinatura válidos no sistema keychain. Se tiver problemas de assinatura de código da aplicação, utilize os seguintes passos para resolve:
- Repor definições de confiança para todos os certificados relacionados
- Instalar certificados intermédios no sistema keychain e keychain de início de sessão
- Desinstalar e reinstalar todos os certificados relacionados
Registar a sua aplicação no Microsoft Entra ID
- Registe as suas aplicações com Microsoft Entra ID. Para obter mais informações, veja Registar uma aplicação no plataforma de identidade da Microsoft.
- Adicione o URL de redirecionamento personalizado às definições da aplicação. Para obter mais informações, veja Configurar a MSAL.
- Conceder à sua aplicação acesso ao serviço Intune MAM. Para obter mais informações, consulte Conceder acesso à sua aplicação ao serviço de Gestão de Aplicações Móveis do Intune.
- Assim que as alterações acima estiverem concluídas, execute a versão mais recente da ferramenta de Encapsulamento de Aplicações Intune. Configurar as suas aplicações para a Biblioteca de Autenticação da Microsoft (MSAL): adicione o ID de cliente da aplicação Microsoft Entra aos parâmetros da linha de comandos com o Intune App Wrapping Tool. Para obter mais informações, veja Parâmetros da linha de comandos.
Observação
Os parâmetros -ac
e -ar
são parâmetros necessários. Cada aplicação precisará de um conjunto exclusivo destes parâmetros.
-aa
só é necessário para aplicações de inquilino único.
- Implemente a aplicação.
Pré-requisitos do Apple Developer para o App Wrapping Tool
Para distribuir aplicações encapsuladas exclusivamente para os utilizadores da sua organização, precisa de uma conta com o Programa Apple Developer Enterprise e várias entidades para assinatura de aplicações associadas à sua conta de Programador apple.
Para saber mais sobre a distribuição interna de aplicações iOS aos utilizadores da sua organização, leia o guia oficial sobre a Distribuição de Aplicações de Programador Empresarial da Apple.
Precisará do seguinte para distribuir aplicações encapsuladas por Intune:
Uma conta de programador com o Programa Apple Developer Enterprise.
Certificado de assinatura de distribuição interna e ad hoc com o Identificador de Equipa válido.
- Precisará do hash SHA1 do certificado de assinatura como um parâmetro para o Intune App Wrapping Tool.
Perfil de aprovisionamento de distribuição interna.
Passos para criar uma conta Apple Developer Enterprise
No canto superior direito da página, clique em Inscrever.
Leia a lista de verificação do que precisa de inscrever. Clique em Iniciar a Inscrição na parte inferior da página.
Inicie sessão com o ID Apple da sua organização. Se não tiver um, clique em Criar ID Apple.
Selecione o Tipo de Entidade e clique em Continuar.
Preencha o formulário com as informações da sua organização. Clique em Continuar. Neste momento, a Apple contacta-o para verificar se está autorizado a inscrever a sua organização.
Após a verificação, clique em Concordar com a Licença.
Depois de concordar com a licença, conclua comprando e ativando o programa.
Se for o agente de equipa (a pessoa que aderir ao Programa Apple Developer Enterprise em nome da sua organização), crie primeiro a sua equipa ao convidar membros da equipa e atribuir funções. Para saber como gerir a sua equipa, leia a documentação da Apple sobre Como Gerir a Equipa da Sua Conta de Programador.
Passos para criar um certificado de assinatura da Apple
Aceda ao Portal do Programador da Apple.
No canto superior direito da página, clique em Conta.
Inicie sessão com o seu ID Apple organizacional.
Clique em Certificados, IDs & Perfis.
Clique no no canto superior direito para adicionar um certificado iOS.
Opte por criar um certificado Interno e Ad Hoc emProdução.
Observação
Se não planear distribuir a aplicação e apenas pretender testá-la internamente, pode utilizar um certificado de Desenvolvimento de Aplicações iOS em vez de um certificado para Produção. Se utilizar um certificado de desenvolvimento, certifique-se de que o perfil de aprovisionamento móvel referencia os dispositivos nos quais a aplicação será instalada.
Clique em Seguinte na parte inferior da página.
Leia as instruções sobre como criar um Pedido de Assinatura de Certificado (CSR) com a aplicação Keychain Access no seu computador macOS.
Siga as instruções acima para criar um Pedido de Assinatura de Certificado. No seu computador macOS, inicie a aplicação Keychain Access .
No menu macOS na parte superior do ecrã, aceda a Keychain Access > Certificate Assistant Request a Certificate From a Certificate Authority (Pedir > um Certificado a Uma Autoridade de Certificação).
Siga as instruções do site de programador da Apple acima sobre como criar um ficheiro CSR. Guarde o ficheiro CSR no seu computador macOS.
Regresse ao site de programador da Apple. Clique em Continuar. Em seguida, carregue o ficheiro CSR.
A Apple gera o certificado de assinatura. Transfira e guarde-o numa localização memorável no seu computador macOS.
Faça duplo clique no ficheiro de certificado que acabou de transferir para adicionar o certificado a um keychain.
Abra novamente o Acesso a Porta-chaves . Localize o certificado ao procurar o respetivo nome na barra de pesquisa no canto superior direito. Clique com o botão direito do rato no item para apresentar o menu e clique em Obter Informações. Nos ecrãs de exemplo, estamos a utilizar um certificado de desenvolvimento em vez de um certificado de produção.
É apresentada uma janela informativa. Desloque-se para baixo e procure por baixo da etiqueta Impressões Digitais . Copie a cadeia SHA1 (desfocada) para utilizar como argumento "-c" para o App Wrapping Tool.
Passos para criar um perfil de Aprovisionamento de Distribuição do In-House
Voltar ao portal da conta de Programador da Apple e inicie sessão com o ID Apple organizacional.
Clique em Certificados, IDs & Perfis.
Clique no no canto superior direito para adicionar um perfil de aprovisionamento iOS.
Opte por criar um perfil de aprovisionamento Interno emDistribuição.
Clique em Continuar. Certifique-se de que liga o certificado de assinatura gerado anteriormente ao perfil de aprovisionamento.
Siga os passos para transferir o seu perfil (com a extensão .mobileprovision) para o seu computador macOS.
Guarde o ficheiro numa localização memorável. Este ficheiro será utilizado para o parâmetro -p ao utilizar o App Wrapping Tool.
Transferir o App Wrapping Tool
Transfira os ficheiros do App Wrapping Tool do GitHub para um computador macOS.
Faça duplo clique Microsoft Intune Pacote de Restrições de Aplicações para iOS.dmg. Será apresentada uma janela com o Contrato de Licença de Utilizador Final (EULA). Leia cuidadosamente o documento.
Selecione Aceitar para aceitar o EULA, que monta o pacote no seu computador.
Executar o App Wrapping Tool
Importante
Intune disponibiliza regularmente atualizações para o Intune App Wrapping Tool. Utilize regularmente marcar o Intune App Wrapping Tool para iOS para atualizações e incorpore no seu ciclo de lançamento de desenvolvimento de software para garantir que as suas aplicações suportam as definições mais recentes da Política de Proteção de Aplicações.
Utilizar o 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 seguinte.
Exemplo: O comando de exemplo seguinte executa o App Wrapping Tool na aplicação com o nome MyApp.ipa. Um perfil de aprovisionamento e um hash SHA-1 do certificado de assinatura são especificados e utilizados para assinar a aplicação encapsulada. A aplicação de saída (MyApp_Wrapped.ipa) é criada e armazenada na pasta Ambiente 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" -v true
Parâmetros da linha de comandos
Pode utilizar os seguintes parâmetros da linha de comandos com o App Wrapping Tool:
Exemplo: O comando de exemplo seguinte executa o App Wrapping Tool, incorporando os comandos necessários ao encapsular uma aplicação para utilização num único inquilino.
./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 ficheiro tem de 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 de utilização detalhadas sobre as propriedades da linha de comandos 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 de Cliente da listagem da sua aplicação no painel Registo de Aplicações. |
-ar |
<Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> Este é o URI de Redirecionamento configurado no Registo de Aplicações. Normalmente, seria o protocolo URL da aplicação ao qual a aplicação Microsoft Authenticator regressaria após a autenticação mediada. |
-aa | (Necessário para aplicações de inquilino único) <Authority URI of the input app> ou seja, https://login.microsoftonline.com/<tenantID>/ |
-v | (Opcional) Produz mensagens verbosas para a consola. Recomenda-se que utilize este sinalizador para depurar quaisquer erros. |
-e | (Opcional) Utilize este sinalizador para que o App Wrapping Tool remova as elegibilidades em falta à medida que processa a aplicação. Veja Definir elegibilidades da aplicação para obter mais detalhes. |
-xe | (Opcional) Imprime informações sobre as extensões iOS na aplicação e quais as elegibilidades necessárias para as utilizar. Veja Definir elegibilidades da aplicação para obter mais detalhes. |
-x | (Opcional) <An array of paths to extension provisioning profiles> . Utilize esta opção se a sua aplicação precisar de perfis de aprovisionamento de extensões. |
-b | (Opcional) Utilize -b sem um argumento se quiser que a aplicação de saída encapsulada tenha a mesma versão do pacote que a aplicação de entrada (não recomendado). Utilize -b <custom bundle version> se quiser que a aplicação encapsulada tenha um CFBundleVersion personalizado. Se optar por especificar um CFBundleVersion personalizado, recomendamos que incremente o CFBundleVersion da aplicação nativa pelo componente menos significativo, como 1.0.0 -> 1.0.1. |
-f | (Opcional) <Path to a plist file specifying arguments.> Utilize este sinalizador à frente do ficheiro plist se optar por utilizar o modelo plist para especificar as restantes propriedades do IntuneMAMPackager, como -i, -o e -p. Veja Utilizar um plist para introduzir argumentos. |
-dt | (Opcional) Desative a recolha de telemetria Microsoft Intune cliente. |
-dl | (Opcional) Desative os registos MSAL dos registos INtune para aplicações que tenham sido integradas no MSAL e implemente a sua própria chamada de retorno de registo MSAL. |
Utilizar um plist para introduzir argumentos
Uma forma fácil de executar o App Wrapping Tool é colocar todos os argumentos de comando num ficheiro plist. O Plist é um formato de ficheiro semelhante ao XML que pode utilizar para introduzir os argumentos da linha de comandos através de 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. Introduza os argumentos para as seguintes chaves:
Chave Plist | Tipo | Valor padrão | Notas |
---|---|---|---|
Caminho do Pacote de Aplicação de Entrada | Cadeia de caracteres | vazio | O mesmo que -i |
Caminho do Pacote de Aplicação de Saída | Cadeia de caracteres | vazio | O mesmo que -o |
Caminho do Perfil de Aprovisionamento | 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 de Cliente MSAL | Cadeia de caracteres | vazio | O mesmo que -ac |
URI de Resposta MSAL | Cadeia de caracteres | vazio | O mesmo que -ar |
Verboso Ativado | Booliano | falso | O mesmo que -v |
Remover Elegibilidades em Falta | Booliano | falso | O mesmo que -e |
Impedir Atualização de Criação Predefinida | Booliano | falso | Equivalente a utilizar -b sem argumentos |
Substituição da Cadeia de Criação | Cadeia de caracteres | vazio | O CFBundleVersion personalizado da aplicação de saída encapsulada |
Caminhos do Perfil de Aprovisionamento de Extensões | Matriz de cadeias de caracteres | vazio | Uma matriz de perfis de aprovisionamento de extensões para a aplicação. |
Desativar Telemetria | Booliano | falso | O mesmo que -dt |
Desativar a Substituição do Registo MSAL | Booliano | falso | O mesmo que -dl |
Execute o IntuneMAMPackager com o plist como o único argumento:
./IntuneMAMPackager –f Parameters.plist
Pós-moldagem
Após a conclusão do processo de encapsulamento, será apresentada a mensagem "A aplicação foi encapsulada com êxito". Se ocorrer um erro, consulte Mensagens de erro para obter ajuda.
A aplicação encapsulada é guardada na pasta de saída que especificou anteriormente. Pode carregar a aplicação para o centro de administração do Intune e associá-la a uma política de gestão de aplicações móveis.
Importante
Ao carregar uma aplicação encapsulada, pode tentar atualizar uma versão mais antiga da aplicação se já tiver sido implementada uma versão mais antiga (encapsulada ou nativa) para Intune. Se ocorrer um erro, carregue a aplicação como uma nova aplicação e elimine a versão mais antiga.
Agora, pode implementar a aplicação nos seus grupos de utilizadores e direcionar as políticas de proteção de aplicações para a aplicação. A aplicação será executada no dispositivo com as políticas de proteção de aplicações que especificou.
Com que frequência devo voltar a escrever a minha aplicação iOS com o Intune App Wrapping Tool?
Os main cenários nos quais teria de voltar a escrever as suas aplicações são os seguintes:
- A própria aplicação lançou uma nova versão. A versão anterior da aplicação foi encapsulada e carregada para o centro de administração do Intune.
- O Intune App Wrapping Tool para iOS lançou uma nova versão que permite correções de erros importantes ou novas funcionalidades específicas Intune política de proteção de aplicações. Isto acontece após 6 a 8 semanas através do repositório do GitHub para o Microsoft Intune App Wrapping Tool para iOS.
Para iOS/iPadOS, embora seja possível encapsular com um perfil de certificado/aprovisionamento diferente do original utilizado para assinar a aplicação, se as elegibilidades especificadas na aplicação não estiverem incluídas no novo perfil de aprovisionamento, o encapsulamento falhará. A utilização da opção de linha de comandos "-e", que remove quaisquer elegibilidades em falta da aplicação, para forçar a falha do encapsulamento neste cenário pode causar falhas na funcionalidade na aplicação.
Algumas das melhores práticas para a reescrição incluem:
- Garantir que um perfil de aprovisionamento diferente tem todas as elegibilidades necessárias como qualquer perfil de aprovisionamento anterior.
Mensagens de erro e ficheiros de registo
Utilize as seguintes informações para resolver problemas que tem com a ferramenta de encapsulamento de aplicações.
Mensagens de erro
Se a ferramenta de encapsulamento de aplicações não conseguir concluir com êxito, será apresentada uma das seguintes mensagens de erro na consola do :
Mensagem de erro | Mais informações |
---|---|
Tem de especificar um perfil de aprovisionamento iOS válido. | O perfil de aprovisionamento pode não ser válido. Certifique-se de que tem as permissões corretas para os dispositivos e de que o seu perfil está corretamente direcionado para o desenvolvimento ou distribuição. O perfil de aprovisionamento também pode ter expirado. |
Especifique um nome de aplicação de entrada válido. | Certifique-se de que o nome da aplicação de entrada que especificou está correto. |
Especifique um caminho válido para a aplicação de saída. | Certifique-se de que o caminho para a aplicação de saída que especificou existe e está correto. |
Especifique um perfil de aprovisionamento de entrada válido. | Confirme que forneceu uma extensão e um nome de perfil de aprovisionamento válidos. O perfil de aprovisionamento pode ter direitos em falta ou pode não ter incluído a opção da linha de comandos –p. |
A aplicação de entrada que especificou não foi encontrada. Especifique um nome e caminho de aplicação de entrada válidos. | Certifique-se de que o caminho da aplicação de entrada é válido e existe. Certifique-se de que a aplicação de entrada existe nessa localização. |
O ficheiro de perfil de aprovisionamento de entrada que especificou não foi encontrado. Especifique um ficheiro de perfil de aprovisionamento de entrada válido. | Confirme que o caminho para o ficheiro de aprovisionamento de entrada é válido e que o ficheiro especificado existe. |
A pasta da aplicação de saída que especificou não foi encontrada. Especifique um caminho válido para a aplicação de saída. | Certifique-se de que o caminho de saída especificado é válido e existe. |
A aplicação de saída não tem a extensão .ipa . | Apenas as aplicações com as extensões .app e .ipa são aceites pelo App Wrapping Tool. Certifique-se de que o ficheiro de saída tem uma extensão válida. |
Foi especificado um certificado de assinatura inválido. Especifique um certificado de assinatura apple válido. | Certifique-se de que transferiu o certificado de assinatura correto a partir do portal do programador da Apple. O certificado pode ter expirado ou estar a perder uma chave pública ou privada. Se o certificado da Apple e o perfil de aprovisionamento puderem ser utilizados para assinar corretamente uma aplicação no Xcode, 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 anfitrião. Se existirem várias versões do mesmo certificado no keychain este erro poderá ser devolvido. |
A aplicação de entrada que especificou é inválida. Especifique uma aplicação válida. | Certifique-se de que tem uma aplicação iOS válida que tenha sido compilada como um ficheiro .app ou .ipa. |
A aplicação de entrada que especificou está encriptada. Especifique uma aplicação não encriptada válida. | O App Wrapping Tool não suporta aplicações encriptadas. Forneça uma aplicação não encriptada. |
A aplicação de entrada que especificou não está num formato PIE (Position Independent Executable). Especifique uma aplicação válida no formato PIE. | As aplicações PIE (Position Independent Executable) podem ser carregadas num endereço de memória aleatório quando são executadas. Isto pode ter benefícios de segurança. Para obter mais informações sobre os benefícios de segurança, consulte a documentação do Apple Developer. |
A aplicação de entrada que especificou já foi encapsulada. Especifique uma aplicação não substituída válida. | Não pode processar uma aplicação que já tenha sido processada pela ferramenta. Se quiser processar uma aplicação novamente, execute a ferramenta com a versão original da aplicação. |
A aplicação de entrada que especificou não está assinada. Especifique uma aplicação assinada válida. | A ferramenta de encapsulamento de aplicações requer que as aplicações sejam assinadas. Consulte a documentação do programador para saber como assinar uma aplicação encapsulada. |
A aplicação de entrada que especificou tem de estar no formato .ipa ou .app. | Apenas as extensões .app e .ipa são aceites pela ferramenta de encapsulamento de aplicações. Certifique-se de que o ficheiro de entrada tem uma extensão válida e foi compilado como um ficheiro .app ou .ipa. |
A aplicação de entrada que especificou já foi encapsulada e encontra-se na versão mais recente do modelo de política. | O App Wrapping Tool não irá reescrever uma aplicação encapsulada existente com a versão mais recente do modelo de política. |
AVISO: não especificou um hash de certificado SHA1. Certifique-se de que a aplicação encapsulada está assinada antes de implementar. | Certifique-se de que especifica um hash SHA1 válido a seguir ao sinalizador da linha de comandos –c. |
Recolher registos para as suas aplicações encapsuladas a partir do dispositivo
Utilize os seguintes passos para obter registos para as aplicações encapsuladas durante a resolução de problemas.
- Aceda à aplicação Definições do iOS no seu dispositivo e selecione a sua aplicação LOB.
- Selecione Microsoft Intune.
- Alterne a definição Consola de Diagnóstico de Visualização para Ativado.
- Inicie a sua aplicação LOB.
- Clique na ligação "Introdução".
- Agora pode enviar registos diretamente para a Microsoft ou partilhá-los através de outra aplicação no dispositivo.
Observação
A funcionalidade de registo está ativada para aplicações encapsuladas com o Intune App Wrapping Tool versão 7.1.13 ou superior.
Recolher registos de falhas do sistema
A sua aplicação pode estar a registar informações úteis na consola do dispositivo cliente iOS. Estas informações são úteis quando está a ter problemas com a aplicação e precisa de determinar se o problema está relacionado com o App Wrapping Tool ou com a própria aplicação. Para obter estas informações, utilize os seguintes passos:
Reproduza o problema ao executar a aplicação.
Recolha a saída da consola ao seguir as instruções da Apple para Depurar Aplicações iOS Implementadas.
As aplicações encapsuladas também apresentarão aos utilizadores a opção de enviar registos diretamente a partir do dispositivo por e-mail após a falha da aplicação. Os utilizadores podem enviar-lhe os registos para examinar e reencaminhar para a Microsoft, se necessário.
Certificado, perfil de aprovisionamento e requisitos de autenticação
O App Wrapping Tool para iOS tem alguns requisitos que têm de ser cumpridos para garantir a funcionalidade completa.
Requisito | Detalhes |
---|---|
Perfil de aprovisionamento do iOS | Certifique-se de que o perfil de aprovisionamento é válido antes de o incluir. O App Wrapping Tool não marcar se o perfil de aprovisionamento expirou ao processar uma aplicação iOS. Se for especificado um perfil de aprovisionamento expirado, a ferramenta de encapsulamento de aplicações incluirá o perfil de aprovisionamento expirado e não saberá que existe um problema até que a aplicação não seja instalada num dispositivo iOS. |
Certificado de assinatura do iOS | Certifique-se de que o certificado de assinatura é válido antes de o especificar. A ferramenta não marcar se um certificado expirou ao processar aplicações iOS. Se o hash de um certificado expirado for fornecido, a ferramenta processará e assinará a aplicação, mas não será possível instalar nos dispositivos. Confirme que o certificado fornecido para assinar a aplicação encapsulada tem uma correspondência no perfil de aprovisionamento. A ferramenta não valida se o perfil de aprovisionamento tem uma correspondência para o certificado fornecido para assinar a aplicação encapsulada. |
Autenticação | Um dispositivo tem de ter um PIN para que a encriptação funcione. Nos dispositivos nos quais implementou uma aplicação encapsulada, tocar na barra de status no dispositivo exigirá que o utilizador inicie sessão novamente com uma conta escolar ou profissional. A política predefinida numa aplicação encapsulada é a autenticação no relançamento. O iOS processa qualquer notificação externa (como uma chamada telefónica) ao sair da aplicação e, em seguida, ao reiniciá-la. |
Definir elegibilidades da aplicação
Antes de encapsular a sua aplicação, pode conceder direitos para conceder à aplicação permissões e capacidades adicionais que excedem o que uma aplicação normalmente pode fazer. É utilizado um ficheiro de elegibilidade durante a assinatura de código para especificar permissões especiais na sua aplicação (por exemplo, acesso a um keychain partilhado). Os serviços de aplicações específicos denominados capacidades são ativados no Xcode durante o desenvolvimento de aplicações. Depois de ativadas, as capacidades refletem-se no seu ficheiro de elegibilidade. Para obter mais informações sobre elegibilidades e capacidades, veja Adding Capabilities in the iOS Developer Library (Adicionar Capacidades na Biblioteca de Programadores do iOS). Para obter uma lista completa das capacidades suportadas, veja Capacidades suportadas.
Capacidades suportadas para o App Wrapping Tool para iOS
Funcionalidade | Descrição | Documentação de orientação recomendada |
---|---|---|
Grupos de aplicações | Utilize grupos de aplicações para permitir que várias aplicações acedam a contentores partilhados e permita comunicação entre interprocessos adicionais entre aplicações. Para ativar grupos de aplicações, abra o painel Capacidades e clique em ATIVADO no Grupos de Aplicações. Pode adicionar grupos de aplicações ou selecionar grupos existentes. |
Ao utilizar o Grupos de Aplicações, utilize a notação DNS inversa: group.com.companyName.AppGroup |
Modos de fundo | Ativar modos em segundo plano permite que a aplicação 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 ficheiros armazenados no disco pela sua aplicação iOS. A proteção de dados utiliza o hardware de encriptação incorporado presente em dispositivos específicos para armazenar ficheiros num formato encriptado no disco. A sua aplicação tem de ser aprovisionada para utilizar a proteção de dados. | |
Compra via aplicação | A compra via aplicação incorpora uma loja diretamente na sua aplicação, permitindo-lhe ligar-se à loja e processar de forma segura os pagamentos do utilizador. Pode utilizar a compra na aplicação para recolher o pagamento de funcionalidades melhoradas ou conteúdos adicionais utilizáveis pela sua aplicação. | |
Partilha de porta-chaves | Ativar keychain partilha permite que a sua aplicação partilhe palavras-passe no keychain com outras aplicações desenvolvidas pela sua equipa. | Ao utilizar keychain partilha, utilize a notação DNS inversa: com.companyName.KeychainGroup |
VPN Pessoal | Ative a VPN pessoal para permitir que a sua aplicação crie e controle uma configuração de VPN de sistema personalizada com a arquitetura de Extensão de Rede. | |
Notificações por push | O serviço Apple Push Notification (APNs) permite que uma aplicação que não está em execução em primeiro plano notifique o utilizador de que tem informações para o utilizador. | Para que as notificações push funcionem, tem de utilizar um perfil de aprovisionamento específico da aplicação. Siga os passos na documentação do programador da Apple. |
Configuração de acessórios sem fios | Ativar a configuração de acessórios sem fios adiciona a arquitetura Acessório Externo ao seu projeto e permite que a sua aplicação configure acessórios de Wi-Fi MFi. |
Passos para ativar a elegibilidade
Ativar capacidades na sua aplicação:
a. No Xcode, aceda ao destino da sua aplicação e clique em Capacidades.
b. Ative as capacidades adequadas. Para obter informações detalhadas sobre cada capacidade e como determinar os valores corretos, veja Adding Capabilities in the iOS Developer Library (Adicionar Capacidades na Biblioteca de Programadores do iOS).
c. Anote os IDs que criou durante o processo. Estes também podem ser referidos como os
AppIdentifierPrefix
valores.d. Crie e assine a sua aplicação para ser encapsulada.
Ative a elegibilidade no seu perfil de aprovisionamento:
a. Inicie sessão no Centro de Membros do Programador da Apple.
b. Crie um perfil de aprovisionamento para a sua aplicação. Para obter instruções, veja How to Obtain the Prerequisites for the Intune App Wrapping Tool for iOS (Como Obter os Pré-requisitos do Intune App Wrapping Tool para iOS).
c. No seu perfil de aprovisionamento, ative as mesmas elegibilidades que tem na sua aplicação. Terá de fornecer os mesmos IDs (os
AppIdentifierPrefix
valores) que especificou durante o desenvolvimento da sua aplicação.d. Conclua o assistente de perfil de aprovisionamento e transfira o ficheiro.
Certifique-se de que cumpriu todos os pré-requisitos e, em seguida, encapsular a aplicação.
Resolver erros comuns com elegibilidades
Se o App Wrapping Tool para iOS mostrar um erro de elegibilidade, experimente os seguintes passos de resolução de problemas.
Problema | Motivo | Solução |
---|---|---|
Falha ao analisar as elegibilidades geradas a partir da aplicação de entrada. | O App Wrapping Tool não consegue ler o ficheiro de elegibilidade que foi extraído da aplicação. O ficheiro de elegibilidade pode ter um formato incorreto. | Inspecione o ficheiro de elegibilidade da sua aplicação. As instruções seguintes explicam como fazê-lo. Ao inspecionar o ficheiro de elegibilidade, marcar qualquer sintaxe com formato incorreto. O ficheiro deve estar no formato XML. |
As elegibilidades estão em falta no perfil de aprovisionamento (estão listadas as elegibilidades em falta). Reembale a aplicação com um perfil de aprovisionamento que tenha estas elegibilidades. | Existe um erro de correspondência entre as elegibilidades ativadas no perfil de aprovisionamento e as capacidades ativadas na aplicação. Este erro de correspondência também se aplica aos IDs associados a capacidades específicas (como grupos de aplicações e acesso keychain). | Geralmente, pode criar um novo perfil de aprovisionamento que permita as mesmas capacidades que a aplicação. Quando os IDs entre o perfil e a aplicação não correspondem, o App Wrapping Tool substituirá os IDs se for possível. Se continuar a receber este erro depois de criar um novo perfil de aprovisionamento, pode tentar remover a elegibilidade da aplicação com o parâmetro –e (consulte Utilizar o parâmetro –e para remover a elegibilidade de uma aplicação). |
Localizar as elegibilidades existentes de uma aplicação assinada
Para rever as elegibilidades existentes de uma aplicação assinada e do perfil de aprovisionamento:
Localize o ficheiro .ipa e altere a extensão para .zip.
Expanda o ficheiro .zip. Isto produzirá uma pasta Payload que contém o seu pacote de .app.
Utilize a ferramenta codesign para marcar as elegibilidades no pacote de .app, em que
YourApp.app
é o nome real do pacote de .app.:codesign -d --entitlements :- "Payload/YourApp.app"
Utilize a ferramenta de segurança para marcar as elegibilidades do perfil de aprovisionamento incorporado da aplicação, em que
YourApp.app
é o nome real do pacote de .app.security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
Remover direitos de uma aplicação com o parâmetro –e
Este comando remove todas as capacidades ativadas na aplicação que não estão no ficheiro de elegibilidade. Se remover as capacidades que estão a ser utilizadas pela aplicação, esta poderá interromper a sua aplicação. Um exemplo de onde pode remover capacidades em falta encontra-se numa aplicação produzida pelo fornecedor que tem todas as capacidades por predefiniçã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 do App Wrapping Tool
Utilize as seguintes melhores práticas de segurança e privacidade quando utilizar o App Wrapping Tool.
O certificado de assinatura, o perfil de aprovisionamento e a aplicação de linha de negócio que especificar têm de estar no mesmo computador macOS que utiliza para executar a ferramenta de encapsulamento de aplicações. Se os ficheiros estiverem num caminho UNC, certifique-se de que estes estão acessíveis a partir do computador macOS. O caminho tem de ser protegido através da assinatura IPsec ou SMB.
A aplicação encapsulada importada para o centro de administração deve estar no mesmo computador no qual executa a ferramenta. Se o ficheiro estiver num caminho UNC, certifique-se de que está acessível no computador que executa o centro de administração. O caminho tem de ser protegido através da assinatura IPsec ou SMB.
O ambiente onde o App Wrapping Tool é transferido a partir do repositório do GitHub tem de ser protegido através da assinatura IPsec ou SMB.
A aplicação que processar tem de ser proveniente de uma origem fidedigna para garantir a proteção contra ataques.
Certifique-se de que a pasta de saída que especificar no App Wrapping Tool está protegida, especialmente se for uma pasta remota.
As aplicações iOS que incluem uma caixa de diálogo de carregamento de ficheiros podem permitir que os utilizadores contornem, cortem, copiem e colem restrições aplicadas à aplicação. Por exemplo, um utilizador pode utilizar a caixa de diálogo de carregamento de ficheiros para carregar uma captura de ecrã dos dados da aplicação.
Quando monitoriza a pasta de documentos no seu dispositivo a partir de uma aplicação encapsulada, poderá ver uma pasta com o nome .msftintuneapplauncher. Se alterar ou eliminar este ficheiro, este poderá afetar o funcionamento correto das aplicações restritas.
Registar esquemas de URL personalizados permite que URLs específicos redirecionem para a sua aplicação. O iOS e o iPadOS permitem que várias aplicações registem o mesmo esquema de URL personalizado e o SO determina que aplicação é invocada. Veja a documentação da Apple Defining a custom URL scheme for your app (Definir um esquema de URL personalizado para a sua aplicação ) para obter recomendações para ajudar a evitar colisões personalizadas do esquema de URL e diretrizes de segurança para processar URLs com formato incorreto.