-
Notifications
You must be signed in to change notification settings - Fork 37
feat: migration to SPM only and iOS SDK update to 11.0.0 #637
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
base: main
Are you sure you want to change the base?
Changes from all commits
abd3d0a
da03f72
aa437e7
5216d7e
7e1aff6
840565b
fd485c2
ac65e57
accdfda
8dc0c3e
321bd86
54d67ff
dceb342
9fcd6e8
22d9425
3111a39
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -4,11 +4,42 @@ This document covers breaking changes and migration steps between major versions | |||||
|
|
||||||
| ## Table of Contents | ||||||
|
|
||||||
| - [Migrating from 0.17.x to 0.18.x](#migrating-from-017x-to-018x) | ||||||
| - [Migrating from 0.16.x to 0.17.x](#migrating-from-016x-to-017x) | ||||||
| - [Migrating from 0.13.x to 0.14.x](#migrating-from-013x-to-014x) | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## Migrating from 0.17.x to 0.18.x | ||||||
|
|
||||||
| Version 0.18.0 resolves the iOS Google Navigation SDK through Swift Package Manager and upgrades it to `11.0.0`. | ||||||
|
|
||||||
| ### Summary of Breaking Changes | ||||||
|
|
||||||
| | Category | Change | | ||||||
| | ----------- | ------------------------------------------------------------------------------------- | | ||||||
| | Native SDKs | iOS Navigation SDK upgraded to `11.0.0` and resolved through Swift Package Manager | | ||||||
| | iOS display | `showTrafficLights` and `showStopSigns` no longer affect iOS navigation views | | ||||||
| | iOS maps | `MapType.TERRAIN` is unavailable during active navigation on iOS | | ||||||
|
|
||||||
| ### What changed | ||||||
|
|
||||||
| Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. React Native `0.87.0+` is required. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
removed mention about RN 0.87.0+ as it is already mandatory for version 0.17.0 |
||||||
|
|
||||||
| Navigation SDK 11 always displays traffic lights and stop signs during navigation. The deprecated `showTrafficLights` and `showStopSigns` display options have no effect on iOS, but continue to apply on Android. Terrain map type is no longer available during active navigation on iOS; `MapType.TERRAIN` remains available for non-navigation maps. Add an `NSMotionUsageDescription` entry to your app's `Info.plist` to prevent future motion sensor-related crashes. | ||||||
|
|
||||||
| ### Reinstall iOS pods | ||||||
|
|
||||||
| Reinstall pods after upgrading: | ||||||
|
|
||||||
| ```bash | ||||||
| cd ios && pod install | ||||||
| ``` | ||||||
|
|
||||||
| ### Release notes | ||||||
|
|
||||||
| For native SDK changes introduced upstream, review the [iOS Navigation SDK 11.0.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes). | ||||||
|
|
||||||
| ## Migrating from 0.16.x to 0.17.x | ||||||
|
|
||||||
| Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the minimum Android build toolchain requirements. | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -126,6 +126,21 @@ This package requires React Native's new architecture. Make sure new architectur | |
| ENV['RCT_NEW_ARCH_ENABLED'] = '1' | ||
| ``` | ||
|
|
||
| #### Swift Package Manager dependency | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think we need to mention about this in README.md as there is no user action here. RN platform handles SPM for this package automatically. |
||
|
|
||
| Google Navigation is resolved through Swift Package Manager when you run `pod install`; it is not installed from CocoaPods. This requires React Native 0.87 or later. | ||
|
|
||
| CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. | ||
|
|
||
| #### Motion sensor usage description | ||
|
|
||
| Google recommends adding an `NSMotionUsageDescription` entry to your app's `Info.plist` to ensure compatibility with future motion sensor-related functionality in the underlying Navigation SDK for iOS. | ||
|
|
||
| ```xml | ||
| <key>NSMotionUsageDescription</key> | ||
| <string>Used to improve navigation features.</string> | ||
| ``` | ||
|
|
||
| #### Set Google Maps API Key | ||
|
|
||
| To set up, specify your API key in the application delegate `ios/Runner/AppDelegate.m`: | ||
|
|
@@ -301,8 +316,6 @@ try { | |
|
|
||
| const displayOptions: DisplayOptions = { | ||
| showDestinationMarkers: true, | ||
| showStopSigns: true, | ||
| showTrafficLights: true, | ||
| }; | ||
|
|
||
| await navigationController.setDestinations([waypoint], { routingOptions, displayOptions }); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,120 @@ | ||
| GEM | ||
| remote: https://rubygems.org/ | ||
| specs: | ||
| CFPropertyList (3.0.7) | ||
| base64 | ||
| nkf | ||
| rexml | ||
| activesupport (6.1.7.10) | ||
| concurrent-ruby (~> 1.0, >= 1.0.2) | ||
| i18n (>= 1.6, < 2) | ||
| minitest (>= 5.1) | ||
| tzinfo (~> 2.0) | ||
| zeitwerk (~> 2.3) | ||
| addressable (2.8.7) | ||
| public_suffix (>= 2.0.2, < 7.0) | ||
| algoliasearch (1.27.5) | ||
| httpclient (~> 2.8, >= 2.8.3) | ||
| json (>= 1.5.1) | ||
| atomos (0.1.3) | ||
| base64 (0.3.0) | ||
| benchmark (0.4.1) | ||
| bigdecimal (3.2.2) | ||
| claide (1.1.0) | ||
| cocoapods (1.15.2) | ||
| addressable (~> 2.8) | ||
| claide (>= 1.0.2, < 2.0) | ||
| cocoapods-core (= 1.15.2) | ||
| cocoapods-deintegrate (>= 1.0.3, < 2.0) | ||
| cocoapods-downloader (>= 2.1, < 3.0) | ||
| cocoapods-plugins (>= 1.0.0, < 2.0) | ||
| cocoapods-search (>= 1.0.0, < 2.0) | ||
| cocoapods-trunk (>= 1.6.0, < 2.0) | ||
| cocoapods-try (>= 1.1.0, < 2.0) | ||
| colored2 (~> 3.1) | ||
| escape (~> 0.0.4) | ||
| fourflusher (>= 2.3.0, < 3.0) | ||
| gh_inspector (~> 1.0) | ||
| molinillo (~> 0.8.0) | ||
| nap (~> 1.0) | ||
| ruby-macho (>= 2.3.0, < 3.0) | ||
| xcodeproj (>= 1.23.0, < 2.0) | ||
| cocoapods-core (1.15.2) | ||
| activesupport (>= 5.0, < 8) | ||
| addressable (~> 2.8) | ||
| algoliasearch (~> 1.0) | ||
| concurrent-ruby (~> 1.1) | ||
| fuzzy_match (~> 2.0.4) | ||
| nap (~> 1.0) | ||
| netrc (~> 0.11) | ||
| public_suffix (~> 4.0) | ||
| typhoeus (~> 1.0) | ||
| cocoapods-deintegrate (1.0.5) | ||
| cocoapods-downloader (2.1) | ||
| cocoapods-plugins (1.0.0) | ||
| nap | ||
| cocoapods-search (1.0.1) | ||
| cocoapods-trunk (1.6.0) | ||
| nap (>= 0.8, < 2.0) | ||
| netrc (~> 0.11) | ||
| cocoapods-try (1.2.0) | ||
| colored2 (3.1.2) | ||
| concurrent-ruby (1.3.3) | ||
| drb (2.2.3) | ||
| escape (0.0.4) | ||
| ethon (0.15.0) | ||
| ffi (>= 1.15.0) | ||
| ffi (1.17.2) | ||
| fourflusher (2.3.1) | ||
| fuzzy_match (2.0.4) | ||
| gh_inspector (1.1.3) | ||
| httpclient (2.9.0) | ||
| mutex_m | ||
| i18n (1.14.7) | ||
| concurrent-ruby (~> 1.0) | ||
| json (2.7.6) | ||
| logger (1.7.0) | ||
| minitest (6.0.6) | ||
| drb (~> 2.0) | ||
| prism (~> 1.5) | ||
| molinillo (0.8.0) | ||
| mutex_m (0.3.0) | ||
| nanaimo (0.3.0) | ||
| nap (1.1.0) | ||
| netrc (0.11.0) | ||
| nkf (0.2.0) | ||
| prism (1.9.0) | ||
| public_suffix (4.0.7) | ||
| rexml (3.4.2) | ||
| ruby-macho (2.5.1) | ||
| typhoeus (1.5.0) | ||
| ethon (>= 0.9.0, < 0.16.0) | ||
| tzinfo (2.0.6) | ||
| concurrent-ruby (~> 1.0) | ||
| xcodeproj (1.25.1) | ||
| CFPropertyList (>= 2.3.3, < 4.0) | ||
| atomos (~> 0.1.3) | ||
| claide (>= 1.0.2, < 2.0) | ||
| colored2 (~> 3.1) | ||
| nanaimo (~> 0.3.0) | ||
| rexml (>= 3.3.6, < 4.0) | ||
| zeitwerk (2.6.18) | ||
|
|
||
| PLATFORMS | ||
| ruby | ||
|
|
||
| DEPENDENCIES | ||
| activesupport (>= 6.1.7.5, != 7.1.0) | ||
| benchmark | ||
| bigdecimal | ||
| cocoapods (>= 1.13, != 1.15.1, != 1.15.0) | ||
| concurrent-ruby (< 1.3.4) | ||
| logger | ||
| mutex_m | ||
| xcodeproj (< 1.26.0) | ||
|
|
||
| RUBY VERSION | ||
| ruby 3.2.2p53 | ||
|
|
||
| BUNDLED WITH | ||
| 2.4.10 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,11 +23,7 @@ setup_permissions([ | |
| 'Notifications', | ||
| ]) | ||
|
|
||
| linkage = ENV['USE_FRAMEWORKS'] | ||
| if linkage != nil | ||
| Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green | ||
| use_frameworks! :linkage => linkage.to_sym | ||
| end | ||
| use_frameworks! :linkage => :dynamic | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we do not read the USE_FRAMEWORKS env parameter anymore, we should not pass it in the ci.yml? |
||
|
|
||
| config = use_native_modules! | ||
|
|
||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using this USE_FRAMEWORKS env variable is removed from the podfile. Should we remove this from here as well.