Reputation: 2364
I just uploaded an update to my app and received the following response from Apple:
Although submission for TestFlight review was successful, you may want to correct the following issues in your next submission for TestFlight review. Once you've corrected the issues, upload a new binary to App Store Connect.
ITMS-91053: Missing API declaration - Your app’s code in the “Runner” file references one or more APIs that require reasons, including the following API categories:
NSPrivacyAccessedAPICategoryUserDefaults
. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.ITMS-91053: Missing API declaration - Your app’s code in the “Runner” file references one or more APIs that require reasons, including the following API categories:
NSPrivacyAccessedAPICategoryDiskSpace
. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.
I don't know much about the Apple environment outside of uploading my Flutter app via xcode. What do I need to do specifically? The links they provided didn't help.
My app uses Push notification via firebase, and this was set up with analytics. My app also imports data to the app via JSON API from my domain, and HTML data from another domain. The app also has web views (ring-fenced to only a handful of domains). The app also checks the connection state (has internet or not). There is no login or user area, and its a free app.
Everything is set up and runs correctly with Testflight.
Upvotes: 2
Views: 1785
Reputation: 460
Apple has changed some of its policy, so now they want you to have a Privacy Manifest file in the ios assets folder that will tell them how your app uses the platform apis. You are getting diskspace and user default warning because i think internally firebase use diskspace for peristence. So what you can do is update all the packages so that, package which uses platform apis will have the privacy file updated like in videoplayer,plus plugins,geolocator etc and what more you can do is to have you privacy manifest file added in the app with the diskspace and user default keys and their category.
You can get better idea if you check this thread: https://github.com/flutter/flutter/issues/131940
Or in worst case you can add the above keys with minimum level of permission and try to submit it, but this is not recommended by flutter team, so i will also not recommend that
Upvotes: 0