# Missing Compliance στο TestFlight: πώς το διορθώνεις

> Το Missing Compliance σημαίνει ότι η Apple περιμένει τη δήλωση κρυπτογράφησης. Απάντησε στο App Store Connect και βάλε το κλειδί στο Info.plist.

Αρχική σελίδα: [Missing Compliance στο TestFlight: πώς το διορθώνεις](https://devoria.fr/el/blog/missing-compliance-testflight-fix)
Συγγραφέας: [Mehdi Azizi](https://devoria.fr/el/mehdi-azizi)
Δημοσίευση: 2026-11-06
Τελευταία αναθεώρηση περιεχομένου: 2026-11-06


**Το Missing Compliance δεν είναι σφάλμα: είναι ένα build που περιμένει την απάντησή σου για την κρυπτογράφηση.** Όσο δεν έχεις απαντήσει, το build μένει μπλοκαρισμένο για τους testers σου. Για αυτό το build, απαντάς στις ερωτήσεις στην καρτέλα TestFlight του App Store Connect. Για τα επόμενα, βάζεις το κλειδί ITSAppUsesNonExemptEncryption στο Info.plist σου, ή το `ios.config.usesNonExemptEncryption` στο app.json σου με Expo, και η κατάσταση δεν ξαναεμφανίζεται.

Τις iOS εφαρμογές μου τις φτιάχνω με Expo. Στο app.json του Solys, το κλειδί έχει τιμή `false` και μπαίνει δύο φορές: στο `ios.config` και στο `ios.infoPlist`. Αυτός ο οδηγός ακολουθεί τις σελίδες της Apple για τις [καταστάσεις των builds](https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/) και για τη [συμμόρφωση εξαγωγής των beta builds](https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-export-compliance-information-for-beta-builds/), όπως τις ξαναδιάβασα στις 6 Νοεμβρίου 2026.

## Τι σημαίνει το Missing Compliance

Η λίστα καταστάσεων build της Apple το ορίζει με μία πρόταση: λείπει η τεκμηρίωση συμμόρφωσης εξαγωγής και αναμένεται ενέργεια από σένα. Η Apple το δείχνει με κίτρινο, το χρώμα μιας διαδικασίας σε εξέλιξη που εξαρτάται από σένα ή από την Apple, και η περιγραφή του διευκρινίζει ότι αναμένεται ενέργεια από σένα.

Γιατί ρωτάει η Apple; Η [σελίδα για τους κανόνες εξαγωγής κρυπτογράφησης](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations) το εξηγεί: όταν στέλνεις ένα build στο TestFlight ή στο App Store, το στέλνεις σε server στις Ηνωμένες Πολιτείες. Αν η εφαρμογή σου διανέμεται εκτός ΗΠΑ και Καναδά, υπάγεται στο αμερικανικό δίκαιο εξαγωγών, όποια κι αν είναι η χώρα της επιχείρησής σου. Και μόλις μια εφαρμογή χρησιμοποιεί, περιέχει ή ενσωματώνει κρυπτογράφηση, η Apple θεωρεί ότι πρόκειται για εξαγωγή λογισμικού κρυπτογράφησης.

**Αποτέλεσμα: σε κάθε νέα έκδοση, το App Store Connect σου κάνει τις ερωτήσεις συμμόρφωσης, εκτός αν το Info.plist σου απαντά ήδη.** Γι' αυτό ένα πρώτο build Expo φτάνει σχεδόν πάντα σε Missing Compliance.

## Ξεμπλόκαρε το build που περιμένει

Τα βήματα προέρχονται από τη σελίδα της Apple για τη συμμόρφωση εξαγωγής των beta builds. Χρειάζεσαι ρόλο Account Holder, Admin ή App Manager.

1. Στο Apps, άνοιξε την εφαρμογή σου και μετά την καρτέλα TestFlight.
2. Στην πλαϊνή μπάρα, κάτω από το Builds, διάλεξε την πλατφόρμα.
3. Στη στήλη Build, κάνε κλικ στο εικονίδιο ή στον αριθμό του build.
4. Κάνε κλικ στο Provide Export Compliance Information και απάντησε στις ερωτήσεις.
5. Αν η Apple σού ζητήσει τεκμηρίωση, κάνε κλικ στο Go to App Encryption Page για να τη στείλεις. Αλλιώς, κάνε κλικ στο Save.

Η Apple περιγράφει και τη συντόμευση: δίπλα στο build, ο σύνδεσμος Manage ανοίγει τις ίδιες ερωτήσεις, και το Choose File σού επιτρέπει να επισυνάψεις τεκμηρίωση που έχει ήδη εγκριθεί. Μόλις αποθηκευτεί, το build περνά σε Ready to Submit, ή κατευθείαν σε Testing αν πηγαίνει σε εσωτερική ομάδα. Το Ready to Test έρχεται μόνο μετά τον beta έλεγχο για τους εξωτερικούς testers.

**Ο σύνδεσμος Manage δεν πατιέται;** Έλεγξε πρώτα τον ρόλο σου στην ομάδα: η Apple επιτρέπει την απάντηση μόνο στους ρόλους Account Holder, Admin και App Manager, ένας λογαριασμός Developer ή Marketing δεν μπορεί να απαντήσει. Η Apple δεν τεκμηριώνει άλλη αιτία. Αν το build μόλις στάλθηκε, περίμενε το e-mail ολοκλήρωσης της επεξεργασίας, που εξηγείται στον οδηγό για τον [αριθμό build και την έκδοση](https://devoria.fr/el/blog/app-store-connect-build-number-version), και μετά ανανέωσε τη σελίδα.

## Μην ξανααπαντήσεις ποτέ: το κλειδί στο project σου

Η Apple το λέει στη σελίδα των beta builds: μπορείς να δηλώσεις στο Info.plist ότι η εφαρμογή σου δεν χρησιμοποιεί κρυπτογράφηση ή ότι εξαιρείται, και δεν χρειάζεται πια να απαντάς σε κάθε υποβολή. Το κλειδί λέγεται [ITSAppUsesNonExemptEncryption](https://developer.apple.com/documentation/bundleresources/information-property-list/itsappusesnonexemptencryption). Το Xcode το δείχνει με το όνομα App Uses Non-Exempt Encryption.

| Το εργαλείο σου    | Αρχείο       | Πού                            | Τιμή  |
| ------------------ | ------------ | ------------------------------ | ----- |
| Expo (EAS Build)   | `app.json`   | `expo.ios.config`              | false |
| Expo, άλλος τρόπος | `app.json`   | `expo.ios.infoPlist`           | false |
| Σκέτο React Native | `Info.plist` | App Uses Non-Exempt Encryption | NO    |
| Xcode, Swift       | `Info.plist` | App Uses Non-Exempt Encryption | NO    |

Με Expo, το κλειδί λέγεται `usesNonExemptEncryption`, και η [τεκμηρίωση ρυθμίσεων](https://docs.expo.dev/versions/latest/config/app/) διευκρινίζει ότι γράφει το κλειδί της Apple στο Info.plist του build, και ότι το `ios.config` χρησιμεύει μόνο στο build: δεν εμφανίζεται στο manifest της παραγωγής.

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

Με Expo, το `ios.infoPlist` δέχεται επίσης το κλειδί με το όνομα της Apple, με την ίδια τιμή: είναι η δεύτερη γραμμή στο app.json του Solys. Σε native project, η ίδια δήλωση χωράει σε μία γραμμή του Info.plist: το κλειδί App Uses Non-Exempt Encryption, όπως το δείχνει το Xcode, με τιμή NO. Η τιμή είναι boolean, όχι string.

**Το κλειδί ισχύει από το επόμενο build.** Το build που έχει ήδη σταλεί μένει σε Missing Compliance όσο δεν έχεις απαντήσει στο App Store Connect: οι δύο ενέργειες δεν αντικαθιστούν η μία την άλλη, αλληλοσυμπληρώνονται.

## false ή true: πώς αποφασίζεις

Η Apple ορίζει την τιμή NO έτσι: η εφαρμογή σου, μαζί με τις βιβλιοθήκες τρίτων, δεν χρησιμοποιεί καμία κρυπτογράφηση, ή μόνο κρυπτογράφηση που εξαιρείται από τις υποχρεώσεις τεκμηρίωσης. Αλλιώς, είναι YES.

Τι εξαιρείται συνήθως, σύμφωνα με τη σελίδα για τους κανόνες εξαγωγής: η κρυπτογράφηση που είναι ενσωματωμένη στο σύστημα, όπως οι συνδέσεις HTTPS μέσω URLSession. Τι δεν εξαιρείται: μια ιδιόκτητη κρυπτογράφηση, που έγραψες ή ενσωμάτωσες εσύ. Η [επισκόπηση της συμμόρφωσης εξαγωγής](https://developer.apple.com/help/app-store-connect/manage-app-information/overview-of-export-compliance/) προσθέτει μια σημαντική υπενθύμιση: εσύ είσαι υπεύθυνος για την ερμηνεία, και για τις συνέπειές της, αν διεκδικήσεις λανθασμένα μια εξαίρεση.

Για μια εφαρμογή Expo που καλεί ένα API μέσω HTTPS, αποθηκεύει προτιμήσεις και πουλά συνδρομή, το `false` είναι η συνηθισμένη απάντηση. Για μια εφαρμογή που κρυπτογραφεί η ίδια μηνύματα, αρχεία ή ένα θησαυροφυλάκιο, η απάντηση είναι `true`, και η Apple περιμένει τεκμηρίωση.

> Μη βάζεις `false` από συνήθεια. Ξαναδές τις εξαρτήσεις σου: μια βιβλιοθήκη κρυπτογράφησης end-to-end ή ένας δικός σου κρυπτογραφημένος αποθηκευτικός χώρος σε περνά στην πλευρά της τεκμηρίωσης.

## Αν η εφαρμογή σου χρησιμοποιεί κρυπτογράφηση που δεν εξαιρείται

Η [σελίδα για την τεκμηρίωση κρυπτογράφησης](https://developer.apple.com/help/app-store-connect/manage-app-information/determine-and-upload-app-encryption-documentation/) περιγράφει τη διαδικασία. Στο App Information, δίπλα στο App Encryption Documentation, το κουμπί προσθήκης ανοίγει τις ερωτήσεις, μετά Choose File για το έγγραφο, μετά Save. Η Apple ζητά να έχεις συμπληρώσει πρώτα την περιγραφή της εφαρμογής και να έχεις ρυθμίσει τη διαθεσιμότητά της, ώστε να κρίνει αν η τεκμηρίωση αρκεί. Στοχεύει σε περίπου δύο εργάσιμες ημέρες όταν ο φάκελος είναι πλήρης.

Μόλις εγκριθεί η τεκμηρίωση, η Apple σού δίνει μια τιμή για να τη βάλεις στο κλειδί `ITSEncryptionExportComplianceCode` του Info.plist σου. Με αυτή, τέλος οι ερωτήσεις σε κάθε αποστολή. Κατά τον έλεγχο, το build σου δείχνει Waiting for Export Compliance Review ή In Compliance Review: δεν αναμένεται καμία ενέργεια από σένα.

Δύο σημεία που επισημαίνει η Apple, το ένα στη σελίδα των κανόνων εξαγωγής, το άλλο στην επισκόπηση της συμμόρφωσης:

- **Ακόμα και με κρυπτογράφηση που εξαιρείται, μπορεί να απαιτηθεί ετήσια αναφορά αυτοταξινόμησης προς την αμερικανική κυβέρνηση.** Δεν απαιτείται αν χρησιμοποιείς κρυπτογράφηση που δεν εξαιρείται και έχεις δώσει την τεκμηρίωση στην Apple.
- **Η Γαλλία ελέγχει επίσης την εισαγωγή και την εξαγωγή εφαρμογών κρυπτογράφησης.** Η επισκόπηση της Apple αναφέρει την ασφαλή αποθήκευση, τις ασφαλείς επικοινωνίες και τα antivirus ως τομείς που αφορά, με εξαιρέσεις για τραπεζικές και ιατρικές εφαρμογές, και παραπέμπει στην ANSSI.

## Τι γίνεται μετά στο TestFlight

Το ξεμπλοκαρισμένο build ακολουθεί την κανονική ζωή ενός build στο TestFlight, που περιγράφεται στον οδηγό [TestFlight για να δοκιμάσεις την iPhone εφαρμογή σου](https://devoria.fr/el/blog/testflight-dokimi-efarmogis-iphone): εσωτερικοί testers αμέσως, εξωτερικοί testers μετά τον beta έλεγχο, και λήξη μετά από 90 ημέρες, σύμφωνα με τη λίστα καταστάσεων build. Τα άλλα πιθανά εμπόδια μιας αποστολής Expo, όπως ένας αριθμός build που έχει ήδη χρησιμοποιηθεί ή ένα αρχείο που απορρίφθηκε, είναι στα [σφάλματα αποστολής EAS στο App Store Connect](https://devoria.fr/el/blog/eas-submit-ios-errors-fix), και όλη η αλυσίδα στο [πώς δημοσιεύεις μια εφαρμογή Expo στο App Store με EAS](https://devoria.fr/el/blog/eas-submit-ios-publish-expo-app-store).

Το [iOS & Android Kit](https://devoria.fr/el/kits/ios) περιέχει τον αρχικό μου κώδικα Expo, με αυτό το κλειδί ήδη ρυθμισμένο, και τη διαδρομή από το πρώτο build μέχρι τη σελίδα στο App Store. Αν θέλεις να μάθεις τι μπλοκάρει ακόμα τη δημοσίευσή σου, η [δωρεάν διάγνωση](https://devoria.fr/el/diagnostic) σού απαντά με λίγες ερωτήσεις και σού στέλνει τη checklist μου κατά των απορρίψεων της Apple. Όλα τα βήματα είναι στο [πώς δημοσιεύεις μια εφαρμογή στο App Store](https://devoria.fr/el/expertise/publish-an-app-on-the-app-store).

## Συχνές ερωτήσεις

### Τι σημαίνει Missing Compliance στο TestFlight;

Το build περιμένει τη δήλωση συμμόρφωσης εξαγωγής, δηλαδή την απάντησή σου για τη χρήση κρυπτογράφησης. Η Apple το κατατάσσει στις καταστάσεις που απαιτούν ενέργεια από σένα. Το build δεν πηγαίνει στους testers όσο δεν έχεις απαντήσει.

### Γιατί ο σύνδεσμος Manage του Missing Compliance δεν πατιέται;

Έλεγξε τον ρόλο σου: η Apple επιτρέπει την απάντηση μόνο στους ρόλους Account Holder, Admin και App Manager. Η Apple δεν τεκμηριώνει άλλη αιτία. Αν το build μόλις έφτασε, ανανέωσε τη σελίδα μετά το e-mail ολοκλήρωσης της επεξεργασίας.

### Η εφαρμογή μου χρησιμοποιεί μόνο HTTPS, πρέπει να απαντήσω ναι στην κρυπτογράφηση;

Η Apple αναφέρει ότι η κρυπτογράφηση που είναι ενσωματωμένη στο σύστημα, όπως οι συνδέσεις HTTPS μέσω URLSession, συνήθως εξαιρείται από τις υποχρεώσεις τεκμηρίωσης. Σε αυτή την περίπτωση, το κλειδί ITSAppUsesNonExemptEncryption έχει τιμή NO, με την προϋπόθεση ότι καμία βιβλιοθήκη τρίτων δεν προσθέτει ιδιόκτητη κρυπτογράφηση.

### Πρέπει να απαντώ στις ερωτήσεις κρυπτογράφησης σε κάθε build;

Ναι, όσο το Info.plist σου δεν περιέχει το κλειδί ITSAppUsesNonExemptEncryption. Με αυτό, το App Store Connect δεν κάνει πια τις ερωτήσεις. Με Expo, ρυθμίζεται στο app.json μέσω του `ios.config.usesNonExemptEncryption`.

### Πού δηλώνω την κρυπτογράφηση στο app.json με Expo;

Στο app.json, κάτω από το `expo.ios.config`, με `"usesNonExemptEncryption": false` αν η εφαρμογή σου δεν χρησιμοποιεί καμία κρυπτογράφηση που δεν εξαιρείται. Το EAS Build γράφει το κλειδί στο Info.plist του build. Ισχύει από το επόμενο build, όχι για αυτό που έχει ήδη σταλεί.

### Μπλοκάρει το Missing Compliance και την υποβολή στο App Store;

Οι ερωτήσεις συμμόρφωσης εξαγωγής γίνονται για κάθε νέα έκδοση, beta ή App Store. Ένα build που δεν έχει απαντήσει δεν μπορεί να διανεμηθεί. Το κλειδί στο Info.plist λύνει και τις δύο περιπτώσεις μαζί.

### Πρέπει να κάνω ετήσια αναφορά αυτοταξινόμησης;

Η Apple επισημαίνει ότι η χρήση κρυπτογράφησης που εξαιρείται μπορεί παρ' όλα αυτά να απαιτεί ετήσια αναφορά αυτοταξινόμησης προς την αμερικανική κυβέρνηση, και παραπέμπει στην επίσημη διαδικασία. Αν η εφαρμογή σου χρησιμοποιεί κρυπτογράφηση που δεν εξαιρείται και έχεις δώσει την τεκμηρίωση στην Apple, η αναφορά αυτή δεν χρειάζεται.


## Το project σου

[Review Kit](https://devoria.fr/el/kits/app-review): Η checklist μου για το review του App Store, οι απορρίψεις μου από την Apple διορθωμένες, η checklist του Google Play και τρία skills του Claude Code. 49 €.

[iOS & Android Kit](https://devoria.fr/el/kits/ios): Φτιάξε την εφαρμογή σου για iPhone και Android με το Claude Code: ο αρχικός κώδικας των εφαρμογών μου, η διαδρομή μέχρι τα stores και όλα τα kits. 99 €.

[Διάγνωση: τι σε χωρίζει από την iPhone εφαρμογή σου](https://devoria.fr/el/diagnostic): 7 ερωτήσεις, 60 δευτερόλεπτα: μαθαίνεις τι πραγματικά σε μπλοκάρει για να δημοσιεύσεις την iPhone εφαρμογή σου, τη διαδρομή σου σε 4 βήματα και το kit που σου ταιριάζει.
