mapbox-navigation-ios icon indicating copy to clipboard operation
mapbox-navigation-ios copied to clipboard

[Bug]: Invalid inclusion of Privacy Manifest resource in Cocoapods

Open fabiog27 opened this issue 8 months ago • 2 comments

Mapbox Navigation SDK version

2.18.0

Steps to reproduce

  • Create React Native app with v0.74.1 (https://reactnative.dev/docs/getting-started-without-a-framework)
  • Include dependency https://github.com/jls-digital/react-native-mapbox-navigation: yarn add @jls-digital/react-native-mapbox-navigation@https://github.com/jls-digital/react-native-mapbox-navigation.git#commit=972baf38e229669eadc1ab13496879372fe4fc79
  • Create main app privacy manifest in xcode (if not created by react native)
  • Attempt to build for iOS

I am not sure if this applies to purely native apps including Mapbox Navigation via Cocoapods as well. React native aggregates privacy manifests from all dependencies, but I think it might happen without React Native as well, as the issue stems from the Target Support Files created by Cocoapods itself.

Environment:

  • xcode 15.3
  • cocoapods 1.14.3

Expected behavior

The app builds and runs successfully.

Actual behavior

Xcode throws an error Multiple commands produce PrivacyInfo.xcprivacy

The fix is pretty simple, you just have to switch s.resources to s.resource_bundle in MapboxCoreNavigation.podspec (it's already correct in MapboxNavigation.podspec). I have implemented it here, but I haven't checked for any side effects:

https://github.com/jls-digital/mapbox-navigation-ios/commit/72130cbb5e60c51dc0f7e1f8e66c59cdfd34b7f4#diff-e08c0c41e5868fe7d9db0246d9ec0429ad1193e57ec79be8236a54f638ddfb3eL40

Note that the inclusion of MBXInfo.plist is only due to us having to use the dependency statically from our fork. I would submit a PR, but I'm not sure how, because I've based my branch on our fork on the v2.18.0 tag and not main.

Is this a one-time issue or a repeatable issue?

repeatable

fabiog27 avatar Jun 06 '24 06:06 fabiog27