Skip to content

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:

  1. Inicie o Xcode
  2. Selecione Window/Devices and Simulators
  3. 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.