From 8693116b74094866f4427a0b372e299805d926a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Fri, 14 Aug 2026 16:35:05 +0800 Subject: [PATCH 1/9] chore!: update min flutter version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index f357c4de..888e19d9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,7 +20,7 @@ version: 0.10.0 environment: sdk: ^3.8.0 - flutter: ">=3.32.0" + flutter: ">=3.44.0" dependencies: collection: ^1.17.2 From 483c4a960a0453720eb60140543509fc9be5e859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Fri, 14 Aug 2026 20:33:32 +0800 Subject: [PATCH 2/9] chore: update patrol to 4.9.0 --- example/ios/Runner.xcodeproj/project.pbxproj | 62 +++----------------- example/pubspec.yaml | 2 +- 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index eb615e7a..cad835ac 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -19,6 +19,8 @@ 2A8C4AD32CC64AE500168311 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A8C4AD12CC64AE500168311 /* main.swift */; }; 2A8C4ADD2CC656D700168311 /* PhoneSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A8C4ADC2CC656D700168311 /* PhoneSceneDelegate.swift */; }; 2A8C4ADF2CC656E800168311 /* CarSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A8C4ADE2CC656E800168311 /* CarSceneDelegate.swift */; }; + 2ABD3D9A302F11D7002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; + 2ABD3D9C302F1237002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 2ABD3D9B302F1237002D0AD0 /* FlutterGeneratedPluginSwiftPackage */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 506F574D2AD8012C004AC70F /* RunnerUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 506F574C2AD8012C004AC70F /* RunnerUITests.m */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; @@ -128,6 +130,7 @@ buildActionMask = 2147483647; files = ( D3A3B5ED895816BDF2A70351 /* Pods_RunnerCarPlay.framework in Frameworks */, + 2ABD3D9A302F11D7002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,6 +139,7 @@ buildActionMask = 2147483647; files = ( C9CBB6602AD89694007C737E /* XCTest.framework in Frameworks */, + 2ABD3D9C302F1237002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, 9BAC8E60A263AA40A946AFCF /* Pods_Runner_RunnerUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -282,7 +286,6 @@ 2A8C4AC02CC646F200168311 /* Resources */, 2A8C4AC52CC646F200168311 /* Embed Frameworks */, 2A8C4AC62CC646F200168311 /* Thin Binary */, - BAAF78ADF4EC76C6CC3D931D /* [CP] Embed Pods Frameworks */, E1A54FD049B3FD079D5EAF0B /* [CP] Copy Pods Resources */, ); buildRules = ( @@ -327,7 +330,6 @@ 3AC0A81F7D36AA565D151485 /* [CP] Copy Pods Resources */, 506F57562AD80211004AC70F /* xcode_backend build */, 506F57572AD8022C004AC70F /* xcode_backend embed_and_thin */, - D1AE5F46BE0FA1B15C1D9A70 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -351,7 +353,6 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, FEC6DAC35845571C69A2CBCF /* [CP] Copy Pods Resources */, - 123001C9CDB283FA4E6405E7 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -453,23 +454,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 123001C9CDB283FA4E6405E7 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 2A2E8CE8E375732F73D2ABA1 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -607,40 +591,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - BAAF78ADF4EC76C6CC3D931D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D1AE5F46BE0FA1B15C1D9A70 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; D21A0255C7E8DBD9403FFD35 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1483,6 +1433,10 @@ /* End XCLocalSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 2ABD3D9B302F1237002D0AD0 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; productName = FlutterGeneratedPluginSwiftPackage; diff --git a/example/pubspec.yaml b/example/pubspec.yaml index d275950c..ddf969cc 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -37,7 +37,7 @@ dev_dependencies: integration_test: sdk: flutter meta: any - patrol: 4.6.1 + patrol: 4.9.0 pub_semver: ^2.1.4 test_api: any From 4a5ace4e0192dbdaafe72e35cd3b7c5818112441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 11:20:14 +0800 Subject: [PATCH 3/9] chore: update patrol_cli ci version --- .github/workflows/test-and-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-and-build.yaml b/.github/workflows/test-and-build.yaml index 3a26b159..a4aa3487 100644 --- a/.github/workflows/test-and-build.yaml +++ b/.github/workflows/test-and-build.yaml @@ -204,7 +204,7 @@ jobs: env: MAPS_API_KEY: ${{ secrets.ACTIONS_API_KEY }} PATROL_ANALYTICS_ENABLED: false - patrol_cli_version: "4.4.0" + patrol_cli_version: "4.7.0" working_directory: "example" steps: - name: Fail if workflow has no access to API key @@ -304,7 +304,7 @@ jobs: env: MAPS_API_KEY: ${{ secrets.ACTIONS_API_KEY }} PATROL_ANALYTICS_ENABLED: false - patrol_cli_version: "4.4.0" + patrol_cli_version: "4.7.0" working_directory: "example" IOS_VERSION: "26.5" steps: From 03ba6cd5f394f9c0b3db529dcd5faf99232fcad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 11:35:45 +0800 Subject: [PATCH 4/9] chore: remove permission handler pods --- example/ios/Runner.xcodeproj/project.pbxproj | 54 -------------------- 1 file changed, 54 deletions(-) diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index cad835ac..0f4dba92 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -286,7 +286,6 @@ 2A8C4AC02CC646F200168311 /* Resources */, 2A8C4AC52CC646F200168311 /* Embed Frameworks */, 2A8C4AC62CC646F200168311 /* Thin Binary */, - E1A54FD049B3FD079D5EAF0B /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -327,7 +326,6 @@ 506F57462AD8012C004AC70F /* Sources */, 506F57472AD8012C004AC70F /* Frameworks */, 506F57482AD8012C004AC70F /* Resources */, - 3AC0A81F7D36AA565D151485 /* [CP] Copy Pods Resources */, 506F57562AD80211004AC70F /* xcode_backend build */, 506F57572AD8022C004AC70F /* xcode_backend embed_and_thin */, ); @@ -352,7 +350,6 @@ 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - FEC6DAC35845571C69A2CBCF /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -507,23 +504,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; }; - 3AC0A81F7D36AA565D151485 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -635,23 +615,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - E1A54FD049B3FD079D5EAF0B /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; F18CEB3456BF1353653A4B93 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -674,23 +637,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - FEC6DAC35845571C69A2CBCF /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ From b94f5f7a0df7790b22327ba6e4046732553ce9cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 12:17:57 +0800 Subject: [PATCH 5/9] chore: finalize cocoapods integration removal --- example/ios/Flutter/Debug.xcconfig | 1 - example/ios/Flutter/Release.xcconfig | 1 - example/ios/Podfile | 112 ------------- example/ios/Runner.xcodeproj/project.pbxproj | 156 +----------------- .../contents.xcworkspacedata | 3 - ios/google_navigation_flutter.podspec | 26 --- 6 files changed, 4 insertions(+), 295 deletions(-) delete mode 100644 example/ios/Podfile delete mode 100644 ios/google_navigation_flutter.podspec diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig index ec97fc6f..592ceee8 100644 --- a/example/ios/Flutter/Debug.xcconfig +++ b/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig index c4855bfe..592ceee8 100644 --- a/example/ios/Flutter/Release.xcconfig +++ b/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Podfile b/example/ios/Podfile deleted file mode 100644 index 00eb4e50..00000000 --- a/example/ios/Podfile +++ /dev/null @@ -1,112 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '16.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end - target 'RunnerUITests' do - inherit! :complete - end -end - -target 'RunnerCarPlay' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - # Start of the permission_handler configuration - target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0' - - # You can enable the permissions needed here. For example to enable camera - # permission, just remove the `#` character in front so it looks like this: - # - # ## dart: PermissionGroup.camera - # 'PERMISSION_CAMERA=1' - # - # Preprocessor definitions can be found in: https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h - config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ - '$(inherited)', - - ## dart: PermissionGroup.calendar - # 'PERMISSION_EVENTS=1', - - ## dart: PermissionGroup.reminders - # 'PERMISSION_REMINDERS=1', - - ## dart: PermissionGroup.contacts - # 'PERMISSION_CONTACTS=1', - - ## dart: PermissionGroup.camera - # 'PERMISSION_CAMERA=1', - - ## dart: PermissionGroup.microphone - # 'PERMISSION_MICROPHONE=1', - - ## dart: PermissionGroup.speech - # 'PERMISSION_SPEECH_RECOGNIZER=1', - - ## dart: PermissionGroup.photos - # 'PERMISSION_PHOTOS=1', - - ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse] - 'PERMISSION_LOCATION=1', - - ## dart: PermissionGroup.notification - 'PERMISSION_NOTIFICATIONS=1', - - ## dart: PermissionGroup.mediaLibrary - # 'PERMISSION_MEDIA_LIBRARY=1', - - ## dart: PermissionGroup.sensors - # 'PERMISSION_SENSORS=1', - - ## dart: PermissionGroup.bluetooth - # 'PERMISSION_BLUETOOTH=1', - - ## dart: PermissionGroup.appTrackingTransparency - # 'PERMISSION_APP_TRACKING_TRANSPARENCY=1', - - ## dart: PermissionGroup.criticalAlerts - # 'PERMISSION_CRITICAL_ALERTS=1' - ] - end - # End of the permission_handler configuration - end -end diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 0f4dba92..b58167d8 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -25,14 +25,10 @@ 506F574D2AD8012C004AC70F /* RunnerUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 506F574C2AD8012C004AC70F /* RunnerUITests.m */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; - 9622089A4166ECC03B433965 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 054752A3C68A7FF5D59CC247 /* Pods_RunnerTests.framework */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 9BAC8E60A263AA40A946AFCF /* Pods_Runner_RunnerUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 981DBDBFB0E241F931B1E394 /* Pods_Runner_RunnerUITests.framework */; }; C9CBB6602AD89694007C737E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 506F57582AD8055D004AC70F /* XCTest.framework */; platformFilter = ios; }; - D3A3B5ED895816BDF2A70351 /* Pods_RunnerCarPlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B269F01B5CD151328AA7F8EB /* Pods_RunnerCarPlay.framework */; }; - EDFE577D2F64CF5D3712A4E9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64B801515FD75D36D58A86FE /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -76,10 +72,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 054752A3C68A7FF5D59CC247 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 255E7806BEC9998D7DACC806 /* Pods-Runner-RunnerUITests.debug-runnercarplay.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner-RunnerUITests.debug-runnercarplay.xcconfig"; path = "Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests.debug-runnercarplay.xcconfig"; sourceTree = ""; }; 2A18B9192AB17E8000172055 /* ConvertTests.swift */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.swift; path = ConvertTests.swift; sourceTree = ""; }; 2A8C4ACD2CC646F200168311 /* RunnerCarPlay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RunnerCarPlay.app; sourceTree = BUILT_PRODUCTS_DIR; }; 2A8C4ACF2CC64A8500168311 /* AppDelegateCarPlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegateCarPlay.swift; sourceTree = ""; }; @@ -88,22 +82,15 @@ 2A8C4ADB2CC653B800168311 /* RunnerCarPlay.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerCarPlay.entitlements; sourceTree = ""; }; 2A8C4ADC2CC656D700168311 /* PhoneSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneSceneDelegate.swift; sourceTree = ""; }; 2A8C4ADE2CC656E800168311 /* CarSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarSceneDelegate.swift; sourceTree = ""; }; - 2EAF2B705FB6C39F7F5344DA /* Pods-Runner-RunnerUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner-RunnerUITests.debug.xcconfig"; path = "Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests.debug.xcconfig"; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 35E5AF4EA16C287D705B54B3 /* Pods-RunnerTests.debug-runnercarplay.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-runnercarplay.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-runnercarplay.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3D757C86B3AF1A2A14538F73 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 506F574A2AD8012C004AC70F /* RunnerUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 506F574C2AD8012C004AC70F /* RunnerUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RunnerUITests.m; sourceTree = ""; }; 506F57582AD8055D004AC70F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 510AA50DE75FAE82EC03E97C /* Pods-Runner.debug-runnercarplay.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-runnercarplay.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-runnercarplay.xcconfig"; sourceTree = ""; }; - 64B801515FD75D36D58A86FE /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6E64AED9A2F8E776988CC405 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8A1462748CBFF934FB9BF87A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -111,17 +98,6 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 981DBDBFB0E241F931B1E394 /* Pods_Runner_RunnerUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner_RunnerUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9B707C730235859544DEFD11 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - A6E86B897576AE6CE04EDE41 /* Pods-Runner-RunnerUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner-RunnerUITests.release.xcconfig"; path = "Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests.release.xcconfig"; sourceTree = ""; }; - B269F01B5CD151328AA7F8EB /* Pods_RunnerCarPlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerCarPlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B35F8B4336F9E9672910B2A8 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - B7C92A3F95B466A95C6F8F82 /* Pods-RunnerCarPlay.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerCarPlay.profile.xcconfig"; path = "Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay.profile.xcconfig"; sourceTree = ""; }; - C8406E69EBE45F2EF856A867 /* Pods-RunnerCarPlay.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerCarPlay.debug.xcconfig"; path = "Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay.debug.xcconfig"; sourceTree = ""; }; - D775A5369CBCF55F2213A29D /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - DB233621323BD5B8EBB431E5 /* Pods-RunnerCarPlay.debug-runnercarplay.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerCarPlay.debug-runnercarplay.xcconfig"; path = "Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay.debug-runnercarplay.xcconfig"; sourceTree = ""; }; - F66F7193CD255958326CC224 /* Pods-RunnerCarPlay.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerCarPlay.release.xcconfig"; path = "Target Support Files/Pods-RunnerCarPlay/Pods-RunnerCarPlay.release.xcconfig"; sourceTree = ""; }; - FD0B54A81651AC7754FA8D08 /* Pods-Runner-RunnerUITests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner-RunnerUITests.profile.xcconfig"; path = "Target Support Files/Pods-Runner-RunnerUITests/Pods-Runner-RunnerUITests.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -129,7 +105,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D3A3B5ED895816BDF2A70351 /* Pods_RunnerCarPlay.framework in Frameworks */, 2ABD3D9A302F11D7002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -140,7 +115,6 @@ files = ( C9CBB6602AD89694007C737E /* XCTest.framework in Frameworks */, 2ABD3D9C302F1237002D0AD0 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 9BAC8E60A263AA40A946AFCF /* Pods_Runner_RunnerUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -149,7 +123,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - EDFE577D2F64CF5D3712A4E9 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -157,7 +130,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9622089A4166ECC03B433965 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -240,22 +212,6 @@ B4BA1BEAC2BEB85CFA23AC70 /* Pods */ = { isa = PBXGroup; children = ( - 6E64AED9A2F8E776988CC405 /* Pods-Runner.debug.xcconfig */, - 8A1462748CBFF934FB9BF87A /* Pods-Runner.release.xcconfig */, - 3D757C86B3AF1A2A14538F73 /* Pods-Runner.profile.xcconfig */, - B35F8B4336F9E9672910B2A8 /* Pods-RunnerTests.debug.xcconfig */, - D775A5369CBCF55F2213A29D /* Pods-RunnerTests.release.xcconfig */, - 9B707C730235859544DEFD11 /* Pods-RunnerTests.profile.xcconfig */, - 2EAF2B705FB6C39F7F5344DA /* Pods-Runner-RunnerUITests.debug.xcconfig */, - A6E86B897576AE6CE04EDE41 /* Pods-Runner-RunnerUITests.release.xcconfig */, - FD0B54A81651AC7754FA8D08 /* Pods-Runner-RunnerUITests.profile.xcconfig */, - C8406E69EBE45F2EF856A867 /* Pods-RunnerCarPlay.debug.xcconfig */, - F66F7193CD255958326CC224 /* Pods-RunnerCarPlay.release.xcconfig */, - B7C92A3F95B466A95C6F8F82 /* Pods-RunnerCarPlay.profile.xcconfig */, - 510AA50DE75FAE82EC03E97C /* Pods-Runner.debug-runnercarplay.xcconfig */, - 255E7806BEC9998D7DACC806 /* Pods-Runner-RunnerUITests.debug-runnercarplay.xcconfig */, - DB233621323BD5B8EBB431E5 /* Pods-RunnerCarPlay.debug-runnercarplay.xcconfig */, - 35E5AF4EA16C287D705B54B3 /* Pods-RunnerTests.debug-runnercarplay.xcconfig */, ); path = Pods; sourceTree = ""; @@ -264,10 +220,6 @@ isa = PBXGroup; children = ( 506F57582AD8055D004AC70F /* XCTest.framework */, - 64B801515FD75D36D58A86FE /* Pods_Runner.framework */, - 981DBDBFB0E241F931B1E394 /* Pods_Runner_RunnerUITests.framework */, - 054752A3C68A7FF5D59CC247 /* Pods_RunnerTests.framework */, - B269F01B5CD151328AA7F8EB /* Pods_RunnerCarPlay.framework */, ); name = Frameworks; sourceTree = ""; @@ -279,7 +231,6 @@ isa = PBXNativeTarget; buildConfigurationList = 2A8C4AC92CC646F200168311 /* Build configuration list for PBXNativeTarget "RunnerCarPlay" */; buildPhases = ( - DB054ED881210D00E963C46A /* [CP] Check Pods Manifest.lock */, 2A8C4ABA2CC646F200168311 /* Run Script */, 2A8C4ABB2CC646F200168311 /* Sources */, 2A8C4ABE2CC646F200168311 /* Frameworks */, @@ -303,7 +254,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - D21A0255C7E8DBD9403FFD35 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, F73C7729E50ED7AAAB254D7C /* Frameworks */, @@ -322,7 +272,6 @@ isa = PBXNativeTarget; buildConfigurationList = 506F57552AD8012C004AC70F /* Build configuration list for PBXNativeTarget "RunnerUITests" */; buildPhases = ( - 2A2E8CE8E375732F73D2ABA1 /* [CP] Check Pods Manifest.lock */, 506F57462AD8012C004AC70F /* Sources */, 506F57472AD8012C004AC70F /* Frameworks */, 506F57482AD8012C004AC70F /* Resources */, @@ -343,7 +292,6 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - F18CEB3456BF1353653A4B93 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -451,28 +399,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 2A2E8CE8E375732F73D2ABA1 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-RunnerUITests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 2A8C4ABA2CC646F200168311 /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -571,72 +497,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - D21A0255C7E8DBD9403FFD35 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - DB054ED881210D00E963C46A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerCarPlay-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F18CEB3456BF1353653A4B93 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -803,7 +663,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D CARPLAY"; + OTHER_SWIFT_FLAGS = "$(inherited) -D CARPLAY"; PRODUCT_BUNDLE_IDENTIFIER = com.google.maps.flutter.navigationExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -829,7 +689,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D CARPLAY"; + OTHER_SWIFT_FLAGS = "$(inherited) -D CARPLAY"; PRODUCT_BUNDLE_IDENTIFIER = com.google.maps.flutter.navigationExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -854,7 +714,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D CARPLAY"; + OTHER_SWIFT_FLAGS = "$(inherited) -D CARPLAY"; PRODUCT_BUNDLE_IDENTIFIER = com.google.maps.flutter.navigationExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -865,7 +725,6 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B35F8B4336F9E9672910B2A8 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -884,7 +743,6 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D775A5369CBCF55F2213A29D /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -901,7 +759,6 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9B707C730235859544DEFD11 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -918,7 +775,6 @@ }; 506F57522AD8012C004AC70F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2EAF2B705FB6C39F7F5344DA /* Pods-Runner-RunnerUITests.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -947,7 +803,6 @@ }; 506F57532AD8012C004AC70F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A6E86B897576AE6CE04EDE41 /* Pods-Runner-RunnerUITests.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -975,7 +830,6 @@ }; 506F57542AD8012C004AC70F /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FD0B54A81651AC7754FA8D08 /* Pods-Runner-RunnerUITests.profile.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1097,7 +951,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D CARPLAY"; + OTHER_SWIFT_FLAGS = "$(inherited) -D CARPLAY"; PRODUCT_BUNDLE_IDENTIFIER = com.google.maps.flutter.navigationExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -1109,7 +963,6 @@ }; 52C24CA82EF59E8F003F5A8C /* Debug-RunnerCarPlay */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 35E5AF4EA16C287D705B54B3 /* Pods-RunnerTests.debug-runnercarplay.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -1128,7 +981,6 @@ }; 52C24CA92EF59E8F003F5A8C /* Debug-RunnerCarPlay */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 255E7806BEC9998D7DACC806 /* Pods-Runner-RunnerUITests.debug-runnercarplay.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14..1d526a16 100644 --- a/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/ios/google_navigation_flutter.podspec b/ios/google_navigation_flutter.podspec deleted file mode 100644 index 372e751e..00000000 --- a/ios/google_navigation_flutter.podspec +++ /dev/null @@ -1,26 +0,0 @@ -# -# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint google_navigation_flutter.podspec` to validate before publishing. -# -Pod::Spec.new do |s| - s.name = 'google_navigation_flutter' - s.version = '0.0.1' - s.summary = 'A Google Maps Navigation Flutter plugin.' - s.description = <<-DESC -A Google Maps Navigation Flutter plugin. - DESC - s.homepage = 'http://example.com' - s.license = { :file => '../LICENSE' } - s.author = { 'Google Maps' => 'email@example.com' } - s.source = { :path => '.' } - s.source_files = 'google_navigation_flutter/Sources/google_navigation_flutter/**/*.swift' - s.dependency 'Flutter' - s.dependency 'GoogleNavigation', '10.15.0' - s.platform = :ios, '16.0' - s.static_framework = true - - # Flutter.framework does not contain a i386 slice. - s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' - s.resource_bundles = {'google_navigation_flutter_privacy_info' => ['google_navigation_flutter/Sources/google_navigation_flutter/PrivacyInfo.xcprivacy']} -end From 2e702eb18393801530232ef509cb8089a479614e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 12:28:17 +0800 Subject: [PATCH 6/9] chore: finalize cocoapods integration removal for ci and documentation etc --- .github/workflows/publish.yml | 4 ++-- .github/workflows/test-and-build.yaml | 21 --------------------- .gitignore | 3 --- README.md | 11 ++++------- example/README.md | 7 ------- example/ios/.gitignore | 2 -- melos.yaml | 2 -- 7 files changed, 6 insertions(+), 44 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a1cd9182..bf877459 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# A workflow that publishes the library to CocoaPods +# A workflow that publishes the library to pub.dev name: Publish to pub.dev on: @@ -30,4 +30,4 @@ jobs: publish: permissions: id-token: write # Required for authentication using OIDC - uses: dart-lang/setup-dart/.github/workflows/publish.yml@v1 + uses: dart-lang/setup-dart/.github/workflows/publish.yml@65eb853c7ba17dde3be364c3d2858773e7144260 # v1 diff --git a/.github/workflows/test-and-build.yaml b/.github/workflows/test-and-build.yaml index a4aa3487..229b4516 100644 --- a/.github/workflows/test-and-build.yaml +++ b/.github/workflows/test-and-build.yaml @@ -82,13 +82,6 @@ jobs: uses: bluefireteam/melos-action@6085791af7036f6366c9a4b9d55105c0ef9c6388 with: melos-version: "6.3.2" - - name: Cache podfiles - uses: actions/cache@v4 - with: - path: "**/Pods" - key: ${{ runner.os }}-pods-${{ hashFiles('**/*.podspec') }} - restore-keys: | - ${{ runner.os }}-pods- - name: Select XCode 26.5 run: sudo xcode-select -s '/Applications/Xcode_26.5.app/Contents/Developer' - name: Generate necessary files with flutter build @@ -170,13 +163,6 @@ jobs: uses: bluefireteam/melos-action@6085791af7036f6366c9a4b9d55105c0ef9c6388 with: melos-version: "6.3.2" - - name: Cache podfiles - uses: actions/cache@v4 - with: - path: "**/Pods" - key: ${{ runner.os }}-pods-${{ hashFiles('**/*.podspec') }} - restore-keys: | - ${{ runner.os }}-pods- - name: Download Build Artifact uses: actions/download-artifact@v4 with: @@ -350,13 +336,6 @@ jobs: uses: actions/download-artifact@v4 with: name: ${{ runner.os }}-build-artifact - - name: Cache podfiles - uses: actions/cache@v4 - with: - path: "**/Pods" - key: ${{ runner.os }}-pods-${{ hashFiles('**/*.podspec') }} - restore-keys: | - ${{ runner.os }}-pods- - name: Cache pub global packages uses: actions/cache@v4 with: diff --git a/.gitignore b/.gitignore index 0d4bb32f..c626d2ec 100644 --- a/.gitignore +++ b/.gitignore @@ -35,11 +35,8 @@ build/ # iOS .build/ -Podfile.lock -Pods/ .symlinks/ **/Flutter/ephemeral/ -**/Flutter/Flutter.podspec **/Flutter/App.framework/ **/Flutter/Flutter.framework/ **/Flutter/Generated.xcconfig diff --git a/README.md b/README.md index 9a2f58da..d8a916bc 100644 --- a/README.md +++ b/README.md @@ -66,14 +66,11 @@ dependencies { ### iOS -1. Open the ios/Podfile config file in your preferred IDE. -2. Add the following lines to the beginning of this Podfile: +This plugin requires Swift Package Manager on iOS; CocoaPods is not supported. If your app requires CocoaPods, use the last plugin release that supports it: 0.11.0 -``` - # Set platform to 16.0 to enable latest Google Maps SDK - platform :ios, '16.0' -``` -3. In Xcode open Info.plist file and add `App registers for location updates` to the list of `Required background modes` +1. Open `ios/Runner.xcodeproj` in Xcode. +2. Set the `Runner` target's iOS deployment target to 16.0. +3. In Xcode, open the Info.plist file and add `App registers for location updates` to the list of `Required background modes`. ### Set Google Maps API Key diff --git a/example/README.md b/example/README.md index 9b486d78..f8a20997 100644 --- a/example/README.md +++ b/example/README.md @@ -87,10 +87,3 @@ To run the example app, follow these steps: flutter run ``` If you want to run the example app with a specific API key, see the [Setting up API Keys](#setting-up-api-keys) section. - -> [!TIP] -> If you encounter pod-related issues when running the example code on iOS, you can try running the following commands from the `example/ios` folder: -> - pod repo update -> - pod install -> -> These commands will update and install the required pod files specifically for iOS. diff --git a/example/ios/.gitignore b/example/ios/.gitignore index 1ee65f12..94b436ed 100644 --- a/example/ios/.gitignore +++ b/example/ios/.gitignore @@ -10,14 +10,12 @@ **/.vagrant/ **/DerivedData/ Icon? -**/Pods/ **/.symlinks/ profile xcuserdata **/.generated/ Flutter/App.framework Flutter/Flutter.framework -Flutter/Flutter.podspec Flutter/Generated.xcconfig Flutter/ephemeral/ Flutter/app.flx diff --git a/melos.yaml b/melos.yaml index 0296250a..549e0187 100644 --- a/melos.yaml +++ b/melos.yaml @@ -176,7 +176,6 @@ scripts: # "check-license-header". run: | addlicense -f header_template.txt \ - --ignore "**/Pods/**" \ --ignore "**/.dart_tool/**" \ --ignore "**/example/build/**" \ --ignore "**/example/integration_test/test_bundle.dart" \ @@ -197,7 +196,6 @@ scripts: run: | addlicense -f header_template.txt \ --check \ - --ignore "**/Pods/**" \ --ignore "**/.dart_tool/**" \ --ignore "**/example/build/**" \ --ignore "**/example/integration_test/test_bundle.dart" \ From aa28df7fc36efa2f11f8c4e3835fe104bacf2b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 16:08:18 +0800 Subject: [PATCH 7/9] feat: migrate traffic lights and stop signs to ios sdk 11.0.0 --- ios/google_navigation_flutter/Package.swift | 4 ++-- .../GoogleMapsNavigationSessionManager.swift | 6 ------ .../GoogleMapsNavigationView.swift | 8 -------- lib/src/types/navigation_destinations.dart | 17 +++++++++-------- 4 files changed, 11 insertions(+), 24 deletions(-) diff --git a/ios/google_navigation_flutter/Package.swift b/ios/google_navigation_flutter/Package.swift index 7275e8da..e785c1f2 100644 --- a/ios/google_navigation_flutter/Package.swift +++ b/ios/google_navigation_flutter/Package.swift @@ -29,11 +29,11 @@ let package = Package( .package(name: "FlutterFramework", path: "../FlutterFramework"), .package( url: "https://github.com/googlemaps/ios-navigation-sdk", - exact: "10.15.0" + exact: "11.0.0" ), .package( url: "https://github.com/googlemaps/ios-maps-sdk", - exact: "10.15.0" + exact: "11.0.0" ), ], targets: [ diff --git a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift index 4b4c4a77..8d9da42d 100644 --- a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift +++ b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationSessionManager.swift @@ -267,12 +267,6 @@ class GoogleMapsNavigationSessionManager: NSObject { if let showDestinationMarkers = options.showDestinationMarkers { view.showDestinationMarkers(show: showDestinationMarkers) } - if let showStopSigns = options.showStopSigns { - view.showStopSigns(show: showStopSigns) - } - if let showTrafficLights = options.showTrafficLights { - view.showTrafficLights(show: showTrafficLights) - } } } diff --git a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationView.swift b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationView.swift index adf88f3d..5f351f07 100644 --- a/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationView.swift +++ b/ios/google_navigation_flutter/Sources/google_navigation_flutter/GoogleMapsNavigationView.swift @@ -601,14 +601,6 @@ public class GoogleMapsNavigationView: NSObject, FlutterPlatformView, ViewSettle _mapView.settings.showsDestinationMarkers = show } - func showTrafficLights(show: Bool) { - _mapView.settings.showsTrafficLights = show - } - - func showStopSigns(show: Bool) { - _mapView.settings.showsStopSigns = show - } - func isNavigationTripProgressBarEnabled() throws -> Bool { _mapView.settings.isNavigationTripProgressBarEnabled } diff --git a/lib/src/types/navigation_destinations.dart b/lib/src/types/navigation_destinations.dart index 9fcb5a9d..9e76d7c3 100644 --- a/lib/src/types/navigation_destinations.dart +++ b/lib/src/types/navigation_destinations.dart @@ -185,8 +185,7 @@ class RoutingOptions { /// Display options. /// -/// By default, the destination markers are shown, stop signs -/// and traffic lights are not. +/// By default, destination markers, stop signs, and traffic lights are shown. /// {@category Navigation} class NavigationDisplayOptions { /// Initializer for display options. @@ -201,19 +200,21 @@ class NavigationDisplayOptions { /// Show stop signs. /// - /// Deprecated: This option now defaults to true and will be removed in future - /// versions. + /// Has no effect on iOS, where Navigation SDK 11 always shows stop signs + /// during navigation when data is available. On Android, it defaults to true + /// when unset. @Deprecated( - 'This option now defaults to true and will be removed in future versions.', + 'This option has no effect on iOS, defaults to true on Android, and will be removed in future versions.', ) final bool? showStopSigns; /// Show traffic lights. /// - /// Deprecated: This option now defaults to true and will be removed in future - /// versions. + /// Has no effect on iOS, where Navigation SDK 11 always shows traffic lights + /// during navigation when data is available. On Android, it defaults to true + /// when unset. @Deprecated( - 'This option now defaults to true and will be removed in future versions.', + 'This option has no effect on iOS, defaults to true on Android, and will be removed in future versions.', ) final bool? showTrafficLights; From 58c8ef4bab922a9a258a027b6e5a31d95e3efab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 16:35:47 +0800 Subject: [PATCH 8/9] chore: finalize ios 11.0.0 migration and docs --- CONTRIBUTING.md | 3 ++- README.md | 1 + example/ios/Runner/Info-CarPlay.plist | 2 ++ example/ios/Runner/Info.plist | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 56777699..28a0c414 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,8 @@ _See also: [Flutter's code of conduct](https://flutter.io/design-principles/#cod - **Operating System:** Linux, macOS, or Windows. - **Version Control:** [git](https://git-scm.com). - **Development Environment:** An IDE such as [Android Studio](https://developer.android.com/studio) or [Visual Studio Code](https://code.visualstudio.com/). -- **Code Formatting:** [`swift-format`](https://formulae.brew.sh/formula/swift-format). +- **Code Formatting:** [`swift-format`](https://formulae.brew.sh/formula/swift-format). +- **iOS Development:** Xcode 26.x.x or later. ### 1.1. Installing swift-format The CI uses latest swift-format which you can install with the command below: diff --git a/README.md b/README.md index d8a916bc..17ac5c95 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ This plugin requires Swift Package Manager on iOS; CocoaPods is not supported. I 1. Open `ios/Runner.xcodeproj` in Xcode. 2. Set the `Runner` target's iOS deployment target to 16.0. 3. In Xcode, open the Info.plist file and add `App registers for location updates` to the list of `Required background modes`. +4. Add `NSMotionUsageDescription` to Info.plist with a user-facing explanation of how your app uses motion data for navigation. See the [Navigation SDK for iOS release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes#August_06_2026) for details. ### Set Google Maps API Key diff --git a/example/ios/Runner/Info-CarPlay.plist b/example/ios/Runner/Info-CarPlay.plist index 85bcc54c..bf109bdf 100644 --- a/example/ios/Runner/Info-CarPlay.plist +++ b/example/ios/Runner/Info-CarPlay.plist @@ -36,6 +36,8 @@ Location needed for functionalities NSLocationUsageDescription Location needed for functionalities + NSMotionUsageDescription + Motion data is used to improve navigation. NSLocationWhenInUseUsageDescription Location needed for functionalities UIApplicationSupportsIndirectInputEvents diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 3c37b8d8..a0988d98 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -40,6 +40,8 @@ Location needed for functionalities NSLocationUsageDescription Location needed for functionalities + NSMotionUsageDescription + Motion data is used to improve navigation. NSLocationWhenInUseUsageDescription Location needed for functionalities UIApplicationSupportsIndirectInputEvents From 8841db83bf1a11c6f1c05fcfc22fd59ccc7cff07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 17 Aug 2026 16:58:37 +0800 Subject: [PATCH 9/9] docs: update SPM documention in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17ac5c95..96a5ebb9 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ dependencies { ### iOS -This plugin requires Swift Package Manager on iOS; CocoaPods is not supported. If your app requires CocoaPods, use the last plugin release that supports it: 0.11.0 +This plugin requires Swift Package Manager on iOS; CocoaPods is not supported. See Flutter's [Swift Package Manager guide for app developers](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers) to enable SwiftPM support in your app. 1. Open `ios/Runner.xcodeproj` in Xcode. 2. Set the `Runner` target's iOS deployment target to 16.0.