Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating mapbox-maps-ios to 10.17.0 - May 1st iOS Privacy Manifest issue #3447

Open
fractalscape13 opened this issue Apr 4, 2024 · 20 comments

Comments

@fractalscape13
Copy link

"May 1st is the deadline to have a proper privacy manifest on iOS to be able to release updates to apps which use this package, mapbox/mapbox-maps-ios#2145 details the issue and it seems like the fix was released as part of mapbox-maps-ios 10.17.0"

It looks like mapbox-maps-flutter is releasing an upgrade soon: mapbox/mapbox-maps-flutter#475

Will there be a similar release for rnmapbox?

@hexadecy
Copy link
Contributor

hexadecy commented Apr 5, 2024

It will only fix: ITMS-91056: Invalid privacy manifest

You can already use it:

ios/Podfile
$RNMapboxMapsVersion = '= 10.17.0'

To scan for the other ITMS: https://github.com/Wooder/ios_17_required_reason_api_scanner

@andreirat
Copy link

@hexadecy after adding the following in ios/Podfile, I still got an email from Apple with other issues. Am I missing something?

Podfile:

$RNMapboxMapsImpl = 'mapbox'
$RNMapboxMapsVersion = '= 10.17.0'

Email:

TMS-91053: Missing API declaration - Your app’s code in the “appName” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryDiskSpace. 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.

ITMS-91053: Missing API declaration - Your app’s code in the “appName” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategorySystemBootTime. 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.

@hexadecy
Copy link
Contributor

hexadecy commented Apr 25, 2024

@andreirat you need the PrivacyInfo.xcprivacy file.

It can be auto-created at the iOS Build step if you have a react-native version above these:
0.72.13
0.73.7
0.74.0-rc.9

For the DiskSpace, maybe you need to update this dep:
https://github.com/react-native-device-info/react-native-device-info/releases/tag/v10.13.2

@andreirat
Copy link

Thanks @hexadecy, I'll give it a try.

@fractalscape13
Copy link
Author

fractalscape13 commented Apr 29, 2024

I am using @rnmapbox/maps 10.1.19
My ios files are updated to 10.17.0, I am still getting:

ITMS-91056: Invalid privacy manifest - The PrivacyInfo.xcprivacy file from the following path is invalid: “Frameworks/MapboxCommon.framework/PrivacyInfo.xcprivacy”

Edit: tried submission with @rnmapbox/maps 10.1.20 and I got the same warning email about 91056

Edit: the PrivacyInfo files don't seem to be updated during build/install, so I manually updated my files with the code from 10.17.0 and so far I haven't received the warning email.

@RemiHin
Copy link

RemiHin commented Apr 30, 2024

Same issue here

@mattpetrie
Copy link

mattpetrie commented May 1, 2024

Also experiencing this issue.

In an Expo managed project, the Podfile is generated at build time, and it's not possible to safely modify it either, so the workaround of directly updating the Podfile will not work for these projects.

@hexadecy
Copy link
Contributor

hexadecy commented May 1, 2024

You must purge the ios folder when you update mapbox-maps-ios.

"scripts": {
  "purge:ios": "rm -rf ios/Pods ios/build ~/Library/Caches/CocoaPods ~/Library/Developer/Xcode/DerivedData && cd ios && bundle exec pod cache clean --all && cd ..",
}

@zegenerative
Copy link

zegenerative commented May 2, 2024

any updates about this for expo devs?

@vanGalilea
Copy link

It seems as this lib is using UserDefaults in RNMBXModule.swift:111.
This info might help someone by the creation of the PrivacyInfo.xcprivacy file.

Similar PR from a diff lib. for comparison.
Though the privacy manifest will probably different due to the nature/content of the lib.

@kuldip-simform
Copy link

Also experiencing this issue.

In an Expo managed project, the Podfile is generated at build time, and it's not possible to safely modify it either, so the workaround of directly updating the Podfile will not work for these projects.

@mattpetrie did you find solution to this?

I am getting invalid binary issue error for expo managed project. I have added version 10.1.20.
Screenshot 2024-05-03 at 6 01 06 PM

@mfazekas
Copy link
Contributor

