# Missing Compliance no TestFlight: como resolver de vez

> Missing Compliance significa que a Apple espera sua declaração de criptografia. Responda no App Store Connect e defina a chave no projeto.

Página original: [Missing Compliance no TestFlight: como resolver de vez](https://devoria.fr/pt-br/blog/missing-compliance-testflight-resolver)
Autor: [Mehdi Azizi](https://devoria.fr/pt-br/mehdi-azizi)
Publicação: 2026-11-06
Última revisão do conteúdo: 2026-11-06


**Missing Compliance não é um erro: é um build esperando sua resposta sobre criptografia.** Enquanto você não responder, o build fica bloqueado para os seus testadores. Para esse build, você responde às perguntas na aba TestFlight do App Store Connect. Para os próximos, você coloca a chave ITSAppUsesNonExemptEncryption no seu Info.plist, ou `ios.config.usesNonExemptEncryption` no seu app.json com Expo, e o status não volta mais.

Meus apps iOS são feitos com Expo. No app.json do Solys, a chave está como `false`, definida duas vezes: em `ios.config` e em `ios.infoPlist`. Este guia segue as páginas da Apple sobre os [status de build](https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/) e sobre a [conformidade de exportação dos builds beta](https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-export-compliance-information-for-beta-builds/), relidas em 6 de novembro de 2026.

## O que significa Missing Compliance

A lista de status de build da Apple define isso em uma frase: falta a documentação de conformidade de exportação, e uma ação é esperada da sua parte. A Apple mostra o status em amarelo, a cor de um processo em andamento que depende de você ou da Apple, e a descrição dele diz que uma ação é esperada da sua parte.

Por que a Apple faz essa pergunta? A [página sobre as regras de exportação de criptografia](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations) explica: quando você envia um build para o TestFlight ou para a App Store, você o envia para um servidor nos Estados Unidos. Se o seu app é distribuído fora dos Estados Unidos e do Canadá, ele está sujeito à lei americana de exportação, seja qual for o país da sua empresa. E assim que um app usa, contém ou incorpora criptografia, a Apple considera que se trata de uma exportação de software de criptografia.

**Resultado: a cada nova versão, o App Store Connect te faz as perguntas de conformidade, a não ser que o seu Info.plist já responda a elas.** É por isso que um primeiro build Expo quase sempre chega em Missing Compliance.

## Desbloquear o build que está esperando

Os passos vêm da página da Apple sobre a conformidade de exportação dos builds beta. Você precisa da função Account Holder, Admin ou App Manager.

1. Em Apps, abra o seu app e depois a aba TestFlight.
2. Na barra lateral, em Builds, escolha a plataforma.
3. Na coluna Build, clique no ícone ou no número do build em questão.
4. Clique em Provide Export Compliance Information e responda às perguntas.
5. Se a Apple pedir uma documentação, clique em Go to App Encryption Page para enviá-la. Senão, clique em Save.

A Apple também descreve o atalho: ao lado do build, o link Manage abre as mesmas perguntas, e Choose File permite anexar uma documentação já aprovada. Depois de salvar, o build passa para Ready to Submit, ou direto para Testing se for para um grupo interno. Ready to Test só aparece depois da revisão beta dos testadores externos.

**O link Manage não está clicável?** Primeiro confira sua função na equipe: a Apple reserva a resposta às funções Account Holder, Admin e App Manager, e uma conta Developer ou Marketing não pode responder. A Apple não documenta outra causa. Se o build acabou de ser enviado, espere o e-mail de fim de processamento, explicado no guia sobre o [número de build e a versão](https://devoria.fr/pt-br/blog/build-number-app-store-connect-versao-numero-build), e recarregue a página.

## Nunca mais responder: a chave no seu projeto

A Apple diz na página dos builds beta: você pode indicar no Info.plist que o seu app não usa criptografia, ou que está isento, e não precisa mais responder a cada envio. A chave se chama [ITSAppUsesNonExemptEncryption](https://developer.apple.com/documentation/bundleresources/information-property-list/itsappusesnonexemptencryption). O Xcode a mostra com o nome App Uses Non-Exempt Encryption.

| Sua ferramenta      | Arquivo      | Onde                           | Valor |
| ------------------- | ------------ | ------------------------------ | ----- |
| Expo (EAS Build)    | `app.json`   | `expo.ios.config`              | false |
| Expo, outro caminho | `app.json`   | `expo.ios.infoPlist`           | false |
| React Native puro   | `Info.plist` | App Uses Non-Exempt Encryption | NO    |
| Xcode, Swift        | `Info.plist` | App Uses Non-Exempt Encryption | NO    |

Com Expo, a chave se chama `usesNonExemptEncryption`, e a [referência de configuração](https://docs.expo.dev/versions/latest/config/app/) explica que ela escreve a chave da Apple no Info.plist do build, e que `ios.config` serve só para o build: ele não aparece no manifesto de produção.

```json
{
  "expo": {
    "ios": {
      "config": {
        "usesNonExemptEncryption": false
      }
    }
  }
}
```

Com Expo, `ios.infoPlist` também aceita a chave com o nome da Apple, com o mesmo valor: é a segunda linha do app.json do Solys. Num projeto nativo, a mesma declaração cabe em uma linha do Info.plist: a chave App Uses Non-Exempt Encryption, que é o nome que o Xcode mostra, com o valor NO. O valor é um booleano, não uma string.

**A chave vale a partir do próximo build.** O build já enviado continua em Missing Compliance enquanto você não responder no App Store Connect: as duas ações não se substituem, elas se complementam.

## false ou true: como decidir

A Apple define o valor NO assim: o seu app, incluindo bibliotecas de terceiros, não usa nenhuma criptografia, ou usa apenas criptografia isenta das obrigações de documentação. Caso contrário, é YES.

O que costuma ser isento, segundo a página sobre as regras de exportação: a criptografia embutida no sistema, como as conexões HTTPS via URLSession. O que não é: uma criptografia proprietária, que você escreveu ou incluiu no app. A [visão geral da conformidade de exportação](https://developer.apple.com/help/app-store-connect/manage-app-information/overview-of-export-compliance/) traz um lembrete importante: você é o responsável pela interpretação, e pelas consequências, se alegar uma isenção indevidamente.

Para um app Expo que chama uma API em HTTPS, guarda preferências e vende uma assinatura, `false` é a resposta comum. Para um app que criptografa por conta própria mensagens, arquivos ou um cofre, a resposta é `true`, e a Apple espera uma documentação.

> Não coloque `false` no automático. Revise suas dependências: uma biblioteca de criptografia de ponta a ponta ou um armazenamento criptografado caseiro te joga para o lado da documentação.

## Se o seu app usa criptografia não isenta

A [página sobre a documentação de criptografia](https://developer.apple.com/help/app-store-connect/manage-app-information/determine-and-upload-app-encryption-documentation/) descreve o processo. Em App Information, ao lado de App Encryption Documentation, o botão de adicionar abre as perguntas, depois Choose File para o documento, depois Save. A Apple pede que você tenha preenchido a descrição do app e configurado a disponibilidade antes, para avaliar se a documentação é suficiente. O prazo previsto é de cerca de dois dias úteis quando o dossiê está completo.

Depois que a documentação é aprovada, a Apple fornece um valor para colocar na chave `ITSEncryptionExportComplianceCode` do seu Info.plist. Com ele, acabam as perguntas a cada envio. Durante a análise, seu build mostra Waiting for Export Compliance Review ou In Compliance Review: nenhuma ação é esperada de você.

Dois pontos apontados pela Apple, um na página das regras de exportação, o outro na visão geral da conformidade:

- **Mesmo com criptografia isenta, pode ser exigido um relatório anual de autoclassificação ao governo americano.** Ele não é exigido se você usa criptografia não isenta e forneceu a documentação à Apple.
- **A França também controla a importação e a exportação de apps de criptografia.** A visão geral da Apple cita o armazenamento seguro, as comunicações seguras e os antivírus como áreas afetadas, com isenções para apps bancários e médicos, e remete à ANSSI.

## O que acontece depois no TestFlight

O build desbloqueado segue a vida normal de um build TestFlight, descrita no guia [TestFlight para testar seu app de iPhone](https://devoria.fr/pt-br/blog/testflight-como-testar-app-iphone-antes-envio): testadores internos na hora, testadores externos depois da revisão beta, e expiração após 90 dias, segundo a lista de status de build. Os outros bloqueios possíveis de um envio Expo, como um número de build já usado ou um arquivo recusado, estão em [os erros de envio do EAS para o App Store Connect](https://devoria.fr/pt-br/blog/erros-eas-submit-ios-como-corrigir), e o fluxo completo em [publicar um app Expo na App Store com EAS](https://devoria.fr/pt-br/blog/eas-submit-ios-publicar-app-expo-app-store).

O [iOS & Android Kit](https://devoria.fr/pt-br/kits/ios) traz meu código inicial Expo, com essa chave já definida, e o caminho do primeiro build até a página na App Store. Se você quer saber o que ainda trava a sua publicação, o [diagnóstico gratuito](https://devoria.fr/pt-br/diagnostic) responde em poucas perguntas e te envia meu checklist anti-rejeição da Apple. Os passos completos estão em [publicar um aplicativo na App Store](https://devoria.fr/pt-br/expertise/publicar-app-na-app-store).

## Perguntas frequentes

### O que significa Missing Compliance no TestFlight?

O build está esperando sua declaração de conformidade de exportação, ou seja, sua resposta sobre o uso de criptografia. A Apple o classifica entre os status que pedem uma ação sua. O build não vai para os testadores enquanto você não responder.

### Por que o link Manage do Missing Compliance não está clicável?

Confira sua função: a Apple reserva a resposta às funções Account Holder, Admin e App Manager. A Apple não documenta outra causa. Se o build acabou de chegar, recarregue a página depois do e-mail de fim de processamento.

### Meu app só usa HTTPS, preciso responder sim sobre criptografia?

A Apple indica que a criptografia embutida no sistema, como as conexões HTTPS via URLSession, costuma ser isenta das obrigações de documentação. Nesse caso, a chave ITSAppUsesNonExemptEncryption fica como NO, desde que nenhuma biblioteca de terceiros adicione criptografia proprietária.

### Preciso responder às perguntas de criptografia a cada build?

Sim, enquanto o seu Info.plist não tiver a chave ITSAppUsesNonExemptEncryption. Com ela, o App Store Connect não faz mais as perguntas. Com Expo, ela é definida no app.json por `ios.config.usesNonExemptEncryption`.

### Onde declarar a criptografia no app.json com Expo?

No app.json, em `expo.ios.config`, com `"usesNonExemptEncryption": false` se o seu app não usa nenhuma criptografia não isenta. O EAS Build escreve a chave no Info.plist do build. Ela vale a partir do próximo build, não para o que já foi enviado.

### Missing Compliance também bloqueia o envio para a App Store?

As perguntas de conformidade de exportação aparecem para toda nova versão, beta ou App Store. Um build sem resposta não pode ser distribuído. A chave no Info.plist resolve os dois casos de uma vez.

### Preciso fazer um relatório anual de autoclassificação?

A Apple avisa que o uso de criptografia isenta ainda pode exigir um relatório anual de autoclassificação ao governo americano, e remete ao procedimento oficial. Se o seu app usa criptografia não isenta e você forneceu a documentação à Apple, esse relatório não é necessário.


## Seu projeto

[Review Kit](https://devoria.fr/pt-br/kits/app-review): Meu checklist de revisão da App Store, as recusas da Apple que corrigi, o checklist do Google Play e três skills do Claude Code. R$ 289.

[iOS & Android Kit](https://devoria.fr/pt-br/kits/ios): Crie seu app para iPhone e Android com o Claude Code: o código inicial dos meus apps, o caminho até as lojas e todos os kits. R$ 589.

[Diagnóstico: o que te separa do seu app de iPhone](https://devoria.fr/pt-br/diagnostic): 7 perguntas, 60 segundos: descubra o que realmente te impede de publicar seu app de iPhone, seu caminho em 4 etapas e o kit certo para você.
