# Missing Compliance a TestFlight: com solucionar-ho

> Missing Compliance vol dir que Apple espera la teva declaració de xifratge. Desbloqueja el build i configura la clau perquè no torni.

Pàgina original: [Missing Compliance a TestFlight: com solucionar-ho](https://devoria.fr/ca/blog/missing-compliance-testflight-solucionar)
Autor: [Mehdi Azizi](https://devoria.fr/ca/mehdi-azizi)
Publicació: 2026-11-06
Darrera revisió del contingut: 2026-11-06


**Missing Compliance no és un error: és un build que espera la teva resposta sobre el xifratge.** Mentre no responguis, el build queda bloquejat per als teus testers. Per a aquest build, respons les preguntes a la pestanya TestFlight d'App Store Connect. Per als següents, poses la clau ITSAppUsesNonExemptEncryption al teu Info.plist, o `ios.config.usesNonExemptEncryption` al teu app.json amb Expo, i l'estat ja no torna.

Les meves apps iOS estan fetes amb Expo. A l'app.json de Solys, la clau val `false`, posada dues vegades: a `ios.config` i a `ios.infoPlist`. Aquesta guia segueix les pàgines d'Apple sobre els [estats de build](https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/) i sobre la [conformitat d'exportació dels builds beta](https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-export-compliance-information-for-beta-builds/), rellegides el 6 de novembre de 2026.

## Què vol dir Missing Compliance

La llista d'estats de build d'Apple ho defineix en una frase: falta la documentació de conformitat d'exportació, i s'espera una acció per part teva. Apple el mostra en groc, el color d'un procés en curs que depèn de tu o d'Apple, i la seva descripció precisa que s'espera una acció per part teva.

Per què Apple fa la pregunta? La [pàgina sobre les normes d'exportació del xifratge](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations) ho explica: quan envies un build a TestFlight o a l'App Store, l'envies a un servidor dels Estats Units. Si la teva app es distribueix fora dels Estats Units i el Canadà, queda subjecta al dret d'exportació nord-americà, sigui quin sigui el país de la teva empresa. I tan bon punt una app utilitza, conté o integra xifratge, Apple considera que es tracta d'una exportació de programari de xifratge.

**Resultat: a cada nova versió, App Store Connect et fa les preguntes de conformitat, tret que el teu Info.plist ja les respongui.** Per això un primer build d'Expo arriba gairebé sempre en Missing Compliance.

## Desbloquejar el build que espera

Els passos vénen de la pàgina d'Apple sobre la conformitat d'exportació dels builds beta. Necessites el rol Account Holder, Admin o App Manager.

1. A Apps, obre la teva app i després la pestanya TestFlight.
2. A la barra lateral, sota Builds, tria la plataforma.
3. A la columna Build, fes clic a la icona o al número del build afectat.
4. Fes clic a Provide Export Compliance Information i respon les preguntes.
5. Si Apple et demana documentació, fes clic a Go to App Encryption Page per enviar-la. Si no, fes clic a Save.

Apple també descriu la drecera: al costat del build, l'enllaç Manage obre les mateixes preguntes, i Choose File permet adjuntar una documentació ja aprovada. Un cop desat, el build passa a Ready to Submit, o directament a Testing si va a un grup intern. Ready to Test només arriba després de la revisió beta dels testers externs.

**L'enllaç Manage no es pot clicar?** Comprova primer el teu rol a l'equip: Apple reserva la resposta als rols Account Holder, Admin i App Manager, un compte Developer o Marketing no pot respondre. Apple no documenta cap altra causa. Si el build s'acaba d'enviar, espera el correu de fi de processament, detallat a la guia sobre el [número de build i la versió](https://devoria.fr/ca/blog/app-store-connect-build-number-versio-numero-build), i després recarrega la pàgina.

## No respondre mai més: la clau al teu projecte

Apple ho diu a la pàgina dels builds beta: pots indicar a l'Info.plist que la teva app no utilitza xifratge, o que n'està exempta, i ja no has de respondre a cada enviament. La clau es diu [ITSAppUsesNonExemptEncryption](https://developer.apple.com/documentation/bundleresources/information-property-list/itsappusesnonexemptencryption). Xcode la mostra amb el nom App Uses Non-Exempt Encryption.

| La teva eina     | Fitxer       | On                             | Valor |
| ---------------- | ------------ | ------------------------------ | ----- |
| Expo (EAS Build) | `app.json`   | `expo.ios.config`              | false |
| Expo, altra via  | `app.json`   | `expo.ios.infoPlist`           | false |
| React Native pur | `Info.plist` | App Uses Non-Exempt Encryption | NO    |
| Xcode, Swift     | `Info.plist` | App Uses Non-Exempt Encryption | NO    |

Amb Expo, la clau es diu `usesNonExemptEncryption`, i la [referència de configuració](https://docs.expo.dev/versions/latest/config/app/) precisa que escriu la clau d'Apple a l'Info.plist del build, i que `ios.config` només serveix per al build: no apareix al manifest de producció.

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

Amb Expo, `ios.infoPlist` també accepta la clau amb el seu nom d'Apple, amb el mateix valor: és la segona línia de l'app.json de Solys. En un projecte natiu, la mateixa declaració cap en una línia de l'Info.plist: la clau App Uses Non-Exempt Encryption, que és el nom que mostra Xcode, amb el valor NO. El valor és un booleà, no una cadena.

**La clau té efecte al següent build.** El build ja enviat continua en Missing Compliance mentre no hagis respost a App Store Connect: les dues accions no se substitueixen, es complementen.

## false o true: com decidir

Apple defineix el valor NO així: la teva app, biblioteques de tercers incloses, no utilitza cap xifratge, o només un xifratge exempt de les obligacions de documentació. Si no, és YES.

El que en general està exempt, segons la pàgina sobre les normes d'exportació: el xifratge integrat al sistema, com les connexions HTTPS per URLSession. El que no ho està: un xifratge propietari, que has escrit o incorporat tu. La [visió general de la conformitat d'exportació](https://developer.apple.com/help/app-store-connect/manage-app-information/overview-of-export-compliance/) afegeix un recordatori important: ets tu el responsable de la interpretació, i de les seves conseqüències, si reivindiques una exempció per error.

Per a una app d'Expo que crida una API en HTTPS, desa preferències i ven una subscripció, `false` és la resposta habitual. Per a una app que xifra ella mateixa missatges, fitxers o una caixa forta, la resposta és `true`, i Apple espera documentació.

> No posis `false` per reflex. Revisa les teves dependències: una biblioteca de xifratge d'extrem a extrem o un emmagatzematge xifrat fet a mà et fa passar al costat de la documentació.

## Si la teva app utilitza un xifratge no exempt

La [pàgina sobre la documentació de xifratge](https://developer.apple.com/help/app-store-connect/manage-app-information/determine-and-upload-app-encryption-documentation/) descriu el circuit. A App Information, al costat d'App Encryption Documentation, el botó d'afegir obre les preguntes, després Choose File per al document i després Save. Apple demana haver omplert abans la descripció de l'app i configurat la seva disponibilitat, per jutjar si la documentació és suficient. Apunta a uns dos dies laborables quan l'expedient és complet.

Un cop aprovada la documentació, Apple et dona un valor per posar a la clau `ITSEncryptionExportComplianceCode` del teu Info.plist. Amb ell, s'han acabat les preguntes a cada enviament. Durant la revisió, el teu build mostra Waiting for Export Compliance Review o In Compliance Review: no s'espera cap acció per part teva.

Dos punts que assenyala Apple, l'un a la pàgina de les normes d'exportació, l'altre a la visió general de la conformitat:

- **Fins i tot amb un xifratge exempt, se't pot exigir un informe anual d'autoclassificació davant el govern dels Estats Units.** No cal si utilitzes un xifratge no exempt i has proporcionat la documentació a Apple.
- **França també controla la importació i l'exportació de les apps de xifratge.** La visió general d'Apple cita l'emmagatzematge segur, les comunicacions segures i els antivirus com a àmbits afectats, amb exempcions per a les apps bancàries i mèdiques, i remet a l'ANSSI.

## Què passa després a TestFlight

El build desbloquejat segueix la vida normal d'un build de TestFlight, descrita a la guia [TestFlight per provar la teva app d'iPhone](https://devoria.fr/ca/blog/testflight-provar-app-iphone-abans-enviar): testers interns de seguida, testers externs després de la revisió beta, i caducitat al cap de 90 dies, segons la llista d'estats de build. Les altres aturades possibles d'un enviament d'Expo, com un número de build ja utilitzat o un fitxer rebutjat, són a [els errors d'enviament d'EAS a App Store Connect](https://devoria.fr/ca/blog/eas-submit-ios-errors-frequents-correccio), i la cadena completa a [publicar una app d'Expo a l'App Store amb EAS](https://devoria.fr/ca/blog/eas-submit-ios-publicar-app-expo-app-store).

L'[iOS & Android Kit](https://devoria.fr/ca/kits/ios) conté el meu codi de partida d'Expo, amb aquesta clau ja posada, i el recorregut que porta del primer build a la fitxa de l'App Store. Si vols saber què bloqueja encara la teva publicació, el [diagnòstic gratuït](https://devoria.fr/ca/diagnostic) et respon en poques preguntes i t'envia la meva checklist antirebuig d'Apple. Els passos complets són a [publicar una aplicació a l'App Store](https://devoria.fr/ca/expertise/publicar-una-aplicacio-app-store).

## Preguntes freqüents

### Què vol dir Missing Compliance a TestFlight?

El build espera la teva declaració de conformitat d'exportació, és a dir, la teva resposta sobre l'ús del xifratge. Apple el classifica entre els estats que demanen una acció per part teva. El build no arriba als testers mentre no hagis respost.

### Per què l'enllaç Manage de Missing Compliance no es pot clicar?

Comprova el teu rol: Apple reserva la resposta als rols Account Holder, Admin i App Manager. Apple no documenta cap altra causa. Si el build acaba d'arribar, recarrega la pàgina després del correu de fi de processament.

### La meva app només utilitza HTTPS, he de respondre que sí al xifratge?

Apple indica que el xifratge integrat al sistema, com les connexions HTTPS per URLSession, en general està exempt de les obligacions de documentació. En aquest cas, la clau ITSAppUsesNonExemptEncryption val NO, sempre que cap biblioteca de tercers no afegeixi un xifratge propietari.

### Cal respondre les preguntes de xifratge a cada build?

Sí, mentre el teu Info.plist no contingui la clau ITSAppUsesNonExemptEncryption. Amb ella, App Store Connect ja no fa les preguntes. Amb Expo, es configura a app.json amb `ios.config.usesNonExemptEncryption`.

### On es declara el xifratge a app.json amb Expo?

A app.json, sota `expo.ios.config`, amb `"usesNonExemptEncryption": false` si la teva app no utilitza cap xifratge no exempt. EAS Build escriu la clau a l'Info.plist del build. Té efecte al següent build, no al que ja s'ha enviat.

### Missing Compliance també bloqueja l'enviament a l'App Store?

Les preguntes de conformitat d'exportació es fan per a tota nova versió, beta o App Store. Un build que no les ha respost no es pot distribuir. La clau a l'Info.plist resol els dos casos alhora.

### He de fer un informe anual d'autoclassificació?

Apple assenyala que l'ús d'un xifratge exempt pot igualment exigir un informe anual d'autoclassificació davant el govern dels Estats Units, i remet al procediment oficial. Si la teva app utilitza un xifratge no exempt i has proporcionat la documentació a Apple, aquest informe no cal.


## El teu projecte

[Review Kit](https://devoria.fr/ca/kits/app-review): La meva checklist de revisió de l'App Store, els rebutjos d'Apple que he corregit, la de Google Play i tres skills de Claude Code. 49 €.

[iOS & Android Kit](https://devoria.fr/ca/kits/ios): Crea la teva app d'iPhone i Android amb Claude Code: el codi de partida de les meves apps, el camí fins a les botigues i tots els kits. 99 €.

[Diagnòstic: què et separa de la teva app d'iPhone](https://devoria.fr/ca/diagnostic): 7 preguntes, 60 segons: sabràs què et bloqueja de debò per publicar la teva app d'iPhone, el teu recorregut en 4 etapes i el kit que et toca.