mfazekas commented May 3, 2024

1.) Expo users can modify the version with config plugin setting, so no need to modify the Podfile for expo users.
https://rnmapbox.github.io/docs/install?v11-insructions=expo#using-v11
2.) 10.1.20 defaults to 10.17.0, so you can use that without config plugin changes as well

@kuldip-simform
Copy link

kuldip-simform commented May 3, 2024

Expo managed flow using version > 11 in app.confing.ts or app.json

@mattpetrie or anyone who is using expo managed flow. if you are using version>=11 for RNMapboxMapsVersion in app.config.ts or app.json then update that to 11.3.0.
even if your package.json says version 10.1.20 it will take version 11 for ios podfile. Issue of privacy manifest is resolved in version 11.3.0 for version 11.

'@rnmapbox/maps',
        {
            RNMapboxMapsImpl: 'mapbox',
            RNMapboxMapsDownloadToken: MAPBOX_API_KEY,
            RNMapboxMapsVersion: '11.3.0',
        },

That way it should solve this issue.
mapbox/mapbox-maps-ios#2145
https://github.com/mapbox/mapbox-maps-ios/releases/tag/v11.3.0

@mattpetrie
Copy link

Thank you @kuldip-simform! I can confirm that this does solve the issue in an Expo managed workflow project.

@Dat-Mobile
Copy link

Confirm that update to 10.17.0 fixed the warning

Remember to run purge:ios before yarn and pod install, thanks @hexadecy

"scripts": {
  "purge:ios": "rm -rf ios/Pods ios/build ~/Library/Caches/CocoaPods ~/Library/Developer/Xcode/DerivedData && cd ios && bundle exec pod cache clean --all && cd ..",
}

@Manikandan-saminathan
Copy link

Manikandan-saminathan commented May 4, 2024

Confirm that update to 10.17.0 fixed the warning

Remember to run purge:ios before yarn and pod install, thanks @hexadecy

"scripts": {
  "purge:ios": "rm -rf ios/Pods ios/build ~/Library/Caches/CocoaPods ~/Library/Developer/Xcode/DerivedData && cd ios && bundle exec pod cache clean --all && cd ..",
}

@Dat-Mobile

  • Is these steps for bare RN or Expo
  • Do we need to add the script in package.json every time we run the command before pod installation?
  • Do we need to update the package.json and pod files also .if yes, please share code snippet

Thanks in advance

@JackJBlundell
Copy link

I am using @rnmapbox/maps 10.1.19 My ios files are updated to 10.17.0, I am still getting:

ITMS-91056: Invalid privacy manifest - The PrivacyInfo.xcprivacy file from the following path is invalid: “Frameworks/MapboxCommon.framework/PrivacyInfo.xcprivacy”

Edit: tried submission with @rnmapbox/maps 10.1.20 and I got the same warning email about 91056

Edit: the PrivacyInfo files don't seem to be updated during build/install, so I manually updated my files with the code from 10.17.0 and so far I haven't received the warning email.

Can you explain how you did this?

@JackJBlundell
Copy link

For anybody using MapboxNavigation facing this, upgrade to 2.18!

MapboxNavigation", "~> 2.18"

@kuldip-simform
Copy link

Confirm that update to 10.17.0 fixed the warning
Remember to run purge:ios before yarn and pod install, thanks @hexadecy

"scripts": {
  "purge:ios": "rm -rf ios/Pods ios/build ~/Library/Caches/CocoaPods ~/Library/Developer/Xcode/DerivedData && cd ios && bundle exec pod cache clean --all && cd ..",
}

@Dat-Mobile

  • Is these steps for bare RN or Expo
  • Do we need to add the script in package.json every time we run the command before pod installation?
  • Do we need to update the package.json and pod files also .if yes, please share code snippet

Thanks in advance

@Manikandan-saminathan This steps looks like for RN workflow not Expo.

@Manikandan-saminathan
Copy link

I am using bare react-native application.
I upgraded my react-native and mapbox and tried to submit the app.The submission was accepted.

Used versions

react-native : 0.73.8
@rnmapbox/maps : 10.1.21

Note: I did not specify and static version in Pod file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests