[Bug]: submitting to ios app store results in ITMS-91053: Missing API declaration error
modosc opened this issue · comments
Detailed steps on how to reproduce the bug
- submit to the ios app store
- get an email like this:
ITMS-91053: Missing API declaration - Your app’s code in the “NNN” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategorySystemBootTime. 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 “NNN” 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 “NNN” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryFileTimestamp. 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.
What is the expected behaviour?
- there should be no errors (this is the first time i've seen these in 3+ years of publishing this app)
- juce should either:
a. stop using these apis, or
b. add projucer settings to configure these to quiet the errors
Operating systems
iOS
What versions of the operating systems?
any, this is specific to the app store
Architectures
ARM
Stacktrace
No response
Plug-in formats (if applicable)
No response
Plug-in host applications (DAWs) (if applicable)
No response
Testing on the develop
branch
I have not tested against the develop
branch
Code of Conduct
- I agree to follow the Code of Conduct
This is not a bug in JUCE, but rather a new requirement from Apple.
Great tutorial here, with Apple documentation:
This is not a bug in JUCE, but rather a new requirement from Apple.
Great tutorial here, with Apple documentation:
i understand how to make this work, but this happens because juce is using these APIs, not because an end user explicitly called them. the ios exporter should automatically generate the privacy manifest for the APIs it is using.
Also started to encounter this new requirement from Apple App Store Connect. I do feel like the JUCER IOS exporter should be making these arrangements as the warning is generated when using a very vanilla default PROJUCER setup
There needs to be a way to specify a PrivacyInfo.xcprivacy
from CMake too. Tried using PLIST_TO_MERGE
but that doesn't work.