Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
b3a55b0
Add shared code and sdk9
stuartmorgan-g Jan 16, 2026
e92cf65
f
stuartmorgan-g Jan 22, 2026
43cdd65
Add CONTRIBUTING docs
stuartmorgan-g Jan 22, 2026
21b23ed
Initial copy of sdk9->sdk10
stuartmorgan-g Jan 22, 2026
aeaecee
Renames, name change, dependency and min version updates
stuartmorgan-g Jan 22, 2026
6280461
Sync versions, update CHANGELOGs
stuartmorgan-g Jan 22, 2026
9e4f7db
Update SDK-specific READMEs
stuartmorgan-g Jan 22, 2026
157da4e
Add note to default implementation package's README
stuartmorgan-g Jan 22, 2026
5f5793c
Swift autoformat
stuartmorgan-g Jan 22, 2026
1a6aefc
Fix build-all
stuartmorgan-g Jan 22, 2026
0fa16a0
Fix license block
stuartmorgan-g Jan 22, 2026
1ff53a3
Add CODEOWNERs
stuartmorgan-g Jan 22, 2026
6570b75
Add the CocoaPods indicator build flag to the original package
stuartmorgan-g Jan 22, 2026
c5e5dbf
Raise min iOS version for the build-all app
stuartmorgan-g Jan 22, 2026
516ff22
Update repo tool unit test
stuartmorgan-g Jan 22, 2026
2141066
Update native unit test imports, and sync script to handle it
stuartmorgan-g Jan 22, 2026
63ed52c
Merge branch 'main' into maps-ios-spm-packages
stuartmorgan-g Feb 3, 2026
3dd739e
Add enforced checks for unshared files
stuartmorgan-g Feb 3, 2026
eaa2602
Merge branch 'main' into maps-ios-spm-packages
stuartmorgan-g Feb 4, 2026
b8f335e
Copy project changes for OCMock PR resolution
stuartmorgan-g Feb 4, 2026
2ddae90
Merge branch 'main' into maps-ios-spm-packages
stuartmorgan-g Feb 11, 2026
a8881fa
Sync changes from merge with master to other copies
stuartmorgan-g Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ packages/camera/camera_avfoundation/** @hellohuanlin @lou
packages/file_selector/file_selector_ios/** @okorohelijah @vashworth
packages/file_selector/file_selector_macos/** @okorohelijah @vashworth
packages/google_maps_flutter/google_maps_flutter_ios/** @vashworth @LongCatIsLooong
packages/google_maps_flutter/google_maps_flutter_ios_sdk9/** @vashworth @LongCatIsLooong
packages/google_maps_flutter/google_maps_flutter_ios_sdk10/** @vashworth @LongCatIsLooong
packages/google_sign_in/google_sign_in_ios/** @LongCatIsLooong @okorohelijah
packages/image_picker/image_picker_ios/** @okorohelijah @vashworth
packages/image_picker/image_picker_macos/** @okorohelijah @vashworth
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2.17.3

* Adds a README section about Swift Package Manager and the new
`google_maps_flutter_ios_sdk*` packages.

## 2.17.2

* Fixes a regression in custom marker icon handling.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Code sharing

This package shares most of its code with the other `google_maps_flutter_ios_*`
packages in this repository, so after changing any code files in this package
run:
`dart run tool/sync_shared_files.dart`

See [the shared directory README](../google_maps_flutter_ios_shared_code/README.md)
for more details.
15 changes: 14 additions & 1 deletion packages/google_maps_flutter/google_maps_flutter_ios/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# google\_maps\_flutter\_ios

The iOS implementation of [`google_maps_flutter`][1].
The default iOS implementation of [`google_maps_flutter`][1].

This package will use Google Maps SDK 8.4, 9.x, or 10.x, depending on your
application's minimum deployment target.

## Usage

Expand All @@ -11,6 +14,15 @@ your app when you do, so you do not need to add it to your `pubspec.yaml`.
However, if you `import` this package to use any of its APIs directly, you
should add it to your `pubspec.yaml` as usual.

## Swift Package Manager

This package cannot support Swift Package Manager, as Swift Package Manager
does not support automatically selecting the appropriate version of the
Google Maps SDK based on the minimum deployment target. For Swift Package
Manager compatibility, you should use the appropriate
[`google_maps_flutter_ios_sdk*` package][3] instead.


## Supported Heatmap Options

| Field | Supported |
Expand All @@ -23,3 +35,4 @@ should add it to your `pubspec.yaml` as usual.

[1]: https://pub.dev/packages/google_maps_flutter
[2]: https://flutter.dev/to/endorsed-federated-plugin
[3]: https://pub.dev/packages?q=implements-federated-plugin%3Agoogle_maps_flutter+platform%3Aios
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

@import google_maps_flutter_ios;
@import Flutter;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"
#import "TestAssetProvider.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import GoogleMapsUtils;
@import XCTest;

#import "PartiallyMockedMapView.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

@import XCTest;
@import GoogleMaps;
@import google_maps_flutter_ios;
@import GoogleMaps;
@import XCTest;

@interface StubTileReceiver : NSObject <GMSTileReceiver>
@end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"
#import "TestAssetProvider.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"
#import "TestAssetProvider.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

/// A GMSPolygon that ensures that property updates are made before the map is set.
@interface PropertyOrderValidatingPolygon : GMSPolygon {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"
#import "TestAssetProvider.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import google_maps_flutter_ios;
@import XCTest;
@import GoogleMaps;
@import XCTest;

#import "PartiallyMockedMapView.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Downloaded by pub (not CocoaPods).
s.xcconfig = {
'LIBRARY_SEARCH_PATHS' => '$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift',
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) /usr/lib/swift',
# To handle the difference in framework names between CocoaPods and Swift Package Manager in shared code.
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) FGM_USING_COCOAPODS=1',
}
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
s.resource_bundles = {'google_maps_flutter_ios_privacy' => ['google_maps_flutter_ios/Sources/google_maps_flutter_ios/Resources/PrivacyInfo.xcprivacy']}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

@import Flutter;
@import GoogleMaps;
@import GoogleMapsUtils;

#import "FGMMapEventDelegate.h"
#import "GoogleMapsUtilsTrampoline.h"
#import "google_maps_flutter_pigeon_messages.g.h"

NS_ASSUME_NONNULL_BEGIN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

@import Foundation;
@import GoogleMaps;
@import GoogleMapsUtils;

#import "GoogleMapsUtilsTrampoline.h"
#import "google_maps_flutter_pigeon_messages.g.h"

NS_ASSUME_NONNULL_BEGIN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
// found in the LICENSE file.

@import GoogleMaps;
@import GoogleMapsUtils;

#import "GoogleMapsUtilsTrampoline.h"
#import "google_maps_flutter_pigeon_messages.g.h"

NS_ASSUME_NONNULL_BEGIN
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// 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 Swift Package Manager is in use, Objective-C headers are available under the
// GoogleMapsUtilsObjC package. When using CocoaPods, the headers are provided by the
// GoogleMapsUtils package.
#ifdef FGM_USING_COCOAPODS
@import GoogleMapsUtils;
#else
@import GoogleMapsUtilsObjC;
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ import 'package:pigeon/pigeon.dart';
'ios/google_maps_flutter_ios/Sources/google_maps_flutter_ios/google_maps_flutter_pigeon_messages.g.m',
objcOptions: ObjcOptions(prefix: 'FGM'),
copyrightHeader: 'pigeons/copyright.txt',
// Use the base package name so that the generated code can be shared
// across the implementation copies.
dartPackageName: 'google_maps_flutter_ios',
),
)
/// Pigeon equivalent of MapType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: google_maps_flutter_ios
description: iOS implementation of the google_maps_flutter plugin.
repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_ios
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22
version: 2.17.2
version: 2.17.3

environment:
sdk: ^3.9.0
Expand All @@ -28,8 +28,10 @@ dev_dependencies:
flutter_test:
sdk: flutter
mockito: ^5.4.4
path: ^1.8.0
pigeon: ^26.1.0
plugin_platform_interface: ^2.1.7
process: ^5.0.5

topics:
- google-maps
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ import 'package:async/async.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:google_maps_flutter_ios/google_maps_flutter_ios.dart';
import 'package:google_maps_flutter_ios/src/messages.g.dart';
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';

import 'google_maps_flutter_ios_test.mocks.dart';
import 'package_specific_test_import.dart';

@GenerateNiceMocks(<MockSpec<Object>>[MockSpec<MapsApi>()])
void main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// 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.

// This is a separate file so that all test files that need to import the
// implementation package can do so without causing diffs among the shared code
// due to the package names being different. This way, all the test files can
// be shared exactly, and only this file needs to diverge between the packages.

export 'package:google_maps_flutter_ios/google_maps_flutter_ios.dart';
export 'package:google_maps_flutter_ios/src/messages.g.dart';
Loading
Loading