Iterable / swift-sdk

Iterable's iOS SDK. Receive and track pushes to Iterable from your iOS app.
https://iterable.com/
MIT License
86 stars 68 forks source link

Add Privacy Manifest #750

Open hkellaway opened 3 months ago

hkellaway commented 3 months ago

Hello -

I'm wondering what plans there are to add a Privacy Manifest? Thanks!

https://developer.apple.com/support/third-party-SDK-requirements/ https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

djs-code commented 3 months ago

+1. The App Store will be enforcing this more strictly starting on May 1st.

Ayyanchira commented 3 months ago

Thank you for your patience @hkellaway and @djs-code . Next release will have privacy manifest included :)

evantk91 commented 3 months ago

6.5.1 has been released with the privacy manifest

djs-code commented 3 months ago

@Ayyanchira @evantk91 I don't believe this is truly complete yet; if my understanding is correct, you will also need to add the following to the IterableSDK target in your Package.swift:

resources: [.process("PrivacyInfo.xcprivacy")]

Ayyanchira commented 3 months ago

Thanks for informing this @djs-code. Somehow adding resources: [.process("PrivacyInfo.xcprivacy")] in SDK's Package.swift still isn't including SDK's Privacy Labels in generated Privacy report. Will update here once I find a solution.

einsteinx2 commented 2 months ago

Using the latest 6.5.2 release I can confirm that the privacy manifest is now included when using SPM, but not with Cocoapods.

I think you need to update this line to also match the privacy manifest file:

s.resource_bundles = {'Resources' => 'swift-sdk/Resources/**/*.{storyboard,xib,xcassets,xcdatamodeld}' }

Probably something like the following since you've already moved it to your resources folder according to your release notes:

s.resource_bundles = {'Resources' => 'swift-sdk/Resources/**/*.{storyboard,xib,xcassets,xcdatamodeld,xcprivacy}' }

Or alternatively you could probably specify a second dedicated resource bundle in that dictionary called something like 'Resources-Privacy' and specifically include the manifest file. You can confirm by adding it to a test project with Cocoapods and generating a privacy report after archiving.