Revert "Check Xcode build setting FULL_PRODUCT_NAME for the name of the built app during flutter run (#47266)" (#47568)
This reverts commit 648a5d8a1ebbe95a6f0fa1c41ed34195c11c4d64.
This commit is contained in:
parent
88cd1135bf
commit
85e9be36bf
@ -44,7 +44,7 @@ Future<void> main() async {
|
|||||||
'build',
|
'build',
|
||||||
'ios',
|
'ios',
|
||||||
'iphoneos',
|
'iphoneos',
|
||||||
'hello.app',
|
'Runner.app',
|
||||||
));
|
));
|
||||||
|
|
||||||
if (!exists(ephemeralReleaseHostApp)) {
|
if (!exists(ephemeralReleaseHostApp)) {
|
||||||
@ -84,7 +84,7 @@ Future<void> main() async {
|
|||||||
'build',
|
'build',
|
||||||
'ios',
|
'ios',
|
||||||
'iphoneos',
|
'iphoneos',
|
||||||
'hello.app',
|
'Runner.app',
|
||||||
));
|
));
|
||||||
|
|
||||||
if (!exists(ephemeralProfileHostApp)) {
|
if (!exists(ephemeralProfileHostApp)) {
|
||||||
@ -123,7 +123,7 @@ Future<void> main() async {
|
|||||||
'build',
|
'build',
|
||||||
'ios',
|
'ios',
|
||||||
'iphonesimulator',
|
'iphonesimulator',
|
||||||
'hello.app',
|
'Runner.app',
|
||||||
));
|
));
|
||||||
|
|
||||||
if (!exists(ephemeralDebugHostApp)) {
|
if (!exists(ephemeralDebugHostApp)) {
|
||||||
@ -178,7 +178,7 @@ Future<void> main() async {
|
|||||||
'build',
|
'build',
|
||||||
'ios',
|
'ios',
|
||||||
'iphoneos',
|
'iphoneos',
|
||||||
'hello.app',
|
'Runner.app',
|
||||||
)));
|
)));
|
||||||
|
|
||||||
if (!ephemeralHostAppWithCocoaPodsBuilt) {
|
if (!ephemeralHostAppWithCocoaPodsBuilt) {
|
||||||
@ -223,7 +223,7 @@ Future<void> main() async {
|
|||||||
'build',
|
'build',
|
||||||
'ios',
|
'ios',
|
||||||
'iphoneos',
|
'iphoneos',
|
||||||
'hello.app',
|
'Runner.app',
|
||||||
)));
|
)));
|
||||||
|
|
||||||
if (!editableHostAppBuilt) {
|
if (!editableHostAppBuilt) {
|
||||||
|
@ -410,15 +410,7 @@ class CompileTest {
|
|||||||
watch.start();
|
watch.start();
|
||||||
await flutter('build', options: options);
|
await flutter('build', options: options);
|
||||||
watch.stop();
|
watch.stop();
|
||||||
final Directory appBuildDirectory = dir(path.join(cwd, 'build/ios/Release-iphoneos'));
|
final String appPath = '$cwd/build/ios/Release-iphoneos/Runner.app/';
|
||||||
final Directory appBundle = appBuildDirectory
|
|
||||||
.listSync()
|
|
||||||
.whereType<Directory>()
|
|
||||||
.singleWhere((Directory directory) => path.extension(directory.path) == '.app', orElse: () => null);
|
|
||||||
if (appBundle == null) {
|
|
||||||
throw 'Failed to find app bundle in ${appBuildDirectory.path}';
|
|
||||||
}
|
|
||||||
final String appPath = appBundle.path;
|
|
||||||
// IPAs are created manually, https://flutter.dev/ios-release/
|
// IPAs are created manually, https://flutter.dev/ios-release/
|
||||||
await exec('tar', <String>['-zcf', 'build/app.ipa', appPath]);
|
await exec('tar', <String>['-zcf', 'build/app.ipa', appPath]);
|
||||||
releaseSizeInBytes = await file('$cwd/build/app.ipa').length();
|
releaseSizeInBytes = await file('$cwd/build/app.ipa').length();
|
||||||
|
@ -341,6 +341,7 @@ ThinFramework() {
|
|||||||
local framework_dir="$1"
|
local framework_dir="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
local plist_path="${framework_dir}/Info.plist"
|
||||||
local executable="$(GetFrameworkExecutablePath "${framework_dir}")"
|
local executable="$(GetFrameworkExecutablePath "${framework_dir}")"
|
||||||
LipoExecutable "${executable}" "$@"
|
LipoExecutable "${executable}" "$@"
|
||||||
}
|
}
|
||||||
@ -373,7 +374,7 @@ EmbedFlutterFrameworks() {
|
|||||||
|
|
||||||
# Embed App.framework from Flutter into the app (after creating the Frameworks directory
|
# Embed App.framework from Flutter into the app (after creating the Frameworks directory
|
||||||
# if it doesn't already exist).
|
# if it doesn't already exist).
|
||||||
local xcode_frameworks_dir=${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}
|
local xcode_frameworks_dir=${BUILT_PRODUCTS_DIR}"/"${PRODUCT_NAME}".app/Frameworks"
|
||||||
RunCommand mkdir -p -- "${xcode_frameworks_dir}"
|
RunCommand mkdir -p -- "${xcode_frameworks_dir}"
|
||||||
RunCommand cp -Rv -- "${flutter_ios_out_folder}/App.framework" "${xcode_frameworks_dir}"
|
RunCommand cp -Rv -- "${flutter_ios_out_folder}/App.framework" "${xcode_frameworks_dir}"
|
||||||
|
|
||||||
|
@ -358,21 +358,18 @@ abstract class IOSApp extends ApplicationPackage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class BuildableIOSApp extends IOSApp {
|
class BuildableIOSApp extends IOSApp {
|
||||||
BuildableIOSApp(this.project, String projectBundleId, this._hostAppBundleName)
|
BuildableIOSApp(this.project, String projectBundleId)
|
||||||
: super(projectBundleId: projectBundleId);
|
: super(projectBundleId: projectBundleId);
|
||||||
|
|
||||||
static Future<BuildableIOSApp> fromProject(IosProject project) async {
|
static Future<BuildableIOSApp> fromProject(IosProject project) async {
|
||||||
final String projectBundleId = await project.productBundleIdentifier;
|
final String projectBundleId = await project.productBundleIdentifier;
|
||||||
final String hostAppBundleName = await project.hostAppBundleName;
|
return BuildableIOSApp(project, projectBundleId);
|
||||||
return BuildableIOSApp(project, projectBundleId, hostAppBundleName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final IosProject project;
|
final IosProject project;
|
||||||
|
|
||||||
final String _hostAppBundleName;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get name => _hostAppBundleName;
|
String get name => project.hostAppBundleName;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get simulatorBundlePath => _buildAppPath('iphonesimulator');
|
String get simulatorBundlePath => _buildAppPath('iphonesimulator');
|
||||||
@ -381,7 +378,7 @@ class BuildableIOSApp extends IOSApp {
|
|||||||
String get deviceBundlePath => _buildAppPath('iphoneos');
|
String get deviceBundlePath => _buildAppPath('iphoneos');
|
||||||
|
|
||||||
String _buildAppPath(String type) {
|
String _buildAppPath(String type) {
|
||||||
return fs.path.join(getIosBuildDirectory(), type, _hostAppBundleName);
|
return fs.path.join(getIosBuildDirectory(), type, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -736,7 +736,7 @@ bool upgradePbxProjWithFlutterAssets(IosProject project) {
|
|||||||
final Match match = oldAssets.firstMatch(line);
|
final Match match = oldAssets.firstMatch(line);
|
||||||
if (match != null) {
|
if (match != null) {
|
||||||
if (printedStatuses.add(match.group(1))) {
|
if (printedStatuses.add(match.group(1))) {
|
||||||
printStatus('Removing obsolete reference to ${match.group(1)} from ${project.xcodeProject?.basename}');
|
printStatus('Removing obsolete reference to ${match.group(1)} from ${project.hostAppBundleName}');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
buffer.writeln(line);
|
buffer.writeln(line);
|
||||||
|
@ -622,8 +622,9 @@ class _IOSSimulatorLogReader extends DeviceLogReader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Match the log prefix (in order to shorten it):
|
// Match the log prefix (in order to shorten it):
|
||||||
// * Xcode 9: 2017-09-13 15:26:57.228948-0700 localhost My App[37195]: (Flutter) Observatory listening on http://127.0.0.1:57701/
|
// * Xcode 8: Sep 13 15:28:51 cbracken-macpro localhost Runner[37195]: (Flutter) Observatory listening on http://127.0.0.1:57701/
|
||||||
static final RegExp _mapRegex = RegExp(r'\S+ +\S+ +(?:\S+) (.+?(?=\[))\[\d+\]\)?: (\(.*?\))? *(.*)$');
|
// * Xcode 9: 2017-09-13 15:26:57.228948-0700 localhost Runner[37195]: (Flutter) Observatory listening on http://127.0.0.1:57701/
|
||||||
|
static final RegExp _mapRegex = RegExp(r'\S+ +\S+ +\S+ +(\S+ +)?(\S+)\[\d+\]\)?: (\(.*?\))? *(.*)$');
|
||||||
|
|
||||||
// Jan 31 19:23:28 --- last message repeated 1 time ---
|
// Jan 31 19:23:28 --- last message repeated 1 time ---
|
||||||
static final RegExp _lastMessageSingleRegex = RegExp(r'\S+ +\S+ +\S+ --- last message repeated 1 time ---$');
|
static final RegExp _lastMessageSingleRegex = RegExp(r'\S+ +\S+ +\S+ --- last message repeated 1 time ---$');
|
||||||
@ -634,9 +635,9 @@ class _IOSSimulatorLogReader extends DeviceLogReader {
|
|||||||
String _filterDeviceLine(String string) {
|
String _filterDeviceLine(String string) {
|
||||||
final Match match = _mapRegex.matchAsPrefix(string);
|
final Match match = _mapRegex.matchAsPrefix(string);
|
||||||
if (match != null) {
|
if (match != null) {
|
||||||
final String category = match.group(1);
|
final String category = match.group(2);
|
||||||
final String tag = match.group(2);
|
final String tag = match.group(3);
|
||||||
final String content = match.group(3);
|
final String content = match.group(4);
|
||||||
|
|
||||||
// Filter out non-Flutter originated noise from the engine.
|
// Filter out non-Flutter originated noise from the engine.
|
||||||
if (_appName != null && category != _appName) {
|
if (_appName != null && category != _appName) {
|
||||||
|
@ -309,7 +309,7 @@ class IosProject implements XcodeBasedProject {
|
|||||||
|
|
||||||
static final RegExp _productBundleIdPattern = RegExp(r'''^\s*PRODUCT_BUNDLE_IDENTIFIER\s*=\s*(["']?)(.*?)\1;\s*$''');
|
static final RegExp _productBundleIdPattern = RegExp(r'''^\s*PRODUCT_BUNDLE_IDENTIFIER\s*=\s*(["']?)(.*?)\1;\s*$''');
|
||||||
static const String _productBundleIdVariable = r'$(PRODUCT_BUNDLE_IDENTIFIER)';
|
static const String _productBundleIdVariable = r'$(PRODUCT_BUNDLE_IDENTIFIER)';
|
||||||
static const String _hostAppProjectName = 'Runner';
|
static const String _hostAppBundleName = 'Runner';
|
||||||
|
|
||||||
Directory get ephemeralDirectory => parent.directory.childDirectory('.ios');
|
Directory get ephemeralDirectory => parent.directory.childDirectory('.ios');
|
||||||
Directory get _editableDirectory => parent.directory.childDirectory('ios');
|
Directory get _editableDirectory => parent.directory.childDirectory('ios');
|
||||||
@ -330,6 +330,9 @@ class IosProject implements XcodeBasedProject {
|
|||||||
/// a Flutter module with an editable host app.
|
/// a Flutter module with an editable host app.
|
||||||
Directory get _flutterLibRoot => isModule ? ephemeralDirectory : _editableDirectory;
|
Directory get _flutterLibRoot => isModule ? ephemeralDirectory : _editableDirectory;
|
||||||
|
|
||||||
|
/// The bundle name of the host app, `Runner.app`.
|
||||||
|
String get hostAppBundleName => '$_hostAppBundleName.app';
|
||||||
|
|
||||||
/// True, if the parent Flutter project is a module project.
|
/// True, if the parent Flutter project is a module project.
|
||||||
bool get isModule => parent.isModule;
|
bool get isModule => parent.isModule;
|
||||||
|
|
||||||
@ -352,19 +355,19 @@ class IosProject implements XcodeBasedProject {
|
|||||||
File get podManifestLock => hostAppRoot.childDirectory('Pods').childFile('Manifest.lock');
|
File get podManifestLock => hostAppRoot.childDirectory('Pods').childFile('Manifest.lock');
|
||||||
|
|
||||||
/// The 'Info.plist' file of the host app.
|
/// The 'Info.plist' file of the host app.
|
||||||
File get hostInfoPlist => hostAppRoot.childDirectory(_hostAppProjectName).childFile('Info.plist');
|
File get hostInfoPlist => hostAppRoot.childDirectory(_hostAppBundleName).childFile('Info.plist');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get symlinks => _flutterLibRoot.childDirectory('.symlinks');
|
Directory get symlinks => _flutterLibRoot.childDirectory('.symlinks');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get xcodeProject => hostAppRoot.childDirectory('$_hostAppProjectName.xcodeproj');
|
Directory get xcodeProject => hostAppRoot.childDirectory('$_hostAppBundleName.xcodeproj');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
File get xcodeProjectInfoFile => xcodeProject.childFile('project.pbxproj');
|
File get xcodeProjectInfoFile => xcodeProject.childFile('project.pbxproj');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get xcodeWorkspace => hostAppRoot.childDirectory('$_hostAppProjectName.xcworkspace');
|
Directory get xcodeWorkspace => hostAppRoot.childDirectory('$_hostAppBundleName.xcworkspace');
|
||||||
|
|
||||||
/// Xcode workspace shared data directory for the host app.
|
/// Xcode workspace shared data directory for the host app.
|
||||||
Directory get xcodeWorkspaceSharedData => xcodeWorkspace.childDirectory('xcshareddata');
|
Directory get xcodeWorkspaceSharedData => xcodeWorkspace.childDirectory('xcshareddata');
|
||||||
@ -405,26 +408,6 @@ class IosProject implements XcodeBasedProject {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The bundle name of the host app, `My App.app`.
|
|
||||||
Future<String> get hostAppBundleName async {
|
|
||||||
// The product name and bundle name are derived from the display name, which the user
|
|
||||||
// is instructed to change in Xcode as part of deploying to the App Store.
|
|
||||||
// https://flutter.dev/docs/deployment/ios#review-xcode-project-settings
|
|
||||||
// It may be expensive, but the only source of truth for the name is
|
|
||||||
// Xcode's interpretation of the build settings.
|
|
||||||
String productName;
|
|
||||||
if (xcode.xcodeProjectInterpreter.isInstalled) {
|
|
||||||
final Map<String, String> xcodeBuildSettings = await buildSettings;
|
|
||||||
if (xcodeBuildSettings != null) {
|
|
||||||
productName = xcodeBuildSettings['FULL_PRODUCT_NAME'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (productName == null) {
|
|
||||||
printTrace('FULL_PRODUCT_NAME not present, defaulting to $_hostAppProjectName');
|
|
||||||
}
|
|
||||||
return productName ?? '$_hostAppProjectName.app';
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The build settings for the host app of this project, as a detached map.
|
/// The build settings for the host app of this project, as a detached map.
|
||||||
///
|
///
|
||||||
/// Returns null, if iOS tooling is unavailable.
|
/// Returns null, if iOS tooling is unavailable.
|
||||||
@ -432,16 +415,11 @@ class IosProject implements XcodeBasedProject {
|
|||||||
if (!xcode.xcodeProjectInterpreter.isInstalled) {
|
if (!xcode.xcodeProjectInterpreter.isInstalled) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Map<String, String> buildSettings = _buildSettings;
|
_buildSettings ??= await xcode.xcodeProjectInterpreter.getBuildSettings(
|
||||||
buildSettings ??= await xcode.xcodeProjectInterpreter.getBuildSettings(
|
|
||||||
xcodeProject.path,
|
xcodeProject.path,
|
||||||
_hostAppProjectName,
|
_hostAppBundleName,
|
||||||
);
|
);
|
||||||
if (buildSettings != null && buildSettings.isNotEmpty) {
|
return _buildSettings;
|
||||||
// No timeouts, flakes, or errors.
|
|
||||||
_buildSettings = buildSettings;
|
|
||||||
}
|
|
||||||
return buildSettings;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, String> _buildSettings;
|
Map<String, String> _buildSettings;
|
||||||
@ -520,7 +498,7 @@ class IosProject implements XcodeBasedProject {
|
|||||||
Directory get pluginRegistrantHost {
|
Directory get pluginRegistrantHost {
|
||||||
return isModule
|
return isModule
|
||||||
? _flutterLibRoot.childDirectory('Flutter').childDirectory('FlutterPluginRegistrant')
|
? _flutterLibRoot.childDirectory('Flutter').childDirectory('FlutterPluginRegistrant')
|
||||||
: hostAppRoot.childDirectory(_hostAppProjectName);
|
: hostAppRoot.childDirectory(_hostAppBundleName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _overwriteFromTemplate(String path, Directory target) {
|
void _overwriteFromTemplate(String path, Directory target) {
|
||||||
@ -781,7 +759,7 @@ class MacOSProject implements XcodeBasedProject {
|
|||||||
@override
|
@override
|
||||||
final FlutterProject parent;
|
final FlutterProject parent;
|
||||||
|
|
||||||
static const String _hostAppProjectName = 'Runner';
|
static const String _hostAppBundleName = 'Runner';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool existsSync() => _macOSDirectory.existsSync();
|
bool existsSync() => _macOSDirectory.existsSync();
|
||||||
@ -825,13 +803,13 @@ class MacOSProject implements XcodeBasedProject {
|
|||||||
File get podManifestLock => _macOSDirectory.childDirectory('Pods').childFile('Manifest.lock');
|
File get podManifestLock => _macOSDirectory.childDirectory('Pods').childFile('Manifest.lock');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get xcodeProject => _macOSDirectory.childDirectory('$_hostAppProjectName.xcodeproj');
|
Directory get xcodeProject => _macOSDirectory.childDirectory('$_hostAppBundleName.xcodeproj');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
File get xcodeProjectInfoFile => xcodeProject.childFile('project.pbxproj');
|
File get xcodeProjectInfoFile => xcodeProject.childFile('project.pbxproj');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get xcodeWorkspace => _macOSDirectory.childDirectory('$_hostAppProjectName.xcworkspace');
|
Directory get xcodeWorkspace => _macOSDirectory.childDirectory('$_hostAppBundleName.xcworkspace');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Directory get symlinks => ephemeralDirectory.childDirectory('.symlinks');
|
Directory get symlinks => ephemeralDirectory.childDirectory('.symlinks');
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
|
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
|
||||||
97C146EE1CF9000F007C117D /* {{projectName}}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "{{projectName}}.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
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>"; };
|
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>"; };
|
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>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
@ -93,7 +93,7 @@
|
|||||||
97C146EF1CF9000F007C117D /* Products */ = {
|
97C146EF1CF9000F007C117D /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
97C146EE1CF9000F007C117D /* {{projectName}}.app */,
|
97C146EE1CF9000F007C117D /* Runner.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -142,7 +142,7 @@
|
|||||||
);
|
);
|
||||||
name = Runner;
|
name = Runner;
|
||||||
productName = Runner;
|
productName = Runner;
|
||||||
productReference = 97C146EE1CF9000F007C117D /* {{projectName}}.app */;
|
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
@ -324,7 +324,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Profile;
|
name = Profile;
|
||||||
@ -454,7 +454,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -477,7 +477,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
@ -45,7 +45,7 @@
|
|||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
|
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
|
||||||
97C146EE1CF9000F007C117D /* {{projectName}}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "{{projectName}}.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; 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>"; };
|
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>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
@ -90,7 +90,7 @@
|
|||||||
97C146EF1CF9000F007C117D /* Products */ = {
|
97C146EF1CF9000F007C117D /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
97C146EE1CF9000F007C117D /* {{projectName}}.app */,
|
97C146EE1CF9000F007C117D /* Runner.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -138,7 +138,7 @@
|
|||||||
);
|
);
|
||||||
name = Runner;
|
name = Runner;
|
||||||
productName = Runner;
|
productName = Runner;
|
||||||
productReference = 97C146EE1CF9000F007C117D /* {{projectName}}.app */;
|
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
@ -321,7 +321,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
@ -455,7 +455,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -482,7 +482,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
@ -11,7 +11,7 @@
|
|||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>$(PRODUCT_NAME)</string>
|
<string>{{projectName}}</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>$(PRODUCT_NAME)</string>
|
<string>{{projectName}}</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
|
@ -319,7 +319,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Profile;
|
name = Profile;
|
||||||
@ -447,7 +447,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -470,7 +470,7 @@
|
|||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
|
||||||
PRODUCT_NAME = "{{projectName}}";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
BuildableName = "{{projectName}}.app"
|
BuildableName = "Runner.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
@ -20,7 +20,6 @@ import 'package:flutter_tools/src/doctor.dart';
|
|||||||
import 'package:flutter_tools/src/ios/devices.dart';
|
import 'package:flutter_tools/src/ios/devices.dart';
|
||||||
import 'package:flutter_tools/src/ios/mac.dart';
|
import 'package:flutter_tools/src/ios/mac.dart';
|
||||||
import 'package:flutter_tools/src/ios/ios_workflow.dart';
|
import 'package:flutter_tools/src/ios/ios_workflow.dart';
|
||||||
import 'package:flutter_tools/src/ios/xcodeproj.dart';
|
|
||||||
import 'package:flutter_tools/src/macos/xcode.dart';
|
import 'package:flutter_tools/src/macos/xcode.dart';
|
||||||
import 'package:flutter_tools/src/mdns_discovery.dart';
|
import 'package:flutter_tools/src/mdns_discovery.dart';
|
||||||
import 'package:flutter_tools/src/project.dart';
|
import 'package:flutter_tools/src/project.dart';
|
||||||
@ -576,32 +575,23 @@ void main() {
|
|||||||
Cache.flutterRoot = '../..';
|
Cache.flutterRoot = '../..';
|
||||||
final CreateCommand command = CreateCommand();
|
final CreateCommand command = CreateCommand();
|
||||||
final CommandRunner<void> runner = createTestCommandRunner(command);
|
final CommandRunner<void> runner = createTestCommandRunner(command);
|
||||||
|
await runner.run(<String>[
|
||||||
FakeAsync().run((FakeAsync time) {
|
'create',
|
||||||
runner.run(<String>[
|
'--no-pub',
|
||||||
'create',
|
projectDir.path,
|
||||||
'--no-pub',
|
]);
|
||||||
projectDir.path,
|
|
||||||
]);
|
|
||||||
time.flushMicrotasks();
|
|
||||||
time.elapse(const Duration(seconds: 65));
|
|
||||||
});
|
|
||||||
|
|
||||||
if (additionalSetup != null) {
|
if (additionalSetup != null) {
|
||||||
additionalSetup();
|
additionalSetup();
|
||||||
}
|
}
|
||||||
|
|
||||||
final IOSApp app = AbsoluteBuildableIOSApp(
|
final IOSApp app = await AbsoluteBuildableIOSApp.fromProject(
|
||||||
FlutterProject.fromDirectory(projectDir).ios,
|
FlutterProject.fromDirectory(projectDir).ios);
|
||||||
'io.flutter.flutter.app',
|
|
||||||
'My Super Awesome App.app',
|
|
||||||
);
|
|
||||||
|
|
||||||
final IOSDevice device = IOSDevice('123');
|
final IOSDevice device = IOSDevice('123');
|
||||||
|
|
||||||
// Pre-create the expected build products.
|
// Pre-create the expected build products.
|
||||||
targetBuildDir.createSync(recursive: true);
|
targetBuildDir.createSync(recursive: true);
|
||||||
projectDir.childDirectory('build/ios/iphoneos/My Super Awesome App.app').createSync(recursive: true);
|
projectDir.childDirectory('build/ios/iphoneos/Runner.app').createSync(recursive: true);
|
||||||
|
|
||||||
final Completer<LaunchResult> completer = Completer<LaunchResult>();
|
final Completer<LaunchResult> completer = Completer<LaunchResult>();
|
||||||
FakeAsync().run((FakeAsync time) {
|
FakeAsync().run((FakeAsync time) {
|
||||||
@ -630,7 +620,6 @@ void main() {
|
|||||||
IOSDeploy: () => mockIosDeploy,
|
IOSDeploy: () => mockIosDeploy,
|
||||||
Platform: () => macPlatform,
|
Platform: () => macPlatform,
|
||||||
ProcessManager: () => mockProcessManager,
|
ProcessManager: () => mockProcessManager,
|
||||||
XcodeProjectInterpreter: () => FakeWithBuildSettingsXcodeProjectInterpreter(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -876,11 +865,11 @@ f577a7903cc54959be2e34bc4f7f80b7009efcf4
|
|||||||
when(mockIMobileDevice.startLogger('123456')).thenAnswer((Invocation invocation) {
|
when(mockIMobileDevice.startLogger('123456')).thenAnswer((Invocation invocation) {
|
||||||
final Process mockProcess = MockProcess(
|
final Process mockProcess = MockProcess(
|
||||||
stdout: Stream<List<int>>.fromIterable(<List<int>>['''
|
stdout: Stream<List<int>>.fromIterable(<List<int>>['''
|
||||||
My Super Awesome App(Flutter)[297] <Notice>: A is for ari
|
Runner(Flutter)[297] <Notice>: A is for ari
|
||||||
My Super Awesome App(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt MobileGestaltSupport.m:153: pid 123 (Runner) does not have sandbox access for frZQaeyWLUvLjeuEK43hmg and IS NOT appropriately entitled
|
Runner(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt MobileGestaltSupport.m:153: pid 123 (Runner) does not have sandbox access for frZQaeyWLUvLjeuEK43hmg and IS NOT appropriately entitled
|
||||||
My Super Awesome App(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt MobileGestalt.c:550: no access to InverseDeviceID (see <rdar://problem/11744455>)
|
Runner(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt MobileGestalt.c:550: no access to InverseDeviceID (see <rdar://problem/11744455>)
|
||||||
My Super Awesome App(Flutter)[297] <Notice>: I is for ichigo
|
Runner(Flutter)[297] <Notice>: I is for ichigo
|
||||||
My Super Awesome App(UIKit)[297] <Notice>: E is for enpitsu"
|
Runner(UIKit)[297] <Notice>: E is for enpitsu"
|
||||||
'''.codeUnits])
|
'''.codeUnits])
|
||||||
);
|
);
|
||||||
return Future<Process>.value(mockProcess);
|
return Future<Process>.value(mockProcess);
|
||||||
@ -901,11 +890,11 @@ My Super Awesome App(UIKit)[297] <Notice>: E is for enpitsu"
|
|||||||
when(mockIMobileDevice.startLogger('123456')).thenAnswer((Invocation invocation) {
|
when(mockIMobileDevice.startLogger('123456')).thenAnswer((Invocation invocation) {
|
||||||
final Process mockProcess = MockProcess(
|
final Process mockProcess = MockProcess(
|
||||||
stdout: Stream<List<int>>.fromIterable(<List<int>>['''
|
stdout: Stream<List<int>>.fromIterable(<List<int>>['''
|
||||||
My Super Awesome App(Flutter)[297] <Notice>: This is a multi-line message,
|
Runner(Flutter)[297] <Notice>: This is a multi-line message,
|
||||||
with another Flutter message following it.
|
with another Flutter message following it.
|
||||||
My Super Awesome App(Flutter)[297] <Notice>: This is a multi-line message,
|
Runner(Flutter)[297] <Notice>: This is a multi-line message,
|
||||||
with a non-Flutter log message following it.
|
with a non-Flutter log message following it.
|
||||||
My Super Awesome App(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt
|
Runner(libsystem_asl.dylib)[297] <Notice>: libMobileGestalt
|
||||||
'''.codeUnits]),
|
'''.codeUnits]),
|
||||||
);
|
);
|
||||||
return Future<Process>.value(mockProcess);
|
return Future<Process>.value(mockProcess);
|
||||||
@ -974,8 +963,13 @@ flutter:
|
|||||||
}
|
}
|
||||||
|
|
||||||
class AbsoluteBuildableIOSApp extends BuildableIOSApp {
|
class AbsoluteBuildableIOSApp extends BuildableIOSApp {
|
||||||
AbsoluteBuildableIOSApp(IosProject project, String projectBundleId, String hostAppBundleName) :
|
AbsoluteBuildableIOSApp(IosProject project, String projectBundleId) :
|
||||||
super(project, projectBundleId, hostAppBundleName);
|
super(project, projectBundleId);
|
||||||
|
|
||||||
|
static Future<AbsoluteBuildableIOSApp> fromProject(IosProject project) async {
|
||||||
|
final String projectBundleId = await project.productBundleIdentifier;
|
||||||
|
return AbsoluteBuildableIOSApp(project, projectBundleId);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get deviceBundlePath =>
|
String get deviceBundlePath =>
|
||||||
@ -1000,31 +994,3 @@ class FakeIosDoctorProvider implements DoctorValidatorsProvider {
|
|||||||
return _workflows;
|
return _workflows;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FakeWithBuildSettingsXcodeProjectInterpreter extends XcodeProjectInterpreter {
|
|
||||||
@override
|
|
||||||
bool get isInstalled => true;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get versionText => 'Xcode 10.2';
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get majorVersion => 10;
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get minorVersion => 2;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void cleanWorkspace(String workspacePath, String scheme) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<XcodeProjectInfo> getInfo(String projectPath, {String projectFilename}) async {
|
|
||||||
return XcodeProjectInfo(
|
|
||||||
<String>['Runner'],
|
|
||||||
<String>['Debug', 'Release'],
|
|
||||||
<String>['Runner'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -435,7 +435,7 @@ Could not build the precompiled application for the device.''',
|
|||||||
final MockFile pbxprojFile = MockFile();
|
final MockFile pbxprojFile = MockFile();
|
||||||
|
|
||||||
when(project.xcodeProjectInfoFile).thenReturn(pbxprojFile);
|
when(project.xcodeProjectInfoFile).thenReturn(pbxprojFile);
|
||||||
when(project.hostAppBundleName).thenAnswer((_) => Future<String>.value('UnitTestRunner.app'));
|
when(project.hostAppBundleName).thenReturn('UnitTestRunner.app');
|
||||||
when(pbxprojFile.readAsLinesSync())
|
when(pbxprojFile.readAsLinesSync())
|
||||||
.thenAnswer((_) => flutterAssetPbxProjLines);
|
.thenAnswer((_) => flutterAssetPbxProjLines);
|
||||||
when(pbxprojFile.existsSync())
|
when(pbxprojFile.existsSync())
|
||||||
|
@ -344,9 +344,9 @@ void main() {
|
|||||||
when(mockProcess.stdout)
|
when(mockProcess.stdout)
|
||||||
.thenAnswer((Invocation invocation) {
|
.thenAnswer((Invocation invocation) {
|
||||||
return Stream<List<int>>.fromIterable(<List<int>>['''
|
return Stream<List<int>>.fromIterable(<List<int>>['''
|
||||||
2017-09-13 15:26:57.228948-0700 localhost My Super Awesome App[37195]: (Flutter) Observatory listening on http://127.0.0.1:57701/
|
2017-09-13 15:26:57.228948-0700 localhost Runner[37195]: (Flutter) Observatory listening on http://127.0.0.1:57701/
|
||||||
2017-09-13 15:26:57.228948-0700 localhost My Super Awesome App[37195]: (Flutter) ))))))))))
|
2017-09-13 15:26:57.228948-0700 localhost Runner[37195]: (Flutter) ))))))))))
|
||||||
2017-09-13 15:26:57.228948-0700 localhost My Super Awesome App[37195]: (Flutter) #0 Object.noSuchMethod (dart:core-patch/dart:core/object_patch.dart:46)'''
|
2017-09-13 15:26:57.228948-0700 localhost Runner[37195]: (Flutter) #0 Object.noSuchMethod (dart:core-patch/dart:core/object_patch.dart:46)'''
|
||||||
.codeUnits]);
|
.codeUnits]);
|
||||||
});
|
});
|
||||||
when(mockProcess.stderr)
|
when(mockProcess.stderr)
|
||||||
|
@ -408,39 +408,6 @@ apply plugin: 'kotlin-android'
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('application bundle name', () {
|
|
||||||
MemoryFileSystem fs;
|
|
||||||
MockXcodeProjectInterpreter mockXcodeProjectInterpreter;
|
|
||||||
setUp(() {
|
|
||||||
fs = MemoryFileSystem();
|
|
||||||
mockXcodeProjectInterpreter = MockXcodeProjectInterpreter();
|
|
||||||
});
|
|
||||||
|
|
||||||
testUsingContext('app product name defaults to Runner.app', () async {
|
|
||||||
final FlutterProject project = await someProject();
|
|
||||||
expect(await project.ios.hostAppBundleName, 'Runner.app');
|
|
||||||
}, overrides: <Type, Generator>{
|
|
||||||
FileSystem: () => fs,
|
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
|
||||||
XcodeProjectInterpreter: () => mockXcodeProjectInterpreter
|
|
||||||
});
|
|
||||||
|
|
||||||
testUsingContext('app product name xcodebuild settings', () async {
|
|
||||||
final FlutterProject project = await someProject();
|
|
||||||
when(mockXcodeProjectInterpreter.getBuildSettings(any, any)).thenAnswer((_) {
|
|
||||||
return Future<Map<String,String>>.value(<String, String>{
|
|
||||||
'FULL_PRODUCT_NAME': 'My App.app'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(await project.ios.hostAppBundleName, 'My App.app');
|
|
||||||
}, overrides: <Type, Generator>{
|
|
||||||
FileSystem: () => fs,
|
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
|
||||||
XcodeProjectInterpreter: () => mockXcodeProjectInterpreter
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group('organization names set', () {
|
group('organization names set', () {
|
||||||
testInMemory('is empty, if project not created', () async {
|
testInMemory('is empty, if project not created', () async {
|
||||||
final FlutterProject project = await someProject();
|
final FlutterProject project = await someProject();
|
||||||
|
@ -40,7 +40,7 @@ class MockApplicationPackageStore extends ApplicationPackageStore {
|
|||||||
versionCode: 1,
|
versionCode: 1,
|
||||||
launchActivity: 'io.flutter.android.mock.MockActivity',
|
launchActivity: 'io.flutter.android.mock.MockActivity',
|
||||||
),
|
),
|
||||||
iOS: BuildableIOSApp(MockIosProject(), MockIosProject.bundleId, MockIosProject.appBundleName),
|
iOS: BuildableIOSApp(MockIosProject(), MockIosProject.bundleId),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,13 +519,12 @@ class MockPollingDeviceDiscovery extends PollingDeviceDiscovery {
|
|||||||
|
|
||||||
class MockIosProject extends Mock implements IosProject {
|
class MockIosProject extends Mock implements IosProject {
|
||||||
static const String bundleId = 'com.example.test';
|
static const String bundleId = 'com.example.test';
|
||||||
static const String appBundleName = 'My Super Awesome App.app';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<String> get productBundleIdentifier async => bundleId;
|
Future<String> get productBundleIdentifier async => bundleId;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<String> get hostAppBundleName async => appBundleName;
|
String get hostAppBundleName => 'Runner.app';
|
||||||
}
|
}
|
||||||
|
|
||||||
class MockAndroidDevice extends Mock implements AndroidDevice {
|
class MockAndroidDevice extends Mock implements AndroidDevice {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user