diff --git a/dev/benchmarks/complex_layout/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/complex_layout/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/complex_layout/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/complex_layout/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/macrobenchmarks/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/macrobenchmarks/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/macrobenchmarks/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/macrobenchmarks/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/macrobenchmarks/ios/Runner.xcodeproj/project.pbxproj b/dev/benchmarks/macrobenchmarks/ios/Runner.xcodeproj/project.pbxproj index 153fea7b93..6f7f123cc4 100644 --- a/dev/benchmarks/macrobenchmarks/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/benchmarks/macrobenchmarks/ios/Runner.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 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 */; }; + DCD9C428850803F303B36F75 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6118F571CF071F0EC8DA51B0 /* libPods-Runner.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,7 +33,9 @@ /* Begin PBXFileReference section */ 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 = ""; }; + 1842E3C5134E282C88C541B8 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 6118F571CF071F0EC8DA51B0 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -44,6 +47,8 @@ 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 = ""; }; + F269DC09D76325C7B7334781 /* 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 = ""; }; + F315CD49AC9ECB31CFF14422 /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,12 +56,21 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + DCD9C428850803F303B36F75 /* libPods-Runner.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 1A3FD7E7D43BE1870F399FB4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6118F571CF071F0EC8DA51B0 /* libPods-Runner.a */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -74,7 +88,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + CCCFA53374D5A08F8ECF6BE9 /* Pods */, + 1A3FD7E7D43BE1870F399FB4 /* Frameworks */, ); sourceTree = ""; }; @@ -110,6 +125,17 @@ name = "Supporting Files"; sourceTree = ""; }; + CCCFA53374D5A08F8ECF6BE9 /* Pods */ = { + isa = PBXGroup; + children = ( + F315CD49AC9ECB31CFF14422 /* Pods-Runner.debug.xcconfig */, + 1842E3C5134E282C88C541B8 /* Pods-Runner.release.xcconfig */, + F269DC09D76325C7B7334781 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -117,6 +143,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 1092B552CA21D15FAE25222D /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -180,6 +207,28 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 1092B552CA21D15FAE25222D /* [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; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -282,7 +331,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -351,7 +400,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -398,7 +447,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/benchmarks/microbenchmarks/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/microbenchmarks/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/microbenchmarks/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/microbenchmarks/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/platform_views_layout/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/platform_views_layout/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/platform_views_layout/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/platform_views_layout/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/platform_views_layout_hybrid_composition/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/platform_views_layout_hybrid_composition/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/platform_views_layout_hybrid_composition/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/test_apps/stocks/ios/Flutter/AppFrameworkInfo.plist b/dev/benchmarks/test_apps/stocks/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/benchmarks/test_apps/stocks/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/benchmarks/test_apps/stocks/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/benchmarks/test_apps/stocks/ios/Runner.xcodeproj/project.pbxproj b/dev/benchmarks/test_apps/stocks/ios/Runner.xcodeproj/project.pbxproj index 8f83480e21..6b0b9dfe1b 100644 --- a/dev/benchmarks/test_apps/stocks/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/benchmarks/test_apps/stocks/ios/Runner.xcodeproj/project.pbxproj @@ -291,7 +291,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -359,7 +359,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -408,7 +408,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart index e73496c739..fe17bc2f4b 100644 --- a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart +++ b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart @@ -132,6 +132,15 @@ Future _testBuildIosFramework(Directory projectDir, { bool isModule = fals ); checkFileExists(debugAppFrameworkPath); + checkFileExists(path.join( + outputPath, + 'Debug', + 'App.xcframework', + 'ios-arm64_armv7', + 'App.framework', + 'Info.plist', + )); + section('Check debug build has Dart snapshot as asset'); checkFileExists(path.join( @@ -205,6 +214,15 @@ Future _testBuildIosFramework(Directory projectDir, { bool isModule = fals 'App.framework', 'App', )); + + checkFileExists(path.join( + outputPath, + mode, + 'App.xcframework', + 'ios-x86_64-simulator', + 'App.framework', + 'Info.plist', + )); } section("Check all modes' engine dylib"); diff --git a/dev/integration_tests/channels/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/channels/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/channels/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/channels/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/channels/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/channels/ios/Runner.xcodeproj/project.pbxproj index 7ed62dafd4..42ed47f179 100644 --- a/dev/integration_tests/channels/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/channels/ios/Runner.xcodeproj/project.pbxproj @@ -275,7 +275,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -335,7 +335,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -376,7 +376,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/integration_tests/external_ui/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/external_ui/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/external_ui/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/external_ui/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/external_ui/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/external_ui/ios/Runner.xcodeproj/project.pbxproj index a76dc19d7d..a47a30a35f 100644 --- a/dev/integration_tests/external_ui/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/external_ui/ios/Runner.xcodeproj/project.pbxproj @@ -265,7 +265,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -325,7 +325,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -366,7 +366,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/integration_tests/flavors/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/flavors/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/flavors/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/flavors/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/flavors/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/flavors/ios/Runner.xcodeproj/project.pbxproj index e48225bea4..985a3a4ea4 100644 --- a/dev/integration_tests/flavors/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/flavors/ios/Runner.xcodeproj/project.pbxproj @@ -379,7 +379,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_FLAVOR = paid; @@ -434,7 +434,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_FLAVOR = paid; SDKROOT = iphoneos; @@ -495,7 +495,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_FLAVOR = free; @@ -537,7 +537,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_FLAVOR = free; SDKROOT = iphoneos; diff --git a/dev/integration_tests/flutter_gallery/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/flutter_gallery/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/flutter_gallery/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/flutter_gallery/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/flutter_gallery/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/flutter_gallery/ios/Runner.xcodeproj/project.pbxproj index 0633f16715..943a1404d7 100644 --- a/dev/integration_tests/flutter_gallery/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/flutter_gallery/ios/Runner.xcodeproj/project.pbxproj @@ -407,7 +407,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -475,7 +475,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -524,7 +524,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/integration_tests/ios_app_with_extensions/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/ios_app_with_extensions/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/ios_app_with_extensions/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/ios_app_with_extensions/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/ios_app_with_extensions/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/ios_app_with_extensions/ios/Runner.xcodeproj/project.pbxproj index 118ad3798a..92b6a43676 100644 --- a/dev/integration_tests/ios_app_with_extensions/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/ios_app_with_extensions/ios/Runner.xcodeproj/project.pbxproj @@ -608,7 +608,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -873,7 +873,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -923,7 +923,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/dev/integration_tests/ios_platform_view_tests/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/ios_platform_view_tests/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/ios_platform_view_tests/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/ios_platform_view_tests/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/ios_platform_view_tests/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/ios_platform_view_tests/ios/Runner.xcodeproj/project.pbxproj index 3199ae3add..ea42badf46 100644 --- a/dev/integration_tests/ios_platform_view_tests/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/ios_platform_view_tests/ios/Runner.xcodeproj/project.pbxproj @@ -283,7 +283,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -358,7 +358,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -407,7 +407,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/dev/integration_tests/non_nullable/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/non_nullable/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/non_nullable/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/non_nullable/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/non_nullable/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/non_nullable/ios/Runner.xcodeproj/project.pbxproj index f999a1faf7..1eb218556c 100644 --- a/dev/integration_tests/non_nullable/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/non_nullable/ios/Runner.xcodeproj/project.pbxproj @@ -280,7 +280,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -354,7 +354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -403,7 +403,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/dev/integration_tests/platform_interaction/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/platform_interaction/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/platform_interaction/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/platform_interaction/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/platform_interaction/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/platform_interaction/ios/Runner.xcodeproj/project.pbxproj index 3e34ef2e8f..09d15b84d1 100644 --- a/dev/integration_tests/platform_interaction/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/platform_interaction/ios/Runner.xcodeproj/project.pbxproj @@ -281,7 +281,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -341,7 +341,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -382,7 +382,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/integration_tests/release_smoke_test/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/release_smoke_test/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/release_smoke_test/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/release_smoke_test/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/release_smoke_test/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/release_smoke_test/ios/Runner.xcodeproj/project.pbxproj index 1a746f84c8..b8138be629 100644 --- a/dev/integration_tests/release_smoke_test/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/release_smoke_test/ios/Runner.xcodeproj/project.pbxproj @@ -331,7 +331,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -400,7 +400,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -447,7 +447,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/integration_tests/ui/ios/Flutter/AppFrameworkInfo.plist b/dev/integration_tests/ui/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/integration_tests/ui/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/integration_tests/ui/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/integration_tests/ui/ios/Runner.xcodeproj/project.pbxproj b/dev/integration_tests/ui/ios/Runner.xcodeproj/project.pbxproj index bddee37b6a..bcfd5259f6 100644 --- a/dev/integration_tests/ui/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/integration_tests/ui/ios/Runner.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 9DB392A616C0C8AD238C7F4C /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E95162D3453E15E80DABCBC /* libPods-Runner.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -29,7 +30,9 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 03F961F59B540A32EF304282 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 6E95162D3453E15E80DABCBC /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 74970F751EDC361B000507F3 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 74970F761EDC361B000507F3 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -42,6 +45,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; 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 = ""; }; + BA9419B1A50A1C16E0B20CA4 /* 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 = ""; }; + D9588C26CA2EF309DE6AAE11 /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,6 +54,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9DB392A616C0C8AD238C7F4C /* libPods-Runner.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -73,6 +79,7 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + A2B783D05322549629FF621B /* Pods */, ); sourceTree = ""; }; @@ -107,9 +114,21 @@ name = "Supporting Files"; sourceTree = ""; }; + A2B783D05322549629FF621B /* Pods */ = { + isa = PBXGroup; + children = ( + D9588C26CA2EF309DE6AAE11 /* Pods-Runner.debug.xcconfig */, + BA9419B1A50A1C16E0B20CA4 /* Pods-Runner.release.xcconfig */, + 03F961F59B540A32EF304282 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; CF3B75C9A7D2FA2A4C99F110 /* Frameworks */ = { isa = PBXGroup; children = ( + 6E95162D3453E15E80DABCBC /* libPods-Runner.a */, ); name = Frameworks; sourceTree = ""; @@ -121,6 +140,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + DB4B1C60D473FE94D19F4FFB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -211,6 +231,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + DB4B1C60D473FE94D19F4FFB /* [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 */ @@ -279,7 +321,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -339,7 +381,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -380,7 +422,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dev/manual_tests/ios/Flutter/AppFrameworkInfo.plist b/dev/manual_tests/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/dev/manual_tests/ios/Flutter/AppFrameworkInfo.plist +++ b/dev/manual_tests/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/dev/manual_tests/ios/Runner.xcodeproj/project.pbxproj b/dev/manual_tests/ios/Runner.xcodeproj/project.pbxproj index ea9295ebe9..9a9066cfb7 100644 --- a/dev/manual_tests/ios/Runner.xcodeproj/project.pbxproj +++ b/dev/manual_tests/ios/Runner.xcodeproj/project.pbxproj @@ -280,7 +280,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -354,7 +354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -403,7 +403,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/examples/flutter_view/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter_view/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/flutter_view/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/flutter_view/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/hello_world/ios/Flutter/AppFrameworkInfo.plist b/examples/hello_world/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/hello_world/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/hello_world/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/image_list/ios/Flutter/AppFrameworkInfo.plist b/examples/image_list/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/image_list/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/image_list/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/layers/ios/Flutter/AppFrameworkInfo.plist b/examples/layers/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/layers/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/layers/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/platform_channel/ios/Flutter/AppFrameworkInfo.plist b/examples/platform_channel/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/platform_channel/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/platform_channel/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/platform_channel_swift/ios/Flutter/AppFrameworkInfo.plist b/examples/platform_channel_swift/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/platform_channel_swift/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/platform_channel_swift/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/examples/platform_view/ios/Flutter/AppFrameworkInfo.plist b/examples/platform_view/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/examples/platform_view/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/platform_view/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 0372bfc4fb..fecf5d310f 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -256,7 +256,7 @@ class AOTSnapshotter { // When the minimum version is updated, remember to update // template MinimumOSVersion. // https://github.com/flutter/flutter/pull/62902 - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', if (sdkRoot != null) ...[ '-isysroot', sdkRoot, diff --git a/packages/flutter_tools/lib/src/base/project_migrator.dart b/packages/flutter_tools/lib/src/base/project_migrator.dart index 151dab5689..d2dfe8db74 100644 --- a/packages/flutter_tools/lib/src/base/project_migrator.dart +++ b/packages/flutter_tools/lib/src/base/project_migrator.dart @@ -30,6 +30,10 @@ abstract class ProjectMigrator { return fileContents; } + @protected + bool get migrationRequired => _migrationRequired; + bool _migrationRequired = false; + @protected /// Calls [migrateLine] per line, then [migrateFileContents] /// including the line migrations. @@ -39,13 +43,12 @@ abstract class ProjectMigrator { final StringBuffer newProjectContents = StringBuffer(); final String basename = file.basename; - bool migrationRequired = false; for (final String line in lines) { final String? newProjectLine = migrateLine(line); if (newProjectLine == null) { logger.printTrace('Migrating $basename, removing:'); logger.printTrace(' $line'); - migrationRequired = true; + _migrationRequired = true; continue; } if (newProjectLine != line) { @@ -53,7 +56,7 @@ abstract class ProjectMigrator { logger.printTrace(' $line'); logger.printTrace('with:'); logger.printTrace(' $newProjectLine'); - migrationRequired = true; + _migrationRequired = true; } newProjectContents.writeln(newProjectLine); } @@ -62,7 +65,7 @@ abstract class ProjectMigrator { final String projectContentsWithMigratedContents = migrateFileContents(projectContentsWithMigratedLines); if (projectContentsWithMigratedLines != projectContentsWithMigratedContents) { logger.printTrace('Migrating $basename contents'); - migrationRequired = true; + _migrationRequired = true; } if (migrationRequired) { diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index 2b21997351..30933f4ec8 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart @@ -504,12 +504,7 @@ abstract class IosAssetBundle extends Target { // Copy the plist from either the project or module. // TODO(jonahwilliams): add plist to inputs final FlutterProject flutterProject = FlutterProject.fromDirectory(environment.projectDir); - final Directory plistRoot = flutterProject.isModule - ? flutterProject.ios.ephemeralModuleDirectory - : environment.projectDir.childDirectory('ios'); - plistRoot - .childDirectory('Flutter') - .childFile('AppFrameworkInfo.plist') + flutterProject.ios.appFrameworkInfoPlist .copySync(environment.outputDir .childDirectory('App.framework') .childFile('Info.plist').path); @@ -608,9 +603,9 @@ Future _createStubAppFramework(File outputFile, Environment environment, '-fembed-bitcode-marker', // Keep version in sync with AOTSnapshotter flag if (environmentType == EnvironmentType.physical) - '-miphoneos-version-min=8.0' + '-miphoneos-version-min=9.0' else - '-miphonesimulator-version-min=8.0', + '-miphonesimulator-version-min=9.0', '-Xlinker', '-rpath', '-Xlinker', '@executable_path/Frameworks', '-Xlinker', '-rpath', '-Xlinker', '@loader_path/Frameworks', '-install_name', '@rpath/App.framework/App', diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 1438d736d8..0d8799562f 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -26,6 +26,7 @@ import '../reporting/reporting.dart'; import 'application_package.dart'; import 'code_signing.dart'; import 'devices.dart'; +import 'migrations/deployment_target_migration.dart'; import 'migrations/project_base_configuration_migration.dart'; import 'migrations/project_build_location_migration.dart'; import 'migrations/remove_framework_link_and_embedding_migration.dart'; @@ -111,6 +112,7 @@ Future buildXcodeProject({ XcodeBuildSystemMigration(app.project, globals.logger), ProjectBaseConfigurationMigration(app.project, globals.logger), ProjectBuildLocationMigration(app.project, globals.logger), + DeploymentTargetMigration(app.project, globals.logger), ]; final ProjectMigration migration = ProjectMigration(migrators); diff --git a/packages/flutter_tools/lib/src/ios/migrations/deployment_target_migration.dart b/packages/flutter_tools/lib/src/ios/migrations/deployment_target_migration.dart new file mode 100644 index 0000000000..082e515b41 --- /dev/null +++ b/packages/flutter_tools/lib/src/ios/migrations/deployment_target_migration.dart @@ -0,0 +1,67 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import '../../base/file_system.dart'; +import '../../base/logger.dart'; +import '../../base/project_migrator.dart'; +import '../../project.dart'; + +/// Update the minimum iOS deployment version to the minimum allowed by Xcode without causing a warning. +class DeploymentTargetMigration extends ProjectMigrator { + DeploymentTargetMigration( + IosProject project, + Logger logger, + ) : _xcodeProjectInfoFile = project.xcodeProjectInfoFile, + _appFrameworkInfoPlist = project.appFrameworkInfoPlist, + super(logger); + + final File _xcodeProjectInfoFile; + final File _appFrameworkInfoPlist; + + @override + bool migrate() { + if (_xcodeProjectInfoFile.existsSync()) { + processFileLines(_xcodeProjectInfoFile); + } else { + logger.printTrace('Xcode project not found, skipping iOS deployment target version migration.'); + } + + if (_appFrameworkInfoPlist.existsSync()) { + processFileLines(_appFrameworkInfoPlist); + } else { + logger.printTrace('AppFrameworkInfo.plist not found, skipping minimum OS version migration.'); + } + + return true; + } + + @override + String migrateFileContents(String fileContents) { + const String minimumOSVersionOriginal = ''' + MinimumOSVersion + 8.0 +'''; + const String minimumOSVersionReplacement = ''' + MinimumOSVersion + 9.0 +'''; + + return fileContents.replaceAll(minimumOSVersionOriginal, minimumOSVersionReplacement); + } + + @override + String? migrateLine(String line) { + const String deploymentTargetOriginal = 'IPHONEOS_DEPLOYMENT_TARGET = 8.0;'; + const String deploymentTargetReplacement = 'IPHONEOS_DEPLOYMENT_TARGET = 9.0;'; + if (line.contains(deploymentTargetOriginal)) { + if (!migrationRequired) { + // Only print for the first discovered change found. + logger.printStatus('Updating minimum iOS deployment target from 8.0 to 9.0.'); + } + return line.replaceAll(deploymentTargetOriginal, deploymentTargetReplacement); + } + + return line; + } +} diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 1639017440..59b9f66bf7 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -503,6 +503,8 @@ class IosProject extends FlutterProjectPlatform implements XcodeBasedProject { /// The default 'Info.plist' file of the host app. The developer can change this location in Xcode. File get defaultHostInfoPlist => hostAppRoot.childDirectory(_hostAppProjectName).childFile('Info.plist'); + File get appFrameworkInfoPlist => _flutterLibRoot.childDirectory('Flutter').childFile('AppFrameworkInfo.plist'); + Directory get symlinks => _flutterLibRoot.childDirectory('.symlinks'); @override diff --git a/packages/flutter_tools/templates/app/ios.tmpl/Flutter/AppFrameworkInfo.plist b/packages/flutter_tools/templates/app/ios.tmpl/Flutter/AppFrameworkInfo.plist index 9367d483e4..8d4492f977 100644 --- a/packages/flutter_tools/templates/app/ios.tmpl/Flutter/AppFrameworkInfo.plist +++ b/packages/flutter_tools/templates/app/ios.tmpl/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist b/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist index 9367d483e4..8d4492f977 100644 --- a/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist +++ b/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/packages/flutter_tools/test/general.shard/base/build_test.dart b/packages/flutter_tools/test/general.shard/base/build_test.dart index 7184186667..8a869cdc65 100644 --- a/packages/flutter_tools/test/general.shard/base/build_test.dart +++ b/packages/flutter_tools/test/general.shard/base/build_test.dart @@ -28,7 +28,7 @@ const FakeCommand kARMCheckCommand = FakeCommand( ); const List kDefaultClang = [ - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-dynamiclib', @@ -245,7 +245,7 @@ void main() { 'cc', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-fembed-bitcode', @@ -259,7 +259,7 @@ void main() { 'clang', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-dynamiclib', @@ -325,7 +325,7 @@ void main() { 'cc', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-c', @@ -385,7 +385,7 @@ void main() { 'cc', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-c', @@ -443,7 +443,7 @@ void main() { 'cc', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-c', @@ -499,7 +499,7 @@ void main() { 'cc', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/sdk', '-c', diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart index a422c48152..acc1a65b72 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart @@ -475,7 +475,7 @@ void main() { 'cc', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-c', @@ -488,7 +488,7 @@ void main() { 'cc', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-c', @@ -501,7 +501,7 @@ void main() { 'clang', '-arch', 'armv7', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-dynamiclib', @@ -524,7 +524,7 @@ void main() { 'clang', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-dynamiclib', @@ -583,7 +583,7 @@ void main() { 'cc', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', // Contains bitcode flag. @@ -598,7 +598,7 @@ void main() { 'clang', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-dynamiclib', @@ -659,7 +659,7 @@ void main() { 'cc', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', // Contains bitcode flag. @@ -674,7 +674,7 @@ void main() { 'clang', '-arch', 'arm64', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-isysroot', 'path/to/iPhoneOS.sdk', '-dynamiclib', diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart index 0ec916a4ae..fe30517ece 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart @@ -23,7 +23,7 @@ final Platform macPlatform = FakePlatform(operatingSystem: 'macos', environment: const List _kSharedConfig = [ '-dynamiclib', '-fembed-bitcode-marker', - '-miphoneos-version-min=8.0', + '-miphoneos-version-min=9.0', '-Xlinker', '-rpath', '-Xlinker', @@ -84,7 +84,7 @@ void main() { '.tmp_rand0', 'flutter_tools_stub_source.rand0', 'debug_app.cc')), '-dynamiclib', '-fembed-bitcode-marker', - '-miphonesimulator-version-min=8.0', + '-miphonesimulator-version-min=9.0', '-Xlinker', '-rpath', '-Xlinker', diff --git a/packages/flutter_tools/test/general.shard/ios/ios_project_migration_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_project_migration_test.dart index be4b80c493..0a60933157 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_project_migration_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_project_migration_test.dart @@ -6,6 +6,7 @@ import 'package:file/file.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/project_migrator.dart'; +import 'package:flutter_tools/src/ios/migrations/deployment_target_migration.dart'; import 'package:flutter_tools/src/ios/migrations/project_base_configuration_migration.dart'; import 'package:flutter_tools/src/ios/migrations/project_build_location_migration.dart'; import 'package:flutter_tools/src/ios/migrations/remove_framework_link_and_embedding_migration.dart'; @@ -487,6 +488,118 @@ keep this 3 expect(testLogger.statusText, contains('Project base configurations detected, removing.')); }); }); + + group('update deployment target version', () { + late MemoryFileSystem memoryFileSystem; + late BufferLogger testLogger; + late FakeIosProject project; + late File xcodeProjectInfoFile; + late File appFrameworkInfoPlist; + + setUp(() { + memoryFileSystem = MemoryFileSystem(); + testLogger = BufferLogger.test(); + project = FakeIosProject(); + xcodeProjectInfoFile = memoryFileSystem.file('project.pbxproj'); + project.xcodeProjectInfoFile = xcodeProjectInfoFile; + + appFrameworkInfoPlist = memoryFileSystem.file('AppFrameworkInfo.plist'); + project.appFrameworkInfoPlist = appFrameworkInfoPlist; + }); + + testWithoutContext('skipped if files are missing', () { + final DeploymentTargetMigration iosProjectMigration = DeploymentTargetMigration( + project, + testLogger, + ); + expect(iosProjectMigration.migrate(), isTrue); + expect(xcodeProjectInfoFile.existsSync(), isFalse); + expect(appFrameworkInfoPlist.existsSync(), isFalse); + + expect(testLogger.traceText, contains('Xcode project not found, skipping iOS deployment target version migration')); + expect(testLogger.traceText, contains('AppFrameworkInfo.plist not found, skipping minimum OS version migration')); + expect(testLogger.statusText, isEmpty); + }); + + testWithoutContext('skipped if nothing to upgrade', () { + const String xcodeProjectInfoFileContents = 'IPHONEOS_DEPLOYMENT_TARGET = 9.0;'; + xcodeProjectInfoFile.writeAsStringSync(xcodeProjectInfoFileContents); + + const String appFrameworkInfoPlistContents = ''' + MinimumOSVersion + 9.0 +'''; + appFrameworkInfoPlist.writeAsStringSync(appFrameworkInfoPlistContents); + + final DateTime projectLastModified = xcodeProjectInfoFile.lastModifiedSync(); + + final DeploymentTargetMigration iosProjectMigration = DeploymentTargetMigration( + project, + testLogger, + ); + expect(iosProjectMigration.migrate(), isTrue); + + expect(xcodeProjectInfoFile.lastModifiedSync(), projectLastModified); + expect(xcodeProjectInfoFile.readAsStringSync(), xcodeProjectInfoFileContents); + expect(appFrameworkInfoPlist.readAsStringSync(), appFrameworkInfoPlistContents); + + expect(testLogger.statusText, isEmpty); + }); + + testWithoutContext('Xcode project is migrated to minimum version 8.0', () { + xcodeProjectInfoFile.writeAsStringSync(''' + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + + IPHONEOS_DEPLOYMENT_TARGET = 8.0; +'''); + + appFrameworkInfoPlist.writeAsStringSync(''' + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + +'''); + + final DeploymentTargetMigration iosProjectMigration = DeploymentTargetMigration( + project, + testLogger, + ); + expect(iosProjectMigration.migrate(), isTrue); + + expect(xcodeProjectInfoFile.readAsStringSync(), ''' + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + + IPHONEOS_DEPLOYMENT_TARGET = 9.0; +'''); + + expect(appFrameworkInfoPlist.readAsStringSync(), ''' + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + +'''); + // Only print once even though 2 lines were changed. + expect('Updating minimum iOS deployment target from 8.0 to 9.0'.allMatches(testLogger.statusText).length, 1); + }); + }); }); } @@ -499,6 +612,9 @@ class FakeIosProject extends Fake implements IosProject { @override File xcodeProjectInfoFile = MemoryFileSystem.test().file('xcodeProjectInfoFile'); + + @override + File appFrameworkInfoPlist = MemoryFileSystem.test().file('appFrameworkInfoPlist'); } class FakeIOSMigrator extends ProjectMigrator { diff --git a/packages/flutter_tools/test/integration.shard/ios_content_validation_test.dart b/packages/flutter_tools/test/integration.shard/ios_content_validation_test.dart index 0572145c79..a3b7c0de7c 100644 --- a/packages/flutter_tools/test/integration.shard/ios_content_validation_test.dart +++ b/packages/flutter_tools/test/integration.shard/ios_content_validation_test.dart @@ -89,7 +89,8 @@ void main() { testWithoutContext('flutter build ios builds a valid app', () { // Should only contain Flutter.framework and App.framework. expect(frameworkDirectory.listSync().length, 2); - expect(outputAppFramework.childFile('App'), exists); + expect(outputAppFrameworkBinary, exists); + expect(outputAppFramework.childFile('Info.plist'), exists); final File vmSnapshot = fileSystem.file(fileSystem.path.join( outputAppFramework.path, diff --git a/packages/integration_test/example/ios/Flutter/AppFrameworkInfo.plist b/packages/integration_test/example/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78a7..f2872cf474 100644 --- a/packages/integration_test/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/integration_test/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/packages/integration_test/example/ios/Runner.xcodeproj/project.pbxproj b/packages/integration_test/example/ios/Runner.xcodeproj/project.pbxproj index fb55213aff..ee47ce4715 100644 --- a/packages/integration_test/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/integration_test/example/ios/Runner.xcodeproj/project.pbxproj @@ -446,7 +446,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -587,7 +587,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -636,7 +636,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos;