braze-inc / braze-swift-sdk

Braze SDK for the Apple ecosystem, including: iOS, macOS, iPadOS, visionOS, tvOS
https://www.braze.com
Other
50 stars 19 forks source link

[Bug]: Privacy Manifest Issue #123

Closed RomainLambert-nuglif closed 5 months ago

RomainLambert-nuglif commented 5 months ago

Platform

iOS

Platform Version

All

Braze SDK Version

8.4.0

Xcode Version

All

Computer Processor

Apple (M1)

Repro Rate

100%

Steps To Reproduce

-

Expected Behavior

-

Actual Incorrect Behavior

-

Verbose Logs

No response

Additional Information

When we submit our application, we get an error from Apple saying:

ITMS-91064: Invalid tracking information - A PrivacyInfo.xcprivacy file contains invalid tracking information at the following path: “PrivacyInfo.xcprivacy”. NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn’t empty. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, keys and values in your app’s privacy manifest must be valid. For more details about privacy manifest files, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files.

We found that the PrivacyInfo in BrazeKitResources declares 10 tracking domains without declaring that tracking is enabled. Capture d’écran, le 2024-04-16 à 16 10 00

jerielng commented 5 months ago

Hey @RomainLambert-nuglif, thanks for raising this! We'll look into getting this updated and will let you know when we have a fix out.

MDemetrio commented 5 months ago

Hi! We are having the same problem, I can provide more info if needed. Waiting for an update.

jerielng commented 5 months ago

@RomainLambert-nuglif @MDemetrio We seem to be unable to reproduce this issue, but the error seems clear enough to warrant an update. To get a better idea of anything else that might appear, could you share how you are integrating the Braze SDK? Thanks!

RomainLambert-nuglif commented 5 months ago

Sure, we are using SPM.

MDemetrio commented 5 months ago

We are using Cocoapods, but we have a rather uncommon scenario where we are integrating Flutter into an existing native application. Our Flutter project depends on braze_plugin 8.2.0 which has the BrazeKit, BrazeLocation, BrazeUI 7.7.0 native dependencies. Our native project are still using Appboy legacy sdk, but as we are integrating the flutter project, its dependencies are also resolved by cocoapods. Our podfile have the use_frameworks! :linkage => :static declaration.

Looking at our dependencies, BrazeKit's PrivacyInfo is the only one which provides values in NSPrivacyTrackingDomains, exactly as pointed by @RomainLambert-nuglif .

hokstuff commented 5 months ago

Hi @RomainLambert-nuglif @MDemetrio,

We have released Swift SDK version 9.0.0 which removes the Privacy Tracking domains by default and requires clients who use Braze for tracking to manually insert the tracking domains. Feel free to comment back on this thread or contact support@braze.com if you still run into issues.

Thanks!

MDemetrio commented 5 months ago

Hi @hokstuff @jerielng,

Thanks for the update! Is there plans to also update braze flutter plugin's dependencies on swift sdks to 9.0.0?

hokstuff commented 5 months ago

Hi @MDemetrio,

We also have plans to port this change to the Flutter SDK as well. Thanks for raising this!

hokstuff commented 5 months ago

Hi @MDemetrio,

We have released an update to the Swift SDK bindings for the Flutter SDK here in version 10.0.0.

Thanks!