cloudinary / cloudinary_ios

Cloudinary iOS SDK
MIT License
165 stars 106 forks source link

Bundle Privacy Manifest in SPM and CocoaPod distributions #431

Closed liamnichols closed 6 months ago

liamnichols commented 6 months ago

Brief Summary of Changes

Ensure that the PrivacyInfo.xcprivacy manifest is actually bundled as a resource in CocoaPod and SPM distributions so that it can be included in a host app and picked up by App Store Connect.

What does this PR address?

Are tests included?

Reviewer, please note:

We primarily use CocoaPods, and I assume that the expectation was that the privacy manifest would be picked up automatically because it was in the Cloudinary/Classes/ directory, but this is not the case:

Screenshot 2024-03-14 at 08 00 26

The same goes for SPM (but no error is emitted) because it will only look for .swift sources in the target's path.

To solve this for CocoaPods, we have to make sure that source_files is only including .swift (and header?) files within Cloudinary/Classes and to solve this for Swift Package Manager, we have to add a copy resource rule for the manifest file.

Additionally for SPM, because Resource bundles were only added to Swift 5.3, I had to add a Package@swift-5.3.swift manifest because the main one sets the swift-tools-version to 5.1 still.

We could also just bump the swift-tools-version to 5.3 (Xcode 12), but I wasn't sure if you support Swift 5.1 (Xcode 11) for enterprise clients who might still be using Xcode 11 for non-app store apps?

After this change:

CocoaPods Swift Package Manager
CocoaPods SPM

Checklist:

adimiz1 commented 6 months ago

Hi @liamnichols thank you very much for the PR, we'll go over it ASAP

liamnichols commented 5 months ago

Thanks for merging this @adimiz1! Please could you give me a rough timeline on when this will be included in a release? We need it to silence the annoying warnings coming from App Store Connect but I would rather avoid having to point to main if a release will come soon 🙇

adimiz1 commented 5 months ago

Hi @liamnichols , sorry for the late response, it'll be released today