IPA: o que é, estrutura do arquivo e princípio de funcionamento

Autor: IT Sectr Publicado: 2026-04-15 Tempo de leitura: 8 min

IPA (iOS App Store Package) é um formato de arquivo de arquivo para distribuir aplicações no iOS. Cada aplicação que chega à App Store passa pelo formato IPA: o desenvolvedor compila o projeto, assina e envia o IPA para o App Store Connect. De acordo com Apple Developer Documentation, 2026, o formato IPA é baseado em ZIP e contém um arquivo Mach-O executável, recursos e metadados de assinatura.

Principais pontos

  • IPA é um formato de arquivo para distribuir aplicações iOS através da App Store e instalação ad-hoc.
  • Estrutura inclui um arquivo executável Mach-O assinado, recursos e um Provisioning Profile.
  • Assinatura é obrigatória: sem um certificado e perfil válidos, o IPA não é instalado.
  • Compilação é feita através do Xcode com suporte a diferentes esquemas: Debug, Release, Ad-hoc, Enterprise.
  • Arquiteturas — IPAs modernos contêm binários arm64, sem suporte para dispositivos de 32 bits.

O que é IPA e para que é usado

IPA (iOS App Store Package) é um formato de pacote para distribuir aplicações na plataforma Apple. Como o APK, o IPA é tecnicamente um arquivo ZIP, mas com sua própria estrutura ditada pelos requisitos de segurança e assinatura do iOS.

História do formato

O formato IPA surgiu junto com o iPhone OS 2.0 em 2008 e a App Store. Foi baseado no formato de pacote .app do macOS, empacotado em ZIP para reduzir o tamanho durante a transmissão. Desde então, a estrutura do IPA não sofreu mudanças drásticas — apenas os esquemas de assinatura e metadados evoluíram.

Casos de uso

App Store — o canal principal. Distribuição Ad-hoc — para testes num número limitado de dispositivos (até 100). Distribuição Enterprise — para aplicações corporativas sem publicar na loja. Os desenvolvedores também usam IPA para testes em dispositivos reais através do Xcode.

Estrutura interna do arquivo IPA

A estrutura interna de um IPA é um arquivo ZIP contendo uma pasta Payload com o pacote .app e metadados.

Ficheiro/DiretórioFinalidade
Payload/Pasta raiz com o pacote .app
Payload/App.app/Pacote da aplicação: ficheiro executável, recursos, nib/storyboard
Payload/App.app/Info.plistMetadados: bundle ID, versões, permissões
Payload/App.app/embedded.mobileprovisionProvisioning Profile para instalação
iTunesMetadata.plistMetadados do iTunes (opcional)
META-INF/Assinaturas e hashes para verificação

O pacote .app

Dentro da pasta Payload encontra-se o pacote da aplicação com extensão .app. Isto não é um ficheiro, mas um diretório que o iOS reconhece como uma aplicação. No seu interior: o ficheiro executável Mach-O (o nome corresponde ao nome do pacote), Info.plist, recursos, imagens e strings localizadas.

Ficheiro executável Mach-O

O código fonte em Swift ou Objective-C é compilado em código máquina no formato Mach-O (Mach Object). O ficheiro contém segmentos __TEXT (código), __DATA (dados) e __LINKEDIT (metadados de ligação). IPAs modernos contêm apenas a arquitetura arm64 de 64 bits.

Processo de compilação do IPA via Xcode

Xcode automatiza a compilação do IPA: desde a compilação do código fonte até à criação de um arquivo assinado pronto para enviar ao App Store Connect.

Esquemas de compilação

Debug — para desenvolvimento, sem otimizações. Release — para publicação, com otimizações do compilador. Cada esquema define flags de compilação, assinatura de código e entitlements. O Xcode cria um Arquivo (Archive) através de Product → Archive.

objective-c
// Info.plist — metadados básicos da aplicação
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>

Arquitetura de compilação

O Xcode compila cada ficheiro .swift ou .m num ficheiro objeto (.o), depois liga-os num único binário Mach-O. Os recursos (imagens, XIB, storyboard) são processados separadamente: os storyboards são compilados para o formato binário .storyboardc, as imagens são otimizadas no Asset Catalog (.car).

Assinatura do IPA e Provisioning Profile

Assinatura é o aspeto mais complexo de um IPA. A Apple exige uma assinatura digital para qualquer aplicação executada num dispositivo real. O sistema verifica o certificado do desenvolvedor, os entitlements e a conformidade do Provisioning Profile.

Componentes da assinatura

Certificate (Development ou Distribution) — certifica a identidade do desenvolvedor. Provisioning Profile — liga o certificado, o bundle ID e a lista de dispositivos permitidos (para ad-hoc). Entitlements — permissões da aplicação (notificações push, iCloud, App Groups).

Processo de assinatura

O Xcode assina cada biblioteca e framework dentro do pacote .app, depois assina o próprio pacote. O IPA final é assinado ao nível do arquivo ZIP. A Apple verifica todos os níveis de assinatura durante a instalação. O iOS não executa a aplicação se pelo menos um componente tiver uma assinatura inválida.

swift
// Verificação de assinatura através do Security framework
import Security

func checkSignature() -> Bool {
    let url = Bundle.main.bundleURL
    var staticCode: SecStaticCode?

    guard SecStaticCodeCreateWithPath(
        url as CFURL,
        [], &staticCode
    ) == errSecSuccess else {
        return false
    }
    return true
}

Publicação do IPA no App Store Connect

App Store Connect é a plataforma da Apple para gerir a publicação de aplicações. O envio do IPA é feito através do Xcode Organizer, Transporter ou da linha de comandos com xcrun altool.

Processo de envio

Depois de criar um arquivo, o Xcode oferece Distribute App com uma escolha de método: App Store Connect, Ad-hoc, Enterprise ou Development. Ao selecionar App Store Connect, o desenvolvedor especifica a equipa e confirma o envio. O Xcode verifica a assinatura, envia o IPA para os servidores da Apple e devolve o estado do processamento.

Linha de comandos

Para CI/CD utiliza-se xcrun altool ou o mais recente notarytool. A Apple exige notarização para aplicações macOS; para iOS este passo é opcional mas recomendado. xcodebuild -exportArchive cria um IPA assinado pronto para enviar.

Apple verifica cada IPA quanto a código malicioso, APIs privadas e conformidade com as App Store Review Guidelines. O processo de revisão demora de 1 hora a 2 dias.

App Thinning: otimização do IPA para dispositivos

Ao enviar um IPA para o App Store Connect, a Apple aplica App Thinning — uma tecnologia que otimiza o binário para dispositivos específicos. Slicing remove recursos para resoluções e arquiteturas não suportadas. On-Demand Resources permite carregar partes da aplicação (níveis de jogo, vídeos) apenas a pedido do utilizador. Bitcode é uma representação intermédia que a Apple pode recompilar para novas arquiteturas sem envolvimento do desenvolvedor.

App Store também verifica a conformidade do IPA com os requisitos de Sandbox: a aplicação não deve aceder a dados de outras aplicações, ao sistema de ficheiros fora do seu contentor ou a funções de hardware sem permissão explícita do utilizador.

Teste do IPA via TestFlight

TestFlight é o serviço oficial da Apple para testes beta de aplicações. O desenvolvedor envia o IPA para o App Store Connect e convida testadores por email ou através de um link público.

Testes internos e externos

Internal Testing — até 100 membros da equipa do desenvolvedor. Não requer revisão da Apple. External Testing — até 10 000 testadores, requer aprovação na Beta App Review. O TestFlight distribui automaticamente as compilações aos testadores e recolhe análises.

Limitações do TestFlight

Uma compilação está disponível para testes durante 90 dias após o envio. O TestFlight suporta até 100 compilações ativas simultaneamente. Cada testador pode instalar até 30 aplicações de cada vez. Crashlytics integra-se com o TestFlight para recolher relatórios de falhas e erros não fatais.

IPA e Integração Contínua

A compilação de IPA num ambiente de CI requer um runner macOS. GitHub Actions, GitLab CI e Bitrise fornecem ambientes macOS para compilações iOS. A lane `build_app` do Fastlane automatiza todo o ciclo: arquivação, assinatura, exportação de IPA e envio para o TestFlight. Para gestão de certificados e perfis, utiliza-se Match — uma ferramenta do Fastlane que armazena assinaturas num repositório Git encriptado.

Problemas típicos com IPA

Os desenvolvedores encontram vários erros característicos ao compilar e assinar IPA. A maioria está relacionada com configuração incorreta de certificados e perfis.

Erro de assinatura: No matching provisioning profile found

O Xcode não encontra um Provisioning Profile que corresponda ao bundle ID e ao certificado. Solução — descarregar perfis atuais em Xcode Accounts → Download Manual Profiles ou usar Automatic Signing.

ITMS-90125: The binary is invalid

Este erro ocorre ao enviar um IPA com uma arquitetura inválida. IPAs modernos devem conter apenas arm64. A presença de i386 ou x86_64 no binário causa rejeição. Solução — verificar as arquiteturas em Build Settings e excluir arquiteturas de simulador.

Invalid Bundle Structure: The bundle is missing the required .app bundle

O IPA não contém a estrutura correta Payload/App.app. Apple espera uma hierarquia precisa. Solução — verificar que o arquivo inclui a pasta Payload com um pacote .app, não uma lista plana de ficheiros.

Distribuição de IPA sem App Store

Para distribuição empresarial, utiliza-se o programa Enterprise da Apple ($299/ano). O IPA é assinado com um certificado Enterprise e pode ser instalado em qualquer dispositivo da empresa sem limite de quantidade. A distribuição Ad-hoc está limitada a 100 dispositivos por conta de desenvolvedor ($99/ano). Sistemas MDM (Mobile Device Management) como Jamf e Microsoft Intune suportam instalação em massa de IPAs Enterprise.

Perguntas frequentes

Como o IPA difere do APK?

IPA usa o formato executável Mach-O em vez de DEX, requer um Provisioning Profile para instalação e passa por uma revisão rigorosa da App Store. O APK, ao contrário do IPA, pode ser instalado diretamente sem intermediários (sideloading).

Pode-se compilar IPA no Windows?

Não, a compilação de IPA requer Xcode e ferramentas da Apple, que estão disponíveis apenas no macOS. Alternativas: servidores macOS remotos (Mac mini, AWS Mac) ou serviços de CI na nuvem (GitHub Actions com runner macOS).

Quanto pesa um IPA típico?

Uma aplicação simples — 5–30 MB. Uma aplicação de complexidade média — 30–150 MB. Jogos podem atingir 4 GB. A Apple limita o tamanho de descarga por rede móvel a 200 MB, mas o utilizador pode descarregar via Wi-Fi.

Como instalar IPA sem App Store?

Para instalação ad-hoc, utiliza-se Xcode ou Apple Configurator. As aplicações Enterprise são distribuídas através de um servidor interno com manifest.plist. Um utilizador normal não pode instalar um IPA sem jailbreak ou TestFlight.

O que são IPA thin e IPA fat?

Fat IPA contém múltiplas arquiteturas (arm64 + x86_64) para compilações universais. Thin IPA contém apenas uma arquitetura para um dispositivo específico. A Apple aceita apenas thin IPA para publicação — binários fat são rejeitados.

Resumo

  • IPA é um formato de distribuição de aplicações iOS baseado em ZIP com um ficheiro executável Mach-O.
  • Estrutura inclui um pacote Payload/.app, Info.plist, assinaturas e um Provisioning Profile.
  • Compilação é feita via Xcode compilando Swift/Objective-C para código máquina arm64.
  • Assinatura é obrigatória: certificado + Provisioning Profile + entitlements são verificados pelo iOS durante a instalação.
  • Publicação passa pelo App Store Connect com verificação das App Store Review Guidelines.
  • TestFlight é a ferramenta oficial de testes beta para até 10 000 testadores.
  • Limitações: compilação apenas no macOS, assinatura obrigatória, tamanho máximo de 4 GB.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também