Finish integrating HelloServices model on iOS (#4820)
This patch changes the default `flutter create` command to generate a
HelloServices-style app on iOS. As a consequence, the Atom integration now
fully works with HelloServices.
diff --git a/packages/flutter_tools/lib/src/application_package.dart b/packages/flutter_tools/lib/src/application_package.dart
index ae3d5df..07f6ccb 100644
--- a/packages/flutter_tools/lib/src/application_package.dart
+++ b/packages/flutter_tools/lib/src/application_package.dart
@@ -96,13 +96,13 @@
if (getCurrentHostPlatform() != HostPlatform.darwin_x64)
return null;
- String plistPath = path.join('ios', 'Info.plist');
+ String plistPath = path.join('ios', 'Runner', 'Info.plist');
String value = getValueFromFile(plistPath, kCFBundleIdentifierKey);
if (value == null)
return null;
return new IOSApp(
- projectDir: path.join('ios', '.generated'),
+ projectDir: path.join('ios'),
projectBundleId: value
);
}
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index 163b05f..962ced7 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -105,16 +105,7 @@
bool codesign: true
}) async {
String flutterProjectPath = Directory.current.path;
-
- if (xcodeProjectRequiresUpdate(mode, target)) {
- printTrace('Initializing the Xcode project.');
- if ((await setupXcodeProjectHarness(flutterProjectPath, mode, target)) != 0) {
- printError('Could not initialize the Xcode project.');
- return new XcodeBuildResult(false);
- }
- } else {
- updateXcodeGeneratedProperties(flutterProjectPath, mode, target);
- }
+ updateXcodeGeneratedProperties(flutterProjectPath, mode, target);
if (!_checkXcodeVersion())
return new XcodeBuildResult(false);
@@ -130,7 +121,6 @@
'xcodebuild',
'clean',
'build',
- '-target', 'Runner',
'-configuration', 'Release',
'ONLY_ACTIVE_ARCH=YES',
];
diff --git a/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart b/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
index 6cf48bf..210dbf8 100644
--- a/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
+++ b/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
@@ -2,16 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'dart:async';
import 'dart:io';
import 'package:path/path.dart' as path;
-import '../base/file_system.dart' show copyFolderSync;
import '../build_info.dart';
import '../cache.dart';
import '../globals.dart';
-import '../version.dart';
void updateXcodeGeneratedProperties(String projectPath, BuildMode mode, String target) {
StringBuffer localsBuffer = new StringBuffer();
@@ -37,54 +34,7 @@
if (tools.isLocalEngine)
localsBuffer.writeln('LOCAL_ENGINE=${tools.engineBuildPath}');
- File localsFile = new File(path.join(projectPath, 'ios', '.generated', 'Flutter', 'Generated.xcconfig'));
+ File localsFile = new File(path.join(projectPath, 'ios', 'Flutter', 'Generated.xcconfig'));
localsFile.createSync(recursive: true);
localsFile.writeAsStringSync(localsBuffer.toString());
}
-
-bool xcodeProjectRequiresUpdate(BuildMode mode, String target) {
- File revisionFile = new File(path.join(Directory.current.path, 'ios', '.generated', 'REVISION'));
-
- // If the revision stamp does not exist, the Xcode project definitely requires
- // an update
- if (!revisionFile.existsSync()) {
- printTrace("A revision stamp does not exist. The Xcode project has never been initialized.");
- return true;
- }
-
- if (revisionFile.readAsStringSync() != _getCurrentXcodeRevisionString(mode, target)) {
- printTrace("The revision stamp and the Flutter engine revision differ or the build mode has changed.");
- printTrace("Project needs to be updated.");
- return true;
- }
-
- printTrace("Xcode project is up to date.");
- return false;
-}
-
-Future<int> setupXcodeProjectHarness(String flutterProjectPath, BuildMode mode, String target) async {
- // Step 1: Copy templates into user project directory
- String iosFilesPath = path.join(flutterProjectPath, 'ios');
- String xcodeProjectPath = path.join(iosFilesPath, '.generated');
- String templatesPath = path.join(Cache.flutterRoot, 'packages', 'flutter_tools', 'templates', 'build-ios');
- copyFolderSync(templatesPath, xcodeProjectPath);
-
- // Step 2: Populate the Generated.xcconfig with project specific paths
- updateXcodeGeneratedProperties(flutterProjectPath, mode, target);
-
- // Step 3: Write the REVISION file
- File revisionFile = new File(path.join(xcodeProjectPath, 'REVISION'));
- revisionFile.createSync();
- revisionFile.writeAsStringSync(_getCurrentXcodeRevisionString(mode, target));
-
- // Step 4: Tell the user the location of the generated project.
- printStatus('Xcode project created in $iosFilesPath/.');
-
- return 0;
-}
-
-String _getCurrentXcodeRevisionString(BuildMode mode, String target) => (new StringBuffer()
- ..write('${FlutterVersion.getVersion().frameworkRevision}')
- ..write('-${tools.isLocalEngine ? tools.engineBuildPath : getModeName(mode)}')
- ..write('::$target')
- ).toString();
diff --git a/packages/flutter_tools/lib/src/run.dart b/packages/flutter_tools/lib/src/run.dart
index efa7ce2..c5805cf 100644
--- a/packages/flutter_tools/lib/src/run.dart
+++ b/packages/flutter_tools/lib/src/run.dart
@@ -413,7 +413,7 @@
case TargetPlatform.android_x64:
return 'Is your project missing an android/AndroidManifest.xml?\nConsider running "flutter create ." to create one.';
case TargetPlatform.ios:
- return 'Is your project missing an ios/Info.plist?\nConsider running "flutter create ." to create one.';
+ return 'Is your project missing an ios/Runner/Info.plist?\nConsider running "flutter create ." to create one.';
default:
return null;
}
diff --git a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.pbxproj b/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.pbxproj
deleted file mode 100644
index 0579cd5..0000000
--- a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,396 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 976042271CFB91C5006EFB43 /* Flutter.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 976042261CFB91C5006EFB43 /* Flutter.xcconfig */; };
- 9760422B1CFB925B006EFB43 /* app.flx in Resources */ = {isa = PBXBuildFile; fileRef = 976042281CFB925B006EFB43 /* app.flx */; };
- 9760422D1CFB925B006EFB43 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9760422A1CFB925B006EFB43 /* Flutter.framework */; };
- 9760422E1CFB92B0006EFB43 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9760422A1CFB925B006EFB43 /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 9766DC6F1CFB93D50041C027 /* app.dylib in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9766DC6D1CFB93C80041C027 /* app.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
- 9E07CFA91BE8280A00BCD8DE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9E07CFA81BE8280A00BCD8DE /* Assets.xcassets */; };
- 9E07CFBA1BE82DFF00BCD8DE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E07CF9D1BE8280A00BCD8DE /* main.m */; };
- 9EA2FB801C6D2D6B00670B03 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9EA2FB7F1C6D2D6B00670B03 /* LaunchScreen.storyboard */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 9E07CFB91BE82D2600BCD8DE /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- 9766DC6F1CFB93D50041C027 /* app.dylib in Embed Frameworks */,
- 9760422E1CFB92B0006EFB43 /* Flutter.framework in Embed Frameworks */,
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 976042261CFB91C5006EFB43 /* Flutter.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Flutter.xcconfig; path = Flutter/Flutter.xcconfig; sourceTree = "<group>"; };
- 976042281CFB925B006EFB43 /* app.flx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = app.flx; path = Flutter/app.flx; sourceTree = "<group>"; };
- 9760422A1CFB925B006EFB43 /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
- 9766DC6D1CFB93C80041C027 /* app.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = app.dylib; path = Flutter/app.dylib; sourceTree = "<group>"; };
- 9E07CF9A1BE8280A00BCD8DE /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 9E07CF9D1BE8280A00BCD8DE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 9E07CFA81BE8280A00BCD8DE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = ../Assets.xcassets; sourceTree = SOURCE_ROOT; };
- 9E07CFAD1BE8280A00BCD8DE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../Info.plist; sourceTree = SOURCE_ROOT; };
- 9EA2FB7F1C6D2D6B00670B03 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ../LaunchScreen.storyboard; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 9E07CF971BE8280A00BCD8DE /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 9760422D1CFB925B006EFB43 /* Flutter.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 976042251CFB918B006EFB43 /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 9766DC6D1CFB93C80041C027 /* app.dylib */,
- 976042281CFB925B006EFB43 /* app.flx */,
- 9760422A1CFB925B006EFB43 /* Flutter.framework */,
- 976042261CFB91C5006EFB43 /* Flutter.xcconfig */,
- );
- name = Flutter;
- sourceTree = "<group>";
- };
- 9E07CF7C1BE7F4D200BCD8DE = {
- isa = PBXGroup;
- children = (
- 976042251CFB918B006EFB43 /* Flutter */,
- 9E07CF9B1BE8280A00BCD8DE /* Runner */,
- 9E07CF871BE7F4D200BCD8DE /* Products */,
- );
- sourceTree = "<group>";
- };
- 9E07CF871BE7F4D200BCD8DE /* Products */ = {
- isa = PBXGroup;
- children = (
- 9E07CF9A1BE8280A00BCD8DE /* Runner.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 9E07CF9B1BE8280A00BCD8DE /* Runner */ = {
- isa = PBXGroup;
- children = (
- 9E07CFA81BE8280A00BCD8DE /* Assets.xcassets */,
- 9EA2FB7F1C6D2D6B00670B03 /* LaunchScreen.storyboard */,
- 9E07CFAD1BE8280A00BCD8DE /* Info.plist */,
- 9E07CF9C1BE8280A00BCD8DE /* Supporting Files */,
- );
- path = Runner;
- sourceTree = "<group>";
- };
- 9E07CF9C1BE8280A00BCD8DE /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 9E07CF9D1BE8280A00BCD8DE /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 9E07CF991BE8280A00BCD8DE /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 9E07CFB01BE8280A00BCD8DE /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 977A86B01CF4C31F00432945 /* ShellScript */,
- 9E07CF961BE8280A00BCD8DE /* Sources */,
- 9E07CF971BE8280A00BCD8DE /* Frameworks */,
- 9E07CF981BE8280A00BCD8DE /* Resources */,
- 9E07CFB91BE82D2600BCD8DE /* Embed Frameworks */,
- 9EA2FB831C6E940F00670B03 /* Copy Native Service Assets */,
- 9E046CD71C9CA1AC00A1E391 /* Copy Extra Assets */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Runner;
- productName = Runner;
- productReference = 9E07CF9A1BE8280A00BCD8DE /* Runner.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 9E07CF7D1BE7F4D200BCD8DE /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0710;
- ORGANIZATIONNAME = Flutter;
- TargetAttributes = {
- 9E07CF991BE8280A00BCD8DE = {
- CreatedOnToolsVersion = 7.1;
- };
- };
- };
- buildConfigurationList = 9E07CF801BE7F4D200BCD8DE /* Build configuration list for PBXProject "FlutterApplication" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 9E07CF7C1BE7F4D200BCD8DE;
- productRefGroup = 9E07CF871BE7F4D200BCD8DE /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 9E07CF991BE8280A00BCD8DE /* Runner */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 9E07CF981BE8280A00BCD8DE /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 9760422B1CFB925B006EFB43 /* app.flx in Resources */,
- 976042271CFB91C5006EFB43 /* Flutter.xcconfig in Resources */,
- 9EA2FB801C6D2D6B00670B03 /* LaunchScreen.storyboard in Resources */,
- 9E07CFA91BE8280A00BCD8DE /* Assets.xcassets in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 977A86B01CF4C31F00432945 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh $FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh";
- };
- 9E046CD71C9CA1AC00A1E391 /* Copy Extra Assets */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Copy Extra Assets";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "RESOURCES_DIR=${SOURCE_ROOT}/../Resources\nAPPLICATION_BUNDLE=${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\n\nshopt -s dotglob\n\nif [ -d \"${RESOURCES_DIR}\" ]; then\n ditto ${RESOURCES_DIR}/ ${APPLICATION_BUNDLE}\nfi\n";
- showEnvVarsInLog = 0;
- };
- 9EA2FB831C6E940F00670B03 /* Copy Native Service Assets */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Copy Native Service Assets";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "SERVICE_FRAMEWORKS_DIR=${SOURCE_ROOT}/Frameworks\nSERVICE_DEFINITIONS=${SOURCE_ROOT}/ServiceDefinitions.json\nAPPLICATION_BUNDLE=${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\n\n# Copy Service Dylibs\nif [ -d \"${SERVICE_FRAMEWORKS_DIR}\" ]; then\nditto ${SERVICE_FRAMEWORKS_DIR} ${APPLICATION_BUNDLE}/Frameworks\nfi\n\nif [[ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" ]]; then\n\n# Codesign Service Dylibs if an identity is provided.\nDYLIBS=\"${APPLICATION_BUNDLE}/Frameworks/*.dylib\"\nfor dylib in $DYLIBS; do\nxcrun codesign \\\n --force \\\n --sign ${EXPANDED_CODE_SIGN_IDENTITY} \\\n --preserve-metadata=identifier,entitlements \\\n --timestamp=none \\\n \"${dylib}\" \\\n\ndone\n\nfi\n\n# Copy Service Definitions\nif [ -f \"${SERVICE_DEFINITIONS}\" ]; then\ncp ${SERVICE_DEFINITIONS} ${APPLICATION_BUNDLE}/\nfi\n";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 9E07CF961BE8280A00BCD8DE /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 9E07CFBA1BE82DFF00BCD8DE /* main.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 9E07CF8C1BE7F4D200BCD8DE /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 976042261CFB91C5006EFB43 /* Flutter.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_BITCODE = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VERSIONING_SYSTEM = "apple-generic";
- VERSION_INFO_PREFIX = "";
- };
- name = Debug;
- };
- 9E07CF8D1BE7F4D200BCD8DE /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 976042261CFB91C5006EFB43 /* Flutter.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_BITCODE = NO;
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = "";
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- VERSIONING_SYSTEM = "apple-generic";
- VERSION_INFO_PREFIX = "";
- };
- name = Release;
- };
- 9E07CFAE1BE8280A00BCD8DE /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 976042261CFB91C5006EFB43 /* Flutter.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Tools/common",
- "$(PROJECT_DIR)/Flutter",
- );
- INFOPLIST_FILE = ../Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/FlutterApplication/Generated",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 9E07CFAF1BE8280A00BCD8DE /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 976042261CFB91C5006EFB43 /* Flutter.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Tools/common",
- "$(PROJECT_DIR)/Flutter",
- );
- INFOPLIST_FILE = ../Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/FlutterApplication/Generated",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 9E07CF801BE7F4D200BCD8DE /* Build configuration list for PBXProject "FlutterApplication" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 9E07CF8C1BE7F4D200BCD8DE /* Debug */,
- 9E07CF8D1BE7F4D200BCD8DE /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 9E07CFB01BE8280A00BCD8DE /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 9E07CFAE1BE8280A00BCD8DE /* Debug */,
- 9E07CFAF1BE8280A00BCD8DE /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 9E07CF7D1BE7F4D200BCD8DE /* Project object */;
-}
diff --git a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Application.xcscheme b/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Application.xcscheme
deleted file mode 100644
index 935ff09..0000000
--- a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Application.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
- LastUpgradeVersion = "0720"
- version = "1.3">
- <BuildAction
- parallelizeBuildables = "YES"
- buildImplicitDependencies = "YES">
- <BuildActionEntries>
- <BuildActionEntry
- buildForTesting = "YES"
- buildForRunning = "YES"
- buildForProfiling = "YES"
- buildForArchiving = "YES"
- buildForAnalyzing = "YES">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF991BE8280A00BCD8DE"
- BuildableName = "Runner.app"
- BlueprintName = "Runner"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </BuildActionEntry>
- </BuildActionEntries>
- </BuildAction>
- <TestAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
- <Testables>
- </Testables>
- <MacroExpansion>
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF991BE8280A00BCD8DE"
- BuildableName = "Runner.app"
- BlueprintName = "Runner"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </MacroExpansion>
- <AdditionalOptions>
- </AdditionalOptions>
- </TestAction>
- <LaunchAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- launchStyle = "0"
- useCustomWorkingDirectory = "NO"
- ignoresPersistentStateOnLaunch = "NO"
- debugDocumentVersioning = "YES"
- debugServiceExtension = "internal"
- allowLocationSimulation = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF991BE8280A00BCD8DE"
- BuildableName = "Runner.app"
- BlueprintName = "Runner"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- <CommandLineArguments>
- <CommandLineArgument
- argument = "--no-redirect-to-syslog"
- isEnabled = "YES">
- </CommandLineArgument>
- <CommandLineArgument
- argument = "--observatory-port=8181"
- isEnabled = "YES">
- </CommandLineArgument>
- </CommandLineArguments>
- <AdditionalOptions>
- </AdditionalOptions>
- </LaunchAction>
- <ProfileAction
- buildConfiguration = "Release"
- shouldUseLaunchSchemeArgsEnv = "YES"
- savedToolIdentifier = ""
- useCustomWorkingDirectory = "NO"
- debugDocumentVersioning = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF991BE8280A00BCD8DE"
- BuildableName = "Runner.app"
- BlueprintName = "Runner"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- </ProfileAction>
- <AnalyzeAction
- buildConfiguration = "Debug">
- </AnalyzeAction>
- <ArchiveAction
- buildConfiguration = "Release"
- revealArchiveInOrganizer = "YES">
- </ArchiveAction>
-</Scheme>
diff --git a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme
deleted file mode 100644
index a845812..0000000
--- a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
- LastUpgradeVersion = "0720"
- version = "1.3">
- <BuildAction
- parallelizeBuildables = "YES"
- buildImplicitDependencies = "YES">
- <BuildActionEntries>
- <BuildActionEntry
- buildForTesting = "YES"
- buildForRunning = "YES"
- buildForProfiling = "YES"
- buildForArchiving = "YES"
- buildForAnalyzing = "YES">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF851BE7F4D200BCD8DE"
- BuildableName = "FlutterApplication.framework"
- BlueprintName = "FlutterApplication"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </BuildActionEntry>
- </BuildActionEntries>
- </BuildAction>
- <TestAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
- <Testables>
- </Testables>
- <AdditionalOptions>
- </AdditionalOptions>
- </TestAction>
- <LaunchAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- launchStyle = "0"
- useCustomWorkingDirectory = "NO"
- ignoresPersistentStateOnLaunch = "NO"
- debugDocumentVersioning = "YES"
- debugServiceExtension = "internal"
- allowLocationSimulation = "YES">
- <MacroExpansion>
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF851BE7F4D200BCD8DE"
- BuildableName = "FlutterApplication.framework"
- BlueprintName = "FlutterApplication"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </MacroExpansion>
- <AdditionalOptions>
- </AdditionalOptions>
- </LaunchAction>
- <ProfileAction
- buildConfiguration = "Release"
- shouldUseLaunchSchemeArgsEnv = "YES"
- savedToolIdentifier = ""
- useCustomWorkingDirectory = "NO"
- debugDocumentVersioning = "YES">
- <MacroExpansion>
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "9E07CF851BE7F4D200BCD8DE"
- BuildableName = "FlutterApplication.framework"
- BlueprintName = "FlutterApplication"
- ReferencedContainer = "container:FlutterApplication.xcodeproj">
- </BuildableReference>
- </MacroExpansion>
- </ProfileAction>
- <AnalyzeAction
- buildConfiguration = "Debug">
- </AnalyzeAction>
- <ArchiveAction
- buildConfiguration = "Release"
- revealArchiveInOrganizer = "YES">
- </ArchiveAction>
-</Scheme>
diff --git a/packages/flutter_tools/templates/build-ios/Runner/main.m b/packages/flutter_tools/templates/build-ios/Runner/main.m
deleted file mode 100644
index 1ddb5c2..0000000
--- a/packages/flutter_tools/templates/build-ios/Runner/main.m
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2016 The Chromium 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 <UIKit/UIKit.h>
-#import <Flutter/Flutter.h>
-
-int main(int argc, const char* argv[]) {
- FlutterInit(argc, argv);
- return UIApplicationMain(argc, (char**)argv, nil,
- NSStringFromClass([FlutterAppDelegate class]));
-}
diff --git a/packages/flutter_tools/templates/create/ios.tmpl/.gitignore b/packages/flutter_tools/templates/create/ios.tmpl/.gitignore
new file mode 100644
index 0000000..fc39465
--- /dev/null
+++ b/packages/flutter_tools/templates/create/ios.tmpl/.gitignore
@@ -0,0 +1,38 @@
+.idea/
+.vagrant/
+.sconsign.dblite
+.svn/
+
+.DS_Store
+*.swp
+*.lock
+profile
+
+DerivedData/
+build/
+
+*.pbxuser
+*.mode1v3
+*.mode2v3
+*.perspectivev3
+
+!default.pbxuser
+!default.mode1v3
+!default.mode2v3
+!default.perspectivev3
+
+xcuserdata
+
+*.moved-aside
+
+*.pyc
+*sync/
+Icon?
+.tags*
+
+/Flutter/app.flx
+/Flutter/app.dylib
+/Flutter/app.zip
+/Flutter/Flutter.framework
+/Flutter/Generated.xcconfig
+/ServiceDefinitions.json
diff --git a/packages/flutter_tools/templates/build-ios/Flutter/Flutter.xcconfig b/packages/flutter_tools/templates/create/ios.tmpl/Flutter/Flutter.xcconfig
similarity index 100%
rename from packages/flutter_tools/templates/build-ios/Flutter/Flutter.xcconfig
rename to packages/flutter_tools/templates/create/ios.tmpl/Flutter/Flutter.xcconfig
diff --git a/packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.pbxproj b/packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..8e904dc
--- /dev/null
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,381 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 9705A1C51CF9049000538489 /* app.dylib in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEB81CF902C7004384FC /* app.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
+ 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
+ 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 9740EEB41CF90195004384FC /* Flutter.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Flutter.xcconfig */; };
+ 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; };
+ 9740EEBB1CF902C7004384FC /* app.flx in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB71CF902C7004384FC /* app.flx */; };
+ 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
+ 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 */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ 9705A1C51CF9049000538489 /* app.dylib in Embed Frameworks */,
+ 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 9740EEB21CF90195004384FC /* Flutter.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Flutter.xcconfig; path = Flutter/Flutter.xcconfig; sourceTree = "<group>"; };
+ 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+ 9740EEB71CF902C7004384FC /* app.flx */ = {isa = PBXFileReference; lastKnownFileType = file; name = app.flx; path = Flutter/app.flx; sourceTree = "<group>"; };
+ 9740EEB81CF902C7004384FC /* app.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = app.dylib; path = Flutter/app.dylib; sourceTree = "<group>"; };
+ 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
+ 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+ 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 97C146EB1CF9000F007C117D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 9740EEB11CF90186004384FC /* Flutter */ = {
+ isa = PBXGroup;
+ children = (
+ 9740EEB71CF902C7004384FC /* app.flx */,
+ 9740EEB81CF902C7004384FC /* app.dylib */,
+ 9740EEBA1CF902C7004384FC /* Flutter.framework */,
+ 9740EEB21CF90195004384FC /* Flutter.xcconfig */,
+ 9740EEB31CF90195004384FC /* Generated.xcconfig */,
+ );
+ name = Flutter;
+ sourceTree = "<group>";
+ };
+ 97C146E51CF9000F007C117D = {
+ isa = PBXGroup;
+ children = (
+ 9740EEB11CF90186004384FC /* Flutter */,
+ 97C146F01CF9000F007C117D /* Runner */,
+ 97C146EF1CF9000F007C117D /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 97C146EF1CF9000F007C117D /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 97C146EE1CF9000F007C117D /* Runner.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 97C146F01CF9000F007C117D /* Runner */ = {
+ isa = PBXGroup;
+ children = (
+ 97C146FA1CF9000F007C117D /* Main.storyboard */,
+ 97C146FD1CF9000F007C117D /* Assets.xcassets */,
+ 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+ 97C147021CF9000F007C117D /* Info.plist */,
+ 97C146F11CF9000F007C117D /* Supporting Files */,
+ );
+ path = Runner;
+ sourceTree = "<group>";
+ };
+ 97C146F11CF9000F007C117D /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 97C146F21CF9000F007C117D /* main.m */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 97C146ED1CF9000F007C117D /* Runner */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+ buildPhases = (
+ 9740EEB61CF901F6004384FC /* ShellScript */,
+ 97C146EA1CF9000F007C117D /* Sources */,
+ 97C146EB1CF9000F007C117D /* Frameworks */,
+ 97C146EC1CF9000F007C117D /* Resources */,
+ 9705A1C41CF9048500538489 /* Embed Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Runner;
+ productName = Runner;
+ productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 97C146E61CF9000F007C117D /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0730;
+ ORGANIZATIONNAME = "The Chromium Authors";
+ TargetAttributes = {
+ 97C146ED1CF9000F007C117D = {
+ CreatedOnToolsVersion = 7.3.1;
+ };
+ };
+ };
+ buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 97C146E51CF9000F007C117D;
+ productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 97C146ED1CF9000F007C117D /* Runner */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 97C146EC1CF9000F007C117D /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9740EEBB1CF902C7004384FC /* app.flx in Resources */,
+ 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+ 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */,
+ 9740EEB41CF90195004384FC /* Flutter.xcconfig in Resources */,
+ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 9740EEB61CF901F6004384FC /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "/bin/sh $FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 97C146EA1CF9000F007C117D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 97C146F31CF9000F007C117D /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 97C146FB1CF9000F007C117D /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "<group>";
+ };
+ 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 97C147001CF9000F007C117D /* Base */,
+ );
+ name = LaunchScreen.storyboard;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 97C147031CF9000F007C117D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Flutter.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 97C147041CF9000F007C117D /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Flutter.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 97C147061CF9000F007C117D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Flutter.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ENABLE_BITCODE = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Flutter",
+ );
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Flutter",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.Runner;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ 97C147071CF9000F007C117D /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Flutter.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ENABLE_BITCODE = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Flutter",
+ );
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Flutter",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.Runner;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 97C147031CF9000F007C117D /* Debug */,
+ 97C147041CF9000F007C117D /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 97C147061CF9000F007C117D /* Debug */,
+ 97C147071CF9000F007C117D /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 66%
rename from packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 560d61a..6cec59c 100644
--- a/packages/flutter_tools/templates/build-ios/FlutterApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
- location = "self:FlutterApplication.xcodeproj">
+ location = "self:Runner.xcodeproj">
</FileRef>
</Workspace>
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Contents.json b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Contents.json
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-60@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-60@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-60@3x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-60@3x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-76.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-76.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-76@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-76@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-83.5@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-83.5@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40@3x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small-40@3x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small@3x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/Icon-Small@3x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_128x128.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_128x128.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_128x128.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_128x128.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_128x128@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_128x128@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_16x16.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_16x16.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_16x16.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_16x16.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_16x16@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_16x16@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_256x256.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_256x256.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_256x256.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_256x256.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_256x256@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_256x256@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_32x32.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_32x32.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_32x32.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_32x32.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_32x32@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_32x32@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_512x512.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_512x512.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_512x512.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_512x512.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_512x512@2x.png b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png
similarity index 100%
rename from packages/flutter_tools/templates/create/ios/Assets.xcassets.tmpl/AppIcon.appiconset/icon_512x512@2x.png
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png
Binary files differ
diff --git a/packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/LaunchScreen.storyboard
similarity index 84%
rename from packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/LaunchScreen.storyboard
index 78686cd..ebf48f6 100644
--- a/packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/LaunchScreen.storyboard
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--View Controller-->
diff --git a/packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/Main.storyboard
similarity index 63%
copy from packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl
copy to packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/Main.storyboard
index 78686cd..f56d2f3 100644
--- a/packages/flutter_tools/templates/create/ios/LaunchScreen.storyboard.tmpl
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Base.lproj/Main.storyboard
@@ -1,27 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
- <deployment identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/>
</dependencies>
<scenes>
<!--View Controller-->
- <scene sceneID="EHf-IW-A2E">
+ <scene sceneID="tne-QT-ifu">
<objects>
- <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+ <viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
<layoutGuides>
- <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
- <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
+ <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+ <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
- <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+ <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
diff --git a/packages/flutter_tools/templates/create/ios/Info.plist.tmpl b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Info.plist.tmpl
similarity index 89%
rename from packages/flutter_tools/templates/create/ios/Info.plist.tmpl
rename to packages/flutter_tools/templates/create/ios.tmpl/Runner/Info.plist.tmpl
index 88a6066..9e12532 100644
--- a/packages/flutter_tools/templates/create/ios/Info.plist.tmpl
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner/Info.plist.tmpl
@@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
- <string>Runner</string>
+ <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>{{iosIdentifier}}</string>
<key>CFBundleInfoDictionaryVersion</key>
@@ -24,6 +24,8 @@
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
+ <key>UIMainStoryboardFile</key>
+ <string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
@@ -41,7 +43,7 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
- <key>UIViewControllerBasedStatusBarAppearance</key>
- <false/>
+ <key>UIViewControllerBasedStatusBarAppearance</key>
+ <false/>
</dict>
</plist>
diff --git a/packages/flutter_tools/templates/create/ios.tmpl/Runner/main.m b/packages/flutter_tools/templates/create/ios.tmpl/Runner/main.m
new file mode 100644
index 0000000..f43358c
--- /dev/null
+++ b/packages/flutter_tools/templates/create/ios.tmpl/Runner/main.m
@@ -0,0 +1,14 @@
+// Copyright 2016 The Chromium 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 <UIKit/UIKit.h>
+#import <Flutter/Flutter.h>
+
+int main(int argc, char * argv[]) {
+ FlutterInit(argc, (const char**)argv);
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil,
+ NSStringFromClass([FlutterAppDelegate class]));
+ }
+}