Use PRODUCT_BUNDLE_IDENTIFIER from buildSettings to find correct bundle id on iOS when using flavors (#42964)

This commit is contained in:
knaeckeKami 2019-10-28 23:33:27 +01:00 committed by Jenn Magder
parent f7d78d5baa
commit ccfdf95c4a
2 changed files with 17 additions and 2 deletions

View file

@ -267,6 +267,9 @@ class IOSDevice extends Device {
bool prebuiltApplication = false,
bool ipv6 = false,
}) async {
String packageId;
if (!prebuiltApplication) {
// TODO(chinmaygarde): Use mainPath, route.
printTrace('Building ${package.name} for $id');
@ -288,12 +291,15 @@ class IOSDevice extends Device {
printError('');
return LaunchResult.failed();
}
packageId = buildResult.xcodeBuildExecution?.buildSettings['PRODUCT_BUNDLE_IDENTIFIER'];
} else {
if (!await installApp(package)) {
return LaunchResult.failed();
}
}
packageId ??= package.id;
// Step 2: Check that the application exists at the specified path.
final IOSApp iosApp = package;
final Directory bundle = fs.directory(iosApp.deviceBundlePath);
@ -367,7 +373,7 @@ class IOSDevice extends Device {
try {
printTrace('Application launched on the device. Waiting for observatory port.');
localUri = await MDnsObservatoryDiscovery.instance.getObservatoryUri(
package.id,
packageId,
this,
ipv6,
debuggingOptions.observatoryPort,

View file

@ -562,7 +562,16 @@ Future<XcodeBuildResult> buildXcodeProject({
} else {
printError('Build succeeded but the expected app at $expectedOutputDirectory not found');
}
return XcodeBuildResult(success: true, output: outputDir);
return XcodeBuildResult(
success: true,
output: outputDir,
xcodeBuildExecution: XcodeBuildExecution(
buildCommands: buildCommands,
appDirectory: app.project.hostAppRoot.path,
buildForPhysicalDevice: buildForDevice,
buildSettings: buildSettings,
),
);
}
}