523

When I added my latest build for internal testing with TestFlight, I saw that it had a "Missing Compliance" status.

Is this a major problem? Why does this appear? How can I resolve this issue?

Test flight status Missing Compliance

12 Answers 12

937

Unless your app is using some special encryption you can simply add Boolean a key to your Info.plist with name ITSAppUsesNonExemptEncryption and value false.

In code:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

If you want to use the Xcode UI instead, head over to the Project > Target > Info panel, add a new "App Uses Non-Exempt Encryption" Boolean key with value NO:

Screenshot of the Xcode view where to add the value.

If your app is using custom encryption then you will need to provide extra legal documents and go through a review of your encryption before being able to select builds.

If you continue with selecting that version for testing, it will ask for the compliance information manually. Choosing "No" presents you with the plist recommendation above.

iTunes Connect encryption export compliance alert for testing

This is change has been announced in the 2015 WWDC, but I guess it has been enforced only very recently. See this and this for a transcript of the WWDC session related to the export compliance, just to a text search for "export".

There are other similar questions on SO, see:

6
  • 8
    What is special encryption meant to be? Does using iOS keychain to store user's info count? May 9, 2016 at 10:27
  • 1
    Under new iTunesConnect: Top menu > Features > Encryption
    – bauerMusic
    May 10, 2017 at 9:08
  • 11
    @mokagio I am using Https connection to consume data for the Application so Do I have to choose yes and submit any documents? Mar 12, 2018 at 14:04
  • 2
    I have this warning on my macOS app, even though I have the ITSAppUsesNonExemptEncryption set to NO in my plist file.
    – Bram
    Nov 12, 2020 at 23:41
  • 1
    @vigneshkumar, according to Apple's docs, these appear to be exempt: "Typically, the use of encryption that’s built into the operating system—for example, when your app makes HTTPS connections using URLSession—is exempt from export documentation upload requirements, whereas the use of proprietary encryption is not" (developer.apple.com/documentation/security/…)
    – James
    Dec 3, 2020 at 16:44
182

There's no longer any need to submit a new build or modify Info.plist; instead, follow these steps:

  1. Make sure you are an Admin or App Manager role in App Store Connect.

  2. Go to the iOS tab at the top left of TestFlight and click the yellow triangle next to the warning to provide this information within iTunes Connect:

enter image description here

  1. Click the "Provide Export Compliance Information" link in the popup:

Export Compliance Information

Though, if you do choose to modify Info.plist, you'll never need to deal with this popup again.

11
  • 5
    @am_ I just tried it and it still works. You just need to click the "Provide Export Compliance Information" link in the popup. Post has been edited with the new screenshot. Jun 10, 2017 at 20:17
  • 3
    There is no "Provide Export Compliance Information" link when I click triangle, I just get the informational text. Jun 26, 2017 at 22:39
  • 14
    Turned out to be an access issue. I'm not an Admin (Developer+some other), and our Admin was who submitted the app. I had our Admin look at it in his account, and he was able to see/click the "Provide Export Compliance Information" link to resolve the problem. Jun 27, 2017 at 0:49
  • 4
    @RandyHill thanks for the info -- I've updated my answer to explain that you need to be an Admin. Jun 27, 2017 at 17:30
  • 3
    @am_ only users with admin roles can see the link
    – Alexis.J
    Aug 18, 2017 at 16:39
88

In your Info.plist, Right click in the properties table, click Add Row, add key name App Uses Non-Exempt Encryption with Type Boolean and set value NO.

enter image description here

Another approach to handle this

Righ Click on info.plist and select open as and then click on Source Code Add this line in last of file before </dict> tag

<key>ITSAppUsesNonExemptEncryption</key>
<false/>
2
  • 3
    one need to right click the properties table, and click 'Add Row' to do that, it took me a few minutes for find out :) Oct 20, 2019 at 9:37
  • worked for iOS 16, Xcode 14.1 Mar 14, 2023 at 13:27
82

Add following at the bottom of your Info.plist

<key>ITSAppUsesNonExemptEncryption</key>
<false/>
17

If your info.plist is shown as a property list (and not xml), the text you need to enter for the key is:
App Uses Non-Exempt Encryption

14

Righ Click on info.plist and select open as and then click on Source Code Add this line in last of file before </dict> tag

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

and save file.

9

If you are not using https in api calls, Please add this key "App Uses Non-Exempt Encryption" in your info.plist and set it to "NO"

4
  • 3
    HTTPS connections using URLSession—is exempt from export documentation upload requirements. Dec 11, 2019 at 9:50
  • 1
    What is a URLSession? how do I know if I use it? I'm using React Native app with Fetch request and I have no idea - tried searching for it.
    – Dror Bar
    Mar 10, 2020 at 12:55
  • @DrorBar What did you end up doing here? I'm also using React Native (with Expo) and I'm not sure what I should be doing here. I'm making calls to my back-end over HTTPS. May 26, 2020 at 16:01
  • 2
    @DarrylYoung I haven't found a specific answer but I'm pretty sure these kind of HTTPS calls are exempt from encryption requirements. You should be good adding the key.
    – Dror Bar
    May 26, 2020 at 16:38
8

For SwiftUI

Normally there is no info.plist file. So use this way to add Non-exempt encryption key and value. Click on the + button as follows and type ITSAppUsesNonExemptEncryption as the key and NO as the value

enter image description here

7

Additionally, if you can't see the "Provide Export Compliance Information" button make sure you have the right role in your App Store Connect or talk to the right person (Account Holder, Admin, or App Manager).

0
3

I just fund another way to do the same workaround. Because of I hadn' t the possibility to click on the yellow triangle (even if I have admin role), when you go inside testflight, then iOS (under "Build") instead of yellow triangle click the version number, another page will open and you will find on top right something like add compliance information (sorry if I am not totally accurate but I have the italian version but it would be really easy to find). Then you can do the same even if you, like me, are not able to click on yellow triangle.

1

it simply indicates that you do not use encryption, it can be intimidating when you are a newbie but it is not a problem if you are sure that you do not use encryption

1

Step 1: Click On Manage

enter image description here

Step 2: Select, None of the algorithms mentioned above, If you didn't use any description algorithms

enter image description here

Step 3: Click on save

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.