ITSAppUsesNonExemptEncryption: What to Set Before You Submit
23 Jun 2026 · 3 min read · Erik van Kammen
Every iOS upload triggers one export-compliance question: does your app use encryption? Skip it or answer it wrong and App Store Connect parks the build in Missing Compliance — a hold that blocks you from sending it to review until you resolve it. The whole thing comes down to one Info.plist key, ITSAppUsesNonExemptEncryption, but setting it correctly means knowing which kind of encryption your app actually ships.
It is a Boolean key in your app's Info.plist that tells App Store Connect whether your app uses encryption that is not exempt from U.S. export regulations (the EAR, administered by the Bureau of Industry and Security).
<!-- Info.plist: most apps that only use HTTPS can set this to false -->
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
false, and App Store Connect stops asking on every upload and lets the build move straight to review.true, and you confirm non-exempt encryption, which can trigger documentation requirements.Most apps can. Apple treats several common categories of encryption as exempt:
| Encryption in your app | Exempt? | Typical value |
|---|---|---|
| HTTPS / TLS to your backend | Yes | false |
| Apple's built-in crypto via system APIs | Yes | false |
| Authentication, signing, integrity checks only | Yes | false |
| Standard, mass-market encryption | Usually | false |
| Custom or proprietary cipher you implemented | No | true |
| Bundled crypto library with its own algorithms | No | true |
| End-to-end encryption you built yourself | No | true |
If your app only uses encryption from the exempt rows — true for most apps that just talk to a backend over HTTPS — you can set the key to false.
If your encryption is genuinely non-exempt, U.S. rules may require an annual self-classification report to BIS, and in some cases a CCATS classification. Apple surfaces this through a second key, ITSEncryptionExportComplianceCode, where you enter the export code Apple issues once your documentation for the year is on file. This is a legal classification, not a technical one — if you ship custom cryptography and you are unsure, get export-compliance advice rather than guessing.
ITSAppUsesNonExemptEncryption never reaches a human reviewer — it gates the build before review. A wrong or missing value does not come back as a polite rejection days later; it silently parks your build in Missing Compliance the moment you upload, usually discovered when someone goes to submit and can't. On a release day, that is exactly the kind of small, technical, avoidable delay that resets your timeline.
Because the key lives in the compiled Info.plist and the cryptography lives in the linked binary, this is detectable before you ever upload. Binary analysis can confirm three things:
ITSAppUsesNonExemptEncryption key is present and set.false while shipping a non-exempt crypto SDK — the mismatch that turns into a problem later.AppCompliance checks the encryption declaration as part of its iOS binary scan, alongside privacy manifest validation and SDK inventory, and can gate it in CI before upload. It tells you which cryptographic code is in your binary and whether the declaration is missing or inconsistent — it does not make the legal export-classification decision for you.
ITSAppUsesNonExemptEncryption answers Apple's export-compliance question in the Info.plist.false.true and keep your export documentation current.Everything technical in this post is checkable from the build itself, and that is exactly what AppCompliance does: upload an iOS or Android build, and minutes later you have every issue that would get it rejected, with the exact fix next to it.
One email when we open the doors. No spam, just the launch.