From b0393a74863f1a2a7a263b16786ba6d08504440e Mon Sep 17 00:00:00 2001 From: Victor Gomez Date: Thu, 13 Aug 2026 13:27:19 -0600 Subject: [PATCH 1/3] [google_sign_in_ios] Create Swift Package Manager target for Swift implementation. --- .../google_sign_in_ios/CHANGELOG.md | 4 ++++ .../darwin/Tests/GoogleSignInTests.swift | 4 ++++ .../darwin/google_sign_in_ios.podspec | 16 +++++++++------- .../darwin/google_sign_in_ios/Package.swift | 15 ++++++++++++--- .../Sources/google_sign_in_ios/Placeholder.swift | 3 +++ .../FLTGoogleSignInPlugin.m | 0 .../WrapperProtocolImplementations.m | 0 .../google_sign_in_ios/FLTGoogleSignInPlugin.h | 0 .../FLTGoogleSignInPlugin_Test.h | 0 .../FSIGoogleSignInProtocols.h | 0 .../include/google_sign_in_ios/FSIViewProvider.h | 0 .../WrapperProtocolImplementations.h | 0 .../include/google_sign_in_ios/messages.g.h | 0 .../messages.g.m | 0 .../google_sign_in_ios/pigeons/messages.dart | 4 ++-- .../google_sign_in_ios/pubspec.yaml | 2 +- 16 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/FLTGoogleSignInPlugin.m (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/WrapperProtocolImplementations.m (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/FLTGoogleSignInPlugin.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/FSIGoogleSignInProtocols.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/FSIViewProvider.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/WrapperProtocolImplementations.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/include/google_sign_in_ios/messages.g.h (100%) rename packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/{google_sign_in_ios => google_sign_in_ios_objc}/messages.g.m (100%) diff --git a/packages/google_sign_in/google_sign_in_ios/CHANGELOG.md b/packages/google_sign_in/google_sign_in_ios/CHANGELOG.md index e65a2b3a0dc5..c2f3096fccdf 100644 --- a/packages/google_sign_in/google_sign_in_ios/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_ios/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.3.3 + +* Creates Swift Package Manager target for Swift implementation. + ## 6.3.2 * Updates pigeon dev_dependency to ^27.3.2 for analyzer 14 compatibility. diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/Tests/GoogleSignInTests.swift b/packages/google_sign_in/google_sign_in_ios/darwin/Tests/GoogleSignInTests.swift index a862a0ef5876..027ab4a50bfb 100644 --- a/packages/google_sign_in/google_sign_in_ios/darwin/Tests/GoogleSignInTests.swift +++ b/packages/google_sign_in/google_sign_in_ios/darwin/Tests/GoogleSignInTests.swift @@ -7,6 +7,10 @@ import Testing @testable import google_sign_in_ios +#if canImport(google_sign_in_ios_objc) + @testable import google_sign_in_ios_objc +#endif + #if os(OSX) import FlutterMacOS #else diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios.podspec b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios.podspec index 9adb77fbe6a5..0664dd087f1f 100644 --- a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios.podspec +++ b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios.podspec @@ -12,8 +12,15 @@ Enables Google Sign-In in Flutter apps. s.license = { :type => 'BSD', :file => '../LICENSE' } s.author = { 'Flutter Team' => 'flutter-dev@googlegroups.com' } s.source = { :http => 'https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_ios' } - s.source_files = 'google_sign_in_ios/Sources/google_sign_in_ios/**/*.{h,m}' - s.public_header_files = 'google_sign_in_ios/Sources/google_sign_in_ios/include/**/*.h' + # Combine google_sign_in_ios and google_sign_in_ios_objc sources into a single + # pod, unlike SwiftPM, where separate Swift and Objective-C targets are required. + s.source_files = 'google_sign_in_ios/Sources/google_sign_in_ios*/**/*.{h,m,swift}' + s.public_header_files = 'google_sign_in_ios/Sources/google_sign_in_ios_objc/include/**/*.h' + s.swift_version = '5.0' + s.xcconfig = { + 'LIBRARY_SEARCH_PATHS' => '$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift', + 'LD_RUNPATH_SEARCH_PATHS' => '/usr/lib/swift', + } # GTMSessionFetcher is a GoogleSignIn transitive dependency, added here as a # direct dependency to ensure a version which defines modules. @@ -26,10 +33,5 @@ Enables Google Sign-In in Flutter apps. s.osx.deployment_target = '10.15' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } - # google_sign_in_ios does not contain Swift files. For some reason, there - # is a "pod lib lint" warning unless swift_version is set. This seems related to - # GoogleSignIn depending a Swift pod (GTMAppAuth). - s.swift_version = '5.0' - s.resource_bundles = {'google_sign_in_ios_privacy' => ['google_sign_in_ios/Sources/google_sign_in_ios/Resources/PrivacyInfo.xcprivacy']} end diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift index 7b37176cecb5..f7c769a7225a 100644 --- a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift +++ b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift @@ -13,7 +13,9 @@ let package = Package( .macOS("10.15"), ], products: [ - .library(name: "google-sign-in-ios", targets: ["google_sign_in_ios"]) + .library( + name: "google-sign-in-ios", + targets: ["google_sign_in_ios", "google_sign_in_ios_objc"]) ], dependencies: [ .package( @@ -24,14 +26,21 @@ let package = Package( .target( name: "google_sign_in_ios", dependencies: [ - .product(name: "GoogleSignIn", package: "GoogleSignIn-iOS") + "google_sign_in_ios_objc" ], resources: [ .process("Resources") + ] + ), + .target( + name: "google_sign_in_ios_objc", + dependencies: [ + .product(name: "GoogleSignIn", package: "GoogleSignIn-iOS") ], + publicHeadersPath: "include", cSettings: [ .headerSearchPath("include/google_sign_in_ios") ] - ) + ), ] ) diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift new file mode 100644 index 000000000000..b8fa2a34b670 --- /dev/null +++ b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift @@ -0,0 +1,3 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/FLTGoogleSignInPlugin.m b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/FLTGoogleSignInPlugin.m similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/FLTGoogleSignInPlugin.m rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/FLTGoogleSignInPlugin.m diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/WrapperProtocolImplementations.m b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/WrapperProtocolImplementations.m similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/WrapperProtocolImplementations.m rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/WrapperProtocolImplementations.m diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FLTGoogleSignInPlugin.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FLTGoogleSignInPlugin.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FSIGoogleSignInProtocols.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FSIGoogleSignInProtocols.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FSIGoogleSignInProtocols.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FSIGoogleSignInProtocols.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FSIViewProvider.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FSIViewProvider.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FSIViewProvider.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/FSIViewProvider.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/WrapperProtocolImplementations.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/WrapperProtocolImplementations.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/WrapperProtocolImplementations.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/WrapperProtocolImplementations.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/messages.g.h b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/messages.g.h similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/messages.g.h rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/messages.g.h diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/messages.g.m b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/messages.g.m similarity index 100% rename from packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/messages.g.m rename to packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/messages.g.m diff --git a/packages/google_sign_in/google_sign_in_ios/pigeons/messages.dart b/packages/google_sign_in/google_sign_in_ios/pigeons/messages.dart index 7f636f6d7b55..39770692c23b 100644 --- a/packages/google_sign_in/google_sign_in_ios/pigeons/messages.dart +++ b/packages/google_sign_in/google_sign_in_ios/pigeons/messages.dart @@ -8,8 +8,8 @@ import 'package:pigeon/pigeon.dart'; PigeonOptions( dartOut: 'lib/src/messages.g.dart', objcHeaderOut: - 'darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/messages.g.h', - objcSourceOut: 'darwin/google_sign_in_ios/Sources/google_sign_in_ios/messages.g.m', + 'darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/include/google_sign_in_ios/messages.g.h', + objcSourceOut: 'darwin/google_sign_in_ios/Sources/google_sign_in_ios_objc/messages.g.m', objcOptions: ObjcOptions( prefix: 'FSI', headerIncludePath: './include/google_sign_in_ios/messages.g.h', diff --git a/packages/google_sign_in/google_sign_in_ios/pubspec.yaml b/packages/google_sign_in/google_sign_in_ios/pubspec.yaml index 2e0f55e641a4..a7bdb95e8055 100644 --- a/packages/google_sign_in/google_sign_in_ios/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in_ios/pubspec.yaml @@ -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: 6.3.2 +version: 6.3.3 environment: sdk: ^3.10.0 From 8f8ddee2a097c5cabe196103eb65cffb16019911 Mon Sep 17 00:00:00 2001 From: Victor Gomez Date: Fri, 14 Aug 2026 12:21:09 -0600 Subject: [PATCH 2/3] Add conditional import for google_sign_in_ios_objc in Placeholder.swift --- .../Sources/google_sign_in_ios/Placeholder.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift index b8fa2a34b670..57f91bf8925b 100644 --- a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift +++ b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Placeholder.swift @@ -1,3 +1,7 @@ // Copyright 2013 The Flutter Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + +#if canImport(google_sign_in_ios_objc) + @_exported import google_sign_in_ios_objc +#endif From b306c565826eef86af767640c08165bbfc21e068 Mon Sep 17 00:00:00 2001 From: Victor Gomez Date: Tue, 18 Aug 2026 10:24:49 -0600 Subject: [PATCH 3/3] Export only the Swift target from the google-sign-in-ios SPM product. The Obj-C target is still pulled in as a dependency of google_sign_in_ios, matching video_player_avfoundation and in_app_purchase_storekit. --- .../darwin/google_sign_in_ios/Package.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift index f7c769a7225a..260cf7912b22 100644 --- a/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift +++ b/packages/google_sign_in/google_sign_in_ios/darwin/google_sign_in_ios/Package.swift @@ -13,9 +13,7 @@ let package = Package( .macOS("10.15"), ], products: [ - .library( - name: "google-sign-in-ios", - targets: ["google_sign_in_ios", "google_sign_in_ios_objc"]) + .library(name: "google-sign-in-ios", targets: ["google_sign_in_ios"]) ], dependencies: [ .package(