384
votes

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?

enter image description here

10

10 Answers

684
votes

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:

147
votes

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

  1. 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.

70
votes

Add following at the bottom of your Info.plist

<key>ITSAppUsesNonExemptEncryption</key>
<false/>
52
votes

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

15
votes

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

9
votes

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"

5
votes

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).

3
votes
  1. If you have released to Apple TestFlight for testing

    You have to click the link each time and select No, only after that, your tester can see the build. This is quite annoying if you want to get your build delivered as soon as possible.

    enter image description here

  2. Do this for the next build, (If do this before the build then this error will not occur)

👉 The solution is add the following setting to your iOS Info.plist:

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

enter image description here

Can not add "Missing Compliance", see this Missing Compliance

1
votes

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.

1
votes

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.