achorein / expo-share-intent

🚀 Simple share intent in an Expo Native Module
MIT License
119 stars 10 forks source link

[iOS] Privacy manifest before May 1, 2024 #49

Closed TomCorvus closed 2 months ago

TomCorvus commented 3 months ago

👋

Apple seems to need a privacy manifest to provide reasons why APIs are used in app. We got a mail about it before our latest app submission.

ITMS-91053: Missing API declaration - Your app’s code in the “PlugIns/ShareExtension.appex/ShareExtension” 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.

I know that there are some discussion about this, especially on Expo repo https://github.com/expo/expo/issues/27796

achorein commented 2 months ago

Seems that i have to add a PrivacyInfo.xcprivacy file in the extension. Not sure how for now.

But we are all waiting for the new expo.ios.privacyManifests config in SDK 50 😅

jingp-ofload commented 2 months ago

@achorein any updates? is there a PR or not really?

achorein commented 2 months ago

the privacy info will be handle in the next expo-config-plugins version (see CHANGELOG) => wait&see

file PrivacyInfo.xcprivacy will look like this :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
    </array>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyTracking</key>
    <false/>
</dict>
</plist>
Player-i commented 2 months ago

just received the email today, so has it been handled, I do not any idea on where should I create this privacy file and how to handle the API and information

achorein commented 2 months ago

the PrivacyInfo.xcprivacy has been added into the ios ShareExtension in v1.4.1 and v0.6.1. I have tested that the warning has been removed from the apple email in a production build. don't hesitate to reopen if needed.

TomCorvus commented 2 months ago

Thanks @achorein, I will try the new version and told you if this message disappears on my side.