Missing "Purpose" string in Info.plist
See original GitHub issueI think we might have to update the cookiecutter Info.plist. I got the following message when recently submitting an update to an App Store app:
Dear Developer,
We identified one or more issues with a recent delivery for your app, "<APP_NAME>" <APP_VERSION> (<APP_BUILD>). Please correct the following issues, then upload again.
ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSCameraUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
Best regards,
The App Store Team
I honestly don’t have much idea what to do at this point, but I’ll try to fix the problem on my end (by manually editing the plist file until Apple accepts it) and append to this issue.
Issue Analytics
- State:
- Created 4 years ago
- Comments:7 (3 by maintainers)
Top Results From Across the Web
Error Appstore connect : Missing Purpose String in Info.plist File
"Missing Purpose String in Info.plist File. Your app's code references one or more APIs that access sensitive user data.
Read more >Dealing with "Missing Purpose String" and 3rd Party SDKs
Missing Purpose String in Info.plist File. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file...
Read more >[Solved] ITMS-90683: Missing Purpose String in Info.plist
ITMS-90683 : Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's...
Read more >ITMS-90683: Missing Purpose String in Info.plist - Expo Forums
ITMS-90683 : Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data.
Read more >itms-90683: missing purpose string in info.plist - You.com
ITMS-90683 : Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
https://stackoverflow.com/a/49439492
This seems to be how to do it. If you’re as inept with XCode as I am:
<yourapp>-Info.plist
, double-click on it.Archive your app and submit it to the App Store again, it should work as expected. 😃
This IMHO is an issue anyway, even though (as with many issues…) a new feature could address it.
It’s totally an XCode issue, and Apple documentation totally sucks (because apparently you’re supposed to watch their conferences to get the information…) ; nonetheless, in my mind, kivy-ios was really meant to abstract over these nitty gritty details nobody cares about. So, one way or the other, we need to make the abstraction less leaky ; either that or we can just give up and merely document the issue.
FWIW, your arguments against including this in the template are generally unwarranted ; Apple themselves say (paraphrasing) “it is a valid reason to state some technologies/libraries you’re using require the camera even if your application doesn’t use it”.
I’m in favor of including a “generic purpose” - I’ve been maintaining a few apps on the App Store for a while, and I can tell you Apple will be careful enough to check that you’re actually not using the camera if you say you aren’t. As to getting all Kivy apps banned from the App Store, I honestly doubt it. As I said, it’s a valid reason (according to them) to say “this technology I’m using supports the camera but I don’t use it”.
EDIT: To be clear, what I’m saying here is that we should have a documented, configurable default ; and that default would say something along the lines of “kivy-ios toolchain includes the camera although I don’t use it”. People who use the camera would have to change it, but the rest of the world (vast majority of users) will not know/care about the camera-specific issues.