Unverified Commit 6e5769d4 authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Remove FLUTTER_DEVICELAB_XCODE_PROVISIONING_CONFIG code paths (#45136)

parent b5a85fcf
...@@ -6,7 +6,6 @@ import 'dart:async'; ...@@ -6,7 +6,6 @@ import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart'; import 'package:flutter_devicelab/framework/utils.dart';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
...@@ -30,7 +29,6 @@ Future<void> main() async { ...@@ -30,7 +29,6 @@ Future<void> main() async {
], ],
); );
}); });
await prepareProvisioningCertificates(projectDir.path);
section('Build ephemeral host app in release mode without CocoaPods'); section('Build ephemeral host app in release mode without CocoaPods');
......
...@@ -7,7 +7,6 @@ import 'dart:io'; ...@@ -7,7 +7,6 @@ import 'dart:io';
import 'package:flutter_devicelab/framework/adb.dart'; import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart'; import 'package:flutter_devicelab/framework/utils.dart';
import 'service_extensions_test.dart'; import 'service_extensions_test.dart';
...@@ -23,7 +22,6 @@ Future<void> main() async { ...@@ -23,7 +22,6 @@ Future<void> main() async {
dir('${flutterDirectory.path}/dev/integration_tests/ui'); dir('${flutterDirectory.path}/dev/integration_tests/ui');
await inDirectory<void>(testDirectory, () async { await inDirectory<void>(testDirectory, () async {
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
await prepareProvisioningCertificates(testDirectory.path);
await checkNoWarningHostLaunch(deviceId); await checkNoWarningHostLaunch(deviceId);
await checkNoWarningXcodeLaunch(deviceId); await checkNoWarningXcodeLaunch(deviceId);
......
...@@ -4,105 +4,9 @@ ...@@ -4,105 +4,9 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io' as dart_io;
import 'package:file/file.dart';
import 'package:file/local.dart' as io;
import 'package:path/path.dart' as path;
import 'utils.dart'; import 'utils.dart';
const String _kProvisioningConfigFileEnvironmentVariable = 'FLUTTER_DEVICELAB_XCODE_PROVISIONING_CONFIG';
const String _kTestXcconfigFileName = 'TestConfig.xcconfig';
const FileSystem _fs = io.LocalFileSystem();
/// Patches the given Xcode project adding provisioning certificates and team
/// information required to build and run the project, if
/// FLUTTER_DEVICELAB_XCODE_PROVISIONING_CONFIG is set. If it is not set,
/// we rely on automatic signing by Xcode.
Future<void> prepareProvisioningCertificates(String flutterProjectPath) async {
final String certificateConfig = await _readProvisioningConfigFile();
if (certificateConfig == null) {
// No cert config available, rely on automatic signing by Xcode.
return;
}
await _patchXcconfigFilesIfNotPatched(flutterProjectPath);
final File testXcconfig = _fs.file(path.join(flutterProjectPath, 'ios/Flutter/$_kTestXcconfigFileName'));
await testXcconfig.writeAsString(certificateConfig);
}
Future<void> runPodInstallForCustomPodfile(String flutterProjectPath) async {
final String iosPath = path.join(flutterProjectPath, 'ios');
exec('pod', <String>['install', '--project-directory=$iosPath']);
}
Future<void> _patchXcconfigFilesIfNotPatched(String flutterProjectPath) async {
final List<File> xcconfigFiles = <File>[
_fs.file(path.join(flutterProjectPath, 'ios/Flutter/Flutter.xcconfig')),
_fs.file(path.join(flutterProjectPath, 'ios/Flutter/Debug.xcconfig')),
_fs.file(path.join(flutterProjectPath, 'ios/Flutter/Release.xcconfig')),
];
bool xcconfigFileExists = false;
for (final File file in xcconfigFiles) {
if (await file.exists()) {
xcconfigFileExists = true;
const String include = '#include "$_kTestXcconfigFileName"';
final String contents = await file.readAsString();
final bool alreadyPatched = contents.contains(include);
if (!alreadyPatched) {
final IOSink patchOut = file.openWrite(mode: FileMode.append);
patchOut.writeln(); // in case EOF is not preceded by line break
patchOut.writeln(include);
await patchOut.close();
}
}
}
if (!xcconfigFileExists) {
final String candidatesFormatted = xcconfigFiles.map<String>((File f) => f.path).join(', ');
throw 'Failed to locate a xcconfig file to patch with provisioning profile '
'info. Tried: $candidatesFormatted';
}
}
Future<String> _readProvisioningConfigFile() async {
void throwUsageError(String specificMessage) {
throw '''
================================================================================
You are attempting to build an XCode project, which requires a provisioning
certificate and team information. The test framework attempted to locate an
.xcconfig file whose path is defined by the environment variable
$_kProvisioningConfigFileEnvironmentVariable.
$specificMessage
================================================================================
'''.trim();
}
if (!dart_io.Platform.environment.containsKey(_kProvisioningConfigFileEnvironmentVariable)) {
print('''
$_kProvisioningConfigFileEnvironmentVariable variable is not defined in your
environment. Relying on automatic signing by Xcode...
'''.trim());
return null;
}
final String filePath = dart_io.Platform.environment[_kProvisioningConfigFileEnvironmentVariable];
final File file = _fs.file(filePath);
if (!(await file.exists())) {
throwUsageError('''
File not found: $filePath
It is defined by environment variable $_kProvisioningConfigFileEnvironmentVariable
'''.trim());
}
return file.readAsString();
}
void _checkExitCode(int code) { void _checkExitCode(int code) {
if (code != 0) { if (code != 0) {
throw Exception( throw Exception(
......
...@@ -9,7 +9,6 @@ import 'dart:math' as math; ...@@ -9,7 +9,6 @@ import 'dart:math' as math;
import '../framework/adb.dart'; import '../framework/adb.dart';
import '../framework/framework.dart'; import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart'; import '../framework/utils.dart';
TaskFunction createGalleryTransitionTest({ bool semanticsEnabled = false }) { TaskFunction createGalleryTransitionTest({ bool semanticsEnabled = false }) {
...@@ -31,9 +30,6 @@ class GalleryTransitionTest { ...@@ -31,9 +30,6 @@ class GalleryTransitionTest {
await inDirectory<void>(galleryDirectory, () async { await inDirectory<void>(galleryDirectory, () async {
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(galleryDirectory.path);
final String testDriver = semanticsEnabled final String testDriver = semanticsEnabled
? 'transitions_perf_with_semantics.dart' ? 'transitions_perf_with_semantics.dart'
: 'transitions_perf.dart'; : 'transitions_perf.dart';
......
...@@ -6,7 +6,6 @@ import 'dart:async'; ...@@ -6,7 +6,6 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import '../framework/adb.dart'; import '../framework/adb.dart';
...@@ -33,8 +32,6 @@ TaskFunction createHotModeTest() { ...@@ -33,8 +32,6 @@ TaskFunction createHotModeTest() {
mkdirs(_editedFlutterGalleryDir); mkdirs(_editedFlutterGalleryDir);
recursiveCopy(flutterGalleryDir, _editedFlutterGalleryDir); recursiveCopy(flutterGalleryDir, _editedFlutterGalleryDir);
await inDirectory<void>(_editedFlutterGalleryDir, () async { await inDirectory<void>(_editedFlutterGalleryDir, () async {
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(_editedFlutterGalleryDir.path);
{ {
final Process process = await startProcess( final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'), path.join(flutterDirectory.path, 'bin', 'flutter'),
......
...@@ -8,7 +8,6 @@ import 'dart:io'; ...@@ -8,7 +8,6 @@ import 'dart:io';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import '../framework/adb.dart'; import '../framework/adb.dart';
import '../framework/framework.dart'; import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart'; import '../framework/utils.dart';
TaskFunction createChannelsIntegrationTest() { TaskFunction createChannelsIntegrationTest() {
...@@ -130,8 +129,6 @@ class DriverTest { ...@@ -130,8 +129,6 @@ class DriverTest {
final String deviceId = device.deviceId; final String deviceId = device.deviceId;
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
final List<String> options = <String>[ final List<String> options = <String>[
'-v', '-v',
'-t', '-t',
......
...@@ -7,7 +7,6 @@ import 'dart:io'; ...@@ -7,7 +7,6 @@ import 'dart:io';
import '../framework/adb.dart'; import '../framework/adb.dart';
import '../framework/framework.dart'; import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart'; import '../framework/utils.dart';
Future<TaskResult> runEndToEndTests() async { Future<TaskResult> runEndToEndTests() async {
...@@ -18,9 +17,6 @@ Future<TaskResult> runEndToEndTests() async { ...@@ -18,9 +17,6 @@ Future<TaskResult> runEndToEndTests() async {
await inDirectory<void>(testDirectory, () async { await inDirectory<void>(testDirectory, () async {
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory.path);
const List<String> entryPoints = <String>[ const List<String> entryPoints = <String>[
'lib/keyboard_resize.dart', 'lib/keyboard_resize.dart',
'lib/driver.dart', 'lib/driver.dart',
......
...@@ -10,7 +10,6 @@ import 'package:path/path.dart' as path; ...@@ -10,7 +10,6 @@ import 'package:path/path.dart' as path;
import 'package:flutter_devicelab/framework/adb.dart'; import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart'; import 'package:flutter_devicelab/framework/utils.dart';
/// Creates a device lab task that runs benchmarks in /// Creates a device lab task that runs benchmarks in
...@@ -26,8 +25,6 @@ TaskFunction createMicrobenchmarkTask() { ...@@ -26,8 +25,6 @@ TaskFunction createMicrobenchmarkTask() {
final Directory appDir = dir( final Directory appDir = dir(
path.join(flutterDirectory.path, 'dev/benchmarks/microbenchmarks')); path.join(flutterDirectory.path, 'dev/benchmarks/microbenchmarks'));
final Process flutterProcess = await inDirectory(appDir, () async { final Process flutterProcess = await inDirectory(appDir, () async {
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(appDir.path);
final List<String> options = <String>[ final List<String> options = <String>[
'-v', '-v',
// --release doesn't work on iOS due to code signing issues // --release doesn't work on iOS due to code signing issues
......
...@@ -152,9 +152,6 @@ class StartupTest { ...@@ -152,9 +152,6 @@ class StartupTest {
final String deviceId = (await devices.workingDevice).deviceId; final String deviceId = (await devices.workingDevice).deviceId;
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
await flutter('run', options: <String>[ await flutter('run', options: <String>[
'--verbose', '--verbose',
'--profile', '--profile',
...@@ -197,9 +194,6 @@ class PerfTest { ...@@ -197,9 +194,6 @@ class PerfTest {
final String deviceId = device.deviceId; final String deviceId = device.deviceId;
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
await flutter('drive', options: <String>[ await flutter('drive', options: <String>[
'-v', '-v',
'--profile', '--profile',
...@@ -385,7 +379,6 @@ class CompileTest { ...@@ -385,7 +379,6 @@ class CompileTest {
switch (deviceOperatingSystem) { switch (deviceOperatingSystem) {
case DeviceOperatingSystem.ios: case DeviceOperatingSystem.ios:
options.insert(0, 'ios'); options.insert(0, 'ios');
await prepareProvisioningCertificates(cwd);
watch.start(); watch.start();
await flutter('build', options: options); await flutter('build', options: options);
watch.stop(); watch.stop();
...@@ -430,7 +423,6 @@ class CompileTest { ...@@ -430,7 +423,6 @@ class CompileTest {
switch (deviceOperatingSystem) { switch (deviceOperatingSystem) {
case DeviceOperatingSystem.ios: case DeviceOperatingSystem.ios:
options.insert(0, 'ios'); options.insert(0, 'ios');
await prepareProvisioningCertificates(cwd);
break; break;
case DeviceOperatingSystem.android: case DeviceOperatingSystem.android:
options.insert(0, 'apk'); options.insert(0, 'apk');
...@@ -542,9 +534,6 @@ class MemoryTest { ...@@ -542,9 +534,6 @@ class MemoryTest {
await device.unlock(); await device.unlock();
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(project);
final StreamSubscription<String> adb = device.logcat.listen( final StreamSubscription<String> adb = device.logcat.listen(
(String data) { (String data) {
if (data.contains('==== MEMORY BENCHMARK ==== $_nextMessage ====')) if (data.contains('==== MEMORY BENCHMARK ==== $_nextMessage ===='))
...@@ -687,9 +676,6 @@ class ReportedDurationTest { ...@@ -687,9 +676,6 @@ class ReportedDurationTest {
await device.unlock(); await device.unlock();
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(project);
final StreamSubscription<String> adb = device.logcat.listen( final StreamSubscription<String> adb = device.logcat.listen(
(String data) { (String data) {
if (durationPattern.hasMatch(data)) if (durationPattern.hasMatch(data))
......
...@@ -7,7 +7,6 @@ import 'dart:io'; ...@@ -7,7 +7,6 @@ import 'dart:io';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart'; import 'package:flutter_devicelab/framework/utils.dart';
/// Combines several TaskFunctions with trivial success value into one. /// Combines several TaskFunctions with trivial success value into one.
...@@ -47,8 +46,6 @@ class PluginTest { ...@@ -47,8 +46,6 @@ class PluginTest {
final _FlutterProject app = await _FlutterProject.create(tempDir, options, final _FlutterProject app = await _FlutterProject.create(tempDir, options,
name: 'plugintestapp', template: 'app', environment: appCreateEnvironment); name: 'plugintestapp', template: 'app', environment: appCreateEnvironment);
try { try {
if (buildTarget == 'ios')
await prepareProvisioningCertificates(app.rootPath);
section('Add plugins'); section('Add plugins');
await app.addPlugin('plugintest', await app.addPlugin('plugintest',
pluginPath: path.join('..', 'plugintest')); pluginPath: path.join('..', 'plugintest'));
......
...@@ -7,7 +7,6 @@ import 'dart:io'; ...@@ -7,7 +7,6 @@ import 'dart:io';
import '../framework/adb.dart'; import '../framework/adb.dart';
import '../framework/framework.dart'; import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart'; import '../framework/utils.dart';
import 'save_catalog_screenshots.dart' show saveCatalogScreenshots; import 'save_catalog_screenshots.dart' show saveCatalogScreenshots;
...@@ -21,10 +20,6 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async { ...@@ -21,10 +20,6 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async {
await inDirectory<void>(catalogDirectory, () async { await inDirectory<void>(catalogDirectory, () async {
await flutter('packages', options: <String>['get']); await flutter('packages', options: <String>['get']);
final bool isIosDevice = deviceOperatingSystem == DeviceOperatingSystem.ios;
if (isIosDevice)
await prepareProvisioningCertificates(catalogDirectory.path);
final String commit = await getCurrentFlutterRepoCommit(); final String commit = await getCurrentFlutterRepoCommit();
await dart(<String>['bin/sample_page.dart', commit]); await dart(<String>['bin/sample_page.dart', commit]);
...@@ -40,7 +35,7 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async { ...@@ -40,7 +35,7 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async {
directory: dir('${flutterDirectory.path}/examples/catalog/.generated'), directory: dir('${flutterDirectory.path}/examples/catalog/.generated'),
commit: commit, commit: commit,
token: authorizationToken, // TODO(fujino): workaround auth token for local runs token: authorizationToken, // TODO(fujino): workaround auth token for local runs
prefix: isIosDevice ? 'ios_' : '', prefix: deviceOperatingSystem == DeviceOperatingSystem.ios ? 'ios_' : '',
); );
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment