Export compliance (ECCN/EAR) answered correctly
Why it matters
The ITSAppUsesNonExemptEncryption key in Info.plist is required by the US Bureau of Industry and Security (BIS) under the Export Administration Regulations (EAR). Apple enforces this during upload to App Store Connect — if the key is missing, the submission process stops and requires manual resolution in App Store Connect's compliance section. Declaring true incorrectly (claiming non-exempt encryption when only standard HTTPS is used) can trigger BIS filing requirements that the developer is not equipped to fulfill, creating ongoing regulatory exposure. Most apps qualify for the exemption under EAR §740.17(b)(1) and should declare false.
Severity rationale
Medium because an absent or incorrect declaration blocks App Store submission and creates regulatory risk under US export law, but is resolved by a single configuration line for most apps.
Remediation
For apps using only standard HTTPS (the vast majority), set the key to NO in ios/[AppName]/Info.plist:
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
For Expo, configure this in app.json:
"ios": {
"config": {
"usesNonExemptEncryption": false
}
}
If your app implements custom encryption beyond standard TLS — for example, end-to-end encrypted messaging with a custom cipher — set true and consult the BIS Annual Self-Classification Report process. Do not set true as a conservative default; the exemption for standard TLS is explicit and well-established.
Detection
- ID:
export-compliance - Severity:
medium - What to look for: For iOS: check
ios/[AppName]/Info.plistforITSAppUsesNonExemptEncryption. This key must be present. In Expo, checkapp.jsonforexpo.ios.config.usesNonExemptEncryption. The values are:falseif the app uses only Apple's built-in encryption (HTTPS via NSURLSession, standard TLS) — most apps qualify for this exemption;trueif the app implements custom encryption, uses a third-party encryption library beyond standard TLS, or qualifies as "non-exempt" under EAR. If the key is missing, Apple prompts for it during upload and may reject if not correctly answered during submission. For Android/Google Play: export compliance questions are answered during the Play Console submission process and are not typically present in the codebase, but check for anyEAR,ECCN, or export compliance notes inREVIEW_NOTES.mdorsubmission-notes.md. For Expo, also checkeas.jsonfor anyios.itunesConnect.usesNonExemptEncryptionsetting. Count every encryption usage in the app (HTTPS, data-at-rest encryption, crypto libraries) and enumerate each for export compliance classification. - Pass criteria:
ITSAppUsesNonExemptEncryptionis present inInfo.plistorapp.jsonwith a value offalse(for apps using only standard TLS/HTTPS) ortruewith appropriate documentation; or the value is correctly set in EAS config. At least 1 implementation must be confirmed. - Fail criteria:
ITSAppUsesNonExemptEncryptionkey is entirely absent fromInfo.plistfor an iOS project (will cause Apple to require manual declaration during upload); the key is set incorrectly (truefor an app that only uses standard HTTPS, whenfalseis the correct answer for the EAR exemption). - Skip (N/A) when: Android-only project with no iOS build.
- Detail on fail:
"ITSAppUsesNonExemptEncryption key is missing from ios/MyApp/Info.plist — Apple will require this to be declared during App Store Connect upload". - Remediation: Most apps qualify for the encryption exemption.
- If your app only uses standard HTTPS (TLS via system APIs), set
ITSAppUsesNonExemptEncryptiontoNOinInfo.plist - For Expo, add to
app.json:"ios": { "config": { "usesNonExemptEncryption": false } } - If your app uses custom encryption (e.g., end-to-end encryption, custom cipher implementations), consult the BIS export compliance regulations and potentially register for an Annual Self-Classification Report
- If your app only uses standard HTTPS (TLS via system APIs), set
External references
- external · us-ear-encryption-exemption — US Export Administration Regulations — Encryption Exemption (EAR §740.17)
- external · apple-app-store-encryption-export-compliance — Apple App Store — Complying with Encryption Export Regulations
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-metadata-listing·automated