-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[google_sign_in_ios] Upgrade GoogleSignIn iOS SDK to 7.1 #6404
Conversation
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact "@test-exemption-reviewer" in the #hackers channel in Chat (don't just cc them here, they won't see it! Use Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
43b9709
to
f0ac029
Compare
|
The repo_checks look happy. I can add a NEXT if you want though. |
Nope, no need, I thought that something more significant had changed. If users don't need to know about it, no need to put it in a changelog! |
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.
This LGTM, but @vashworth or @stuartmorgan's reviews are more valuable than mine for sure :)
flutterCommand, | ||
<String>['precache', '--ios'], | ||
<String>['precache', '--${precacheIos ? 'ios' : 'macos'}'], |
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.
Although it doesn't seem that any uses of "fetch-deps" does this currently, it is possible for both getBoolArg(platformIOS)
and getBoolArg(platformMacOS)
to be true. Perhaps would be better to make it a function and pass in the platform for each?
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.
IIRC the tool will accept multiple platforms, in which case this can be:
<String>[
'precache',
if (precacheIOS)
'--ios',
if (precacheMacOS)
'--macos',
],
@@ -79,22 +80,22 @@ class FetchDepsCommand extends PackageLoopingCommand { | |||
// `pod install` requires having the platform artifacts precached. See | |||
// https://github.com/flutter/flutter/blob/fb7a763c640d247d090cbb373e4b3a0459ac171b/packages/flutter_tools/bin/podhelper.rb#L47 | |||
// https://github.com/flutter/flutter/blob/fb7a763c640d247d090cbb373e4b3a0459ac171b/packages/flutter_tools/bin/podhelper.rb#L130 | |||
if (getBoolArg(platformIOS)) { | |||
final int exitCode = await processRunner.runAndStream( | |||
final bool precacheIos = getBoolArg(platformIOS); |
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.
flutterCommand, | ||
<String>['precache', '--ios'], | ||
<String>['precache', '--${precacheIos ? 'ios' : 'macos'}'], |
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.
IIRC the tool will accept multiple platforms, in which case this can be:
<String>[
'precache',
if (precacheIOS)
'--ios',
if (precacheMacOS)
'--macos',
],
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.
LGTM
And it looks like the module issue was fixed upstream (and published?), so hopefully not many people will hit that.
auto label is removed for flutter/packages/6404, due to - The status or check suite Mac_arm64 macos_platform_tests master - packages has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Neither published yet... |
Hm, so are we okay with everyone with Obj-C apps being broken and having an error message that doesn't give them the right solution? It seems like maybe we should wait a little longer to see if they get published soon. |
AppAuth published its fix https://github.com/openid/AppAuth-iOS/releases/tag/1.7.4 |
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.
Re-runs passed!
|
||
# AppAuth is a transitive dependency of GoogleSignIn. | ||
# Depend on 1.7.4 or higher, which defines modules. | ||
s.dependency 'AppAuth', '~> 1.7.4' |
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.
Should we do this for GTMSessionFetcher too?
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.
Done.
|
||
# AppAuth is a transitive dependency of GoogleSignIn. | ||
# Depend on 1.7.4 or higher, which defines modules. | ||
s.dependency 'AppAuth', '~> 1.7.4' |
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.
I think you just want >= 1.7.4
here. This would, as I understand it, block updates to 1.8.x
.
(We shouldn't need to set our own upper bound because we aren't directly calling anything on it, so can't be directly broken by API changes.)
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.
Thanks for catching. Done.
# Depend on versions which defines modules. | ||
s.dependency 'AppAuth', '>= 1.7.4' | ||
s.dependency 'GTMSessionFetcher', '>= 3.4.0' | ||
s.dependency 'GoogleSignIn', '>= 7.1' |
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.
Isn't ~> 7.1
right for this one? We don't want to get 8.x without opting in because we do call its APIs directly.
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.
My brain refuses to retain what ~>
does. Done.
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.
For the future: we could consider just never using it, since we all have to look it up every time, and manually do the ranges ourselves. But hopefully in the medium term we won't need podspecs at all.
@@ -2,7 +2,7 @@ name: google_sign_in_ios | |||
description: iOS implementation of the google_sign_in plugin. | |||
repository: https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_ios | |||
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 | |||
version: 5.7.5 | |||
version: 5.7.6 |
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.
Hm, do you think this should be a minor bump instead @stuartmorgan?
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.
Since this one should be a no-op for clients, bugfix seems fine. I don't feel strongly between the two here.
|
||
# AppAuth is a transitive dependency of GoogleSignIn. | ||
# Depend on 1.7.4 or higher, which defines modules. | ||
s.dependency 'AppAuth', '~> 1.7.4' |
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.
Done.
|
||
# AppAuth is a transitive dependency of GoogleSignIn. | ||
# Depend on 1.7.4 or higher, which defines modules. | ||
s.dependency 'AppAuth', '~> 1.7.4' |
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.
Thanks for catching. Done.
"${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuthCore_Privacy.bundle", | ||
"${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth_Privacy.bundle", | ||
"${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle", | ||
"${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Full_Privacy.bundle", |
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.
Woo!
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.
LGTM
Merged to pull in the fix for my OOB maps breakage. |
🟢 🎉 |
flutter/packages@d39830e...0e3809d 2024-04-18 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.0 to 3.25.1 (flutter/packages#6562) 2024-04-18 stuartmorgan@google.com [ci] Add Linux desktop support to Linux custom_package_tests (flutter/packages#6551) 2024-04-17 katelovett@google.com [two_dimensional_scrollables] Refactor Spans for common use (flutter/packages#6550) 2024-04-17 reidbaker@google.com [in_app_purchase] Add api to expose country code (flutter/packages#6540) 2024-04-17 stuartmorgan@google.com [camera] Initial iOS Pigeon conversion (flutter/packages#6553) 2024-04-17 reidbaker@google.com [in_app_purchase] Add countryCode implementation to android and storekit (flutter/packages#6556) 2024-04-17 magder@google.com [google_sign_in_ios] Upgrade GoogleSignIn iOS SDK to 7.1 (flutter/packages#6404) 2024-04-17 reidbaker@google.com [in_app_purchase_platform_interface] Adds countryCode API (flutter/packages#6548) 2024-04-17 stuartmorgan@google.com [google_maps_flutter] Update app-facing package iOS requirements (flutter/packages#6552) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/packages@d39830e...0e3809d 2024-04-18 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.0 to 3.25.1 (flutter/packages#6562) 2024-04-18 stuartmorgan@google.com [ci] Add Linux desktop support to Linux custom_package_tests (flutter/packages#6551) 2024-04-17 katelovett@google.com [two_dimensional_scrollables] Refactor Spans for common use (flutter/packages#6550) 2024-04-17 reidbaker@google.com [in_app_purchase] Add api to expose country code (flutter/packages#6540) 2024-04-17 stuartmorgan@google.com [camera] Initial iOS Pigeon conversion (flutter/packages#6553) 2024-04-17 reidbaker@google.com [in_app_purchase] Add countryCode implementation to android and storekit (flutter/packages#6556) 2024-04-17 magder@google.com [google_sign_in_ios] Upgrade GoogleSignIn iOS SDK to 7.1 (flutter/packages#6404) 2024-04-17 reidbaker@google.com [in_app_purchase_platform_interface] Adds countryCode API (flutter/packages#6548) 2024-04-17 stuartmorgan@google.com [google_maps_flutter] Update app-facing package iOS requirements (flutter/packages#6552) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
@jmagman Can we solve this problem? |
@ynmain Please use the issue tracker to submit issues (as indicated in our README), not comments on closed PRs. The issue you are having is not with |
1. Update GoogleSignIn iOS SDK dependency to [7.1](https://github.com/google/GoogleSignIn-iOS/releases/tag/7.1.0), which supports privacy manifests. 1. Update "fetch deps step" to run `pod repo update` every time to avoid missing spec failure. Also added a fetch deps step to the all_packages builds, since those could also use a `pod repo update` but I didn't want to add more logic to those bash scripts. ``` [!] CocoaPods could not find compatible versions for pod "GoogleSignIn": In Podfile: google_sign_in_ios (from `Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin`) was resolved to 0.0.1, which depends on GoogleSignIn (~> 7.1) None of your spec sources contain a spec satisfying the dependency: `GoogleSignIn (~> 7.1)`. ``` https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752192509749702705/+/u/Run_package_tests/download_Dart_and_iOS_deps/stdout 3. Looks like the new versions of [`GTMSessionFetcher`](https://github.com/CocoaPods/Specs/blob/master/Specs/c/e/3/GTMSessionFetcher/3.3.2/GTMSessionFetcher.podspec.json) and [`AppAuth`](https://github.com/CocoaPods/Specs/blob/master/Specs/b/b/9/AppAuth/1.7.3/AppAuth.podspec.json) don't define modules, so there's an error building it statically: ``` [!] The following Swift pods cannot yet be integrated as static libraries: The Swift pod `GTMAppAuth` depends upon `GTMSessionFetcher` and `AppAuth`, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. ``` I filed google/gtm-session-fetcher#384 and openid/AppAuth-iOS#844. In the meantime, I updated the example apps to `use_frameworks!`, which would be on for Flutter Swift apps, but not Objective-C ones. We could add something to the tool to detect this case, and suggest `use_frameworks!` be added? 4. Even though google_sign_in_ios does not contain Swift files, for some reason, there is a "pod lib lint" warning complaining `swift_version` isn't set. This seems related to `GTMAppAuth` dependency constraint that went from an Objective-C-only to Swift pod. So I set `swift_version` since it's harmless. ``` - WARN | swift: The validator used Swift `4.0` by default because no Swift version was specified. To specify a Swift version during validation, add the `swift_versions` attribute in your podspec. Note that usage of a `.swift-version` file is now deprecated. ``` https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752100979634945505/+/u/Run_package_tests/validate_iOS_and_macOS_podspecs/stdout ## Issues * Fixes flutter/flutter#145777 * Fixes flutter/flutter#145866 * See also flutter/flutter#137140
1. Update GoogleSignIn iOS SDK dependency to [7.1](https://github.com/google/GoogleSignIn-iOS/releases/tag/7.1.0), which supports privacy manifests. 1. Update "fetch deps step" to run `pod repo update` every time to avoid missing spec failure. Also added a fetch deps step to the all_packages builds, since those could also use a `pod repo update` but I didn't want to add more logic to those bash scripts. ``` [!] CocoaPods could not find compatible versions for pod "GoogleSignIn": In Podfile: google_sign_in_ios (from `Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin`) was resolved to 0.0.1, which depends on GoogleSignIn (~> 7.1) None of your spec sources contain a spec satisfying the dependency: `GoogleSignIn (~> 7.1)`. ``` https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752192509749702705/+/u/Run_package_tests/download_Dart_and_iOS_deps/stdout 3. Looks like the new versions of [`GTMSessionFetcher`](https://github.com/CocoaPods/Specs/blob/master/Specs/c/e/3/GTMSessionFetcher/3.3.2/GTMSessionFetcher.podspec.json) and [`AppAuth`](https://github.com/CocoaPods/Specs/blob/master/Specs/b/b/9/AppAuth/1.7.3/AppAuth.podspec.json) don't define modules, so there's an error building it statically: ``` [!] The following Swift pods cannot yet be integrated as static libraries: The Swift pod `GTMAppAuth` depends upon `GTMSessionFetcher` and `AppAuth`, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. ``` I filed google/gtm-session-fetcher#384 and openid/AppAuth-iOS#844. In the meantime, I updated the example apps to `use_frameworks!`, which would be on for Flutter Swift apps, but not Objective-C ones. We could add something to the tool to detect this case, and suggest `use_frameworks!` be added? 4. Even though google_sign_in_ios does not contain Swift files, for some reason, there is a "pod lib lint" warning complaining `swift_version` isn't set. This seems related to `GTMAppAuth` dependency constraint that went from an Objective-C-only to Swift pod. So I set `swift_version` since it's harmless. ``` - WARN | swift: The validator used Swift `4.0` by default because no Swift version was specified. To specify a Swift version during validation, add the `swift_versions` attribute in your podspec. Note that usage of a `.swift-version` file is now deprecated. ``` https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752100979634945505/+/u/Run_package_tests/validate_iOS_and_macOS_podspecs/stdout ## Issues * Fixes flutter/flutter#145777 * Fixes flutter/flutter#145866 * See also flutter/flutter#137140
pod repo update
every time to avoid missing spec failure. Also added a fetch deps step to the all_packages builds, since those could also use apod repo update
but I didn't want to add more logic to those bash scripts.https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752192509749702705/+/u/Run_package_tests/download_Dart_and_iOS_deps/stdout
GTMSessionFetcher
andAppAuth
don't define modules, so there's an error building it statically:I filed google/gtm-session-fetcher#384 and openid/AppAuth-iOS#844.
In the meantime, I updated the example apps to
use_frameworks!
, which would be on for Flutter Swift apps, but not Objective-C ones. We could add something to the tool to detect this case, and suggestuse_frameworks!
be added?swift_version
isn't set. This seems related toGTMAppAuth
dependency constraint that went from an Objective-C-only to Swift pod. So I setswift_version
since it's harmless.https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8752100979634945505/+/u/Run_package_tests/validate_iOS_and_macOS_podspecs/stdout
Issues
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.