MASTG-TECH-0056: Instalando Aplicativos
Quando você instala um aplicativo sem usar a App Store da Apple, isso é chamado de sideloading. Existem várias maneiras de fazer sideloading, descritas abaixo. No dispositivo iOS, o processo de instalação real é tratado pelo daemon installd, que irá descompactar e instalar o aplicativo. Para integrar serviços de aplicativo ou ser instalado em um dispositivo iOS, todos os aplicativos devem ser assinados com um certificado emitido pela Apple. Isso significa que o aplicativo só pode ser instalado após a verificação bem-sucedida da assinatura de código, explicada em Assinatura de arquivos IPA.
Desabilitar a verificação de assinatura (opcional): Em um dispositivo com jailbreak, você pode contornar o requisito de verificação de assinatura usando AppSync Unified, que intercepta o daemon do sistema apropriado e desabilita a verificação de assinatura para qualquer instalação feita com as ferramentas listadas abaixo enquanto estiver ativado.
Existem diferentes métodos para instalar um pacote IPA em um dispositivo iOS, descritos em detalhes abaixo.
Sideloadly¶
Sideloadly é uma ferramenta GUI que pode automatizar todas as etapas necessárias para você. Ela requer credenciais válidas de desenvolvedor Apple, pois obterá uma assinatura válida dos servidores da Apple.
Simplesmente conecte seu dispositivo via USB, insira seu Apple ID e arraste e solte o arquivo IPA no Sideloadly. Clique em iniciar para assinar e instalar automaticamente o IPA fornecido.

libimobiledevice¶
No Linux e também no macOS, você pode usar alternativamente Suíte libimobiledevice. Isso permite instalar aplicativos via conexão USB executando ideviceinstaller. A conexão é implementada com o daemon de multiplexação USB usbmuxd, que fornece um túnel TCP via USB.
Vamos instalar o aplicativo iGoat-Swift com o seguinte comando:
$ ideviceinstaller -i Uncrackable.ipa
...
Install: Complete
Filza¶
Filza permite instalar um arquivo IPA que já está localizado em seu dispositivo. Você pode usar scp ( Transferência de Dados entre Host e Device) ou AirDrop para copiar o arquivo IPA para seu dispositivo, após o qual você pode simplesmente navegar até o arquivo IPA em seu sistema de arquivos e clicar no botão Install no canto superior direito.
ipainstaller¶
O IPA também pode ser instalado diretamente no dispositivo iOS via linha de comando com instalador de IPA. Naturalmente, isso requer um dispositivo com jailbreak, pois caso contrário você não pode fazer SSH no dispositivo. Após copiar o arquivo para o dispositivo, por exemplo via scp ( Transferência de Dados entre Host e Device) ou AirDrop, você pode executar ipainstaller com o nome do arquivo IPA:
ipainstaller Uncrackable.ipa
ios-deploy¶
No macOS você também pode usar a ferramenta ios-deploy para instalar aplicativos iOS a partir da linha de comando. Você precisará descompactar seu IPA, pois o ios-deploy usa os bundles de aplicativo para instalar apps.
unzip UnCrackable.ipa
ios-deploy --bundle 'Payload/UnCrackable Level 1.app' -W -v
xcrun¶
Após instalar Xcode Command Line Tools, você pode executar o seguinte comando para instalar um IPA assinado:
# Obter o ID correto do dispositivo
$ xcrun devicectl list devices
Devices:
Name Hostname Identifier State Model
------------------ ------------------------------------------ ------------------------------------ ------------------ ------------------------------
Foobar 00008101-00FF28803FF9001E.coredevice.local ABD1F3D8-7BC1-52CD-8DB6-9BFD794CE862 available (paired) iPhone 14 Pro Max (iPhone15,3)
$ xcrun devicectl device install app --device 00008101-00FF28803FF9001E ~/signed.ipa
11:59:04 Acquired tunnel connection to device.
11:59:04 Enabling developer disk image services.
11:59:04 Acquired usage assertion.
4%... 12%... 28%... 30%... 31%... 32%... 33%... 35%... 36%... 37%... 39%... 40%... 42%... 43%... 45%... 49%... 51%... 52%... 54%... 55%... 57%... 59%... 60%... 62%... 66%... 68%... 72%... 76%... 80%... 84%... 88%... 92%... 96%... Complete!
App installed:
• bundleID: org.mas.myapp
• installationURL: file:///private/var/containers/Bundle/Application/DFC99D25-FC36-462E-91D2-18CDE717ED21/UnCrackable%20Level%201.app/
• launchServicesIdentifier: unknown
• databaseUUID: DA52A5EB-5D39-4628-810E-8F42A5561CDF
• databaseSequenceNumber: 1516
• options:
Xcode¶
Também é possível usar a IDE Xcode para instalar aplicativos iOS executando as seguintes etapas:
- Inicie o Xcode
- Selecione Window/Devices and Simulators
- Selecione o dispositivo iOS conectado e clique no sinal + em Installed Apps.
Permitir instalação de aplicativo em dispositivo não iPad¶
Às vezes, um aplicativo pode exigir que seja usado em um dispositivo iPad. Se você só tem dispositivos iPhone ou iPod touch, pode forçar o aplicativo a aceitar ser instalado e usado nesses tipos de dispositivos. Você pode fazer isso alterando o valor da propriedade UIDeviceFamily para o valor 1 no arquivo Info.plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
</array>
</dict>
</plist>
Observe que alterar esse valor quebrará a assinatura original, portanto você deve reassinar o IPA ( Assinatura de arquivos IPA) para instalá-lo em um dispositivo que não tenha a validação de assinatura desabilitada.
Este bypass pode não funcionar se o aplicativo exigir capacidades específicas de iPads modernos enquanto seu iPhone ou iPod é um pouco mais antigo.
Os valores possíveis para a propriedade UIDeviceFamily podem ser encontrados na documentação de desenvolvedor da Apple.