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';
import 'dart:io';
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart';
import 'package:path/path.dart' as path;
......@@ -30,7 +29,6 @@ Future<void> main() async {
],
);
});
await prepareProvisioningCertificates(projectDir.path);
section('Build ephemeral host app in release mode without CocoaPods');
......
......@@ -7,7 +7,6 @@ import 'dart:io';
import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart';
import 'service_extensions_test.dart';
......@@ -23,7 +22,6 @@ Future<void> main() async {
dir('${flutterDirectory.path}/dev/integration_tests/ui');
await inDirectory<void>(testDirectory, () async {
await flutter('packages', options: <String>['get']);
await prepareProvisioningCertificates(testDirectory.path);
await checkNoWarningHostLaunch(deviceId);
await checkNoWarningXcodeLaunch(deviceId);
......
......@@ -4,105 +4,9 @@
import 'dart:async';
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';
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) {
if (code != 0) {
throw Exception(
......
......@@ -9,7 +9,6 @@ import 'dart:math' as math;
import '../framework/adb.dart';
import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart';
TaskFunction createGalleryTransitionTest({ bool semanticsEnabled = false }) {
......@@ -31,9 +30,6 @@ class GalleryTransitionTest {
await inDirectory<void>(galleryDirectory, () async {
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(galleryDirectory.path);
final String testDriver = semanticsEnabled
? 'transitions_perf_with_semantics.dart'
: 'transitions_perf.dart';
......
......@@ -6,7 +6,6 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:path/path.dart' as path;
import '../framework/adb.dart';
......@@ -33,8 +32,6 @@ TaskFunction createHotModeTest() {
mkdirs(_editedFlutterGalleryDir);
recursiveCopy(flutterGalleryDir, _editedFlutterGalleryDir);
await inDirectory<void>(_editedFlutterGalleryDir, () async {
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(_editedFlutterGalleryDir.path);
{
final Process process = await startProcess(
path.join(flutterDirectory.path, 'bin', 'flutter'),
......
......@@ -8,7 +8,6 @@ import 'dart:io';
import 'package:path/path.dart' as path;
import '../framework/adb.dart';
import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart';
TaskFunction createChannelsIntegrationTest() {
......@@ -130,8 +129,6 @@ class DriverTest {
final String deviceId = device.deviceId;
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
final List<String> options = <String>[
'-v',
'-t',
......
......@@ -7,7 +7,6 @@ import 'dart:io';
import '../framework/adb.dart';
import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart';
Future<TaskResult> runEndToEndTests() async {
......@@ -18,9 +17,6 @@ Future<TaskResult> runEndToEndTests() async {
await inDirectory<void>(testDirectory, () async {
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory.path);
const List<String> entryPoints = <String>[
'lib/keyboard_resize.dart',
'lib/driver.dart',
......
......@@ -10,7 +10,6 @@ import 'package:path/path.dart' as path;
import 'package:flutter_devicelab/framework/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart';
/// Creates a device lab task that runs benchmarks in
......@@ -26,8 +25,6 @@ TaskFunction createMicrobenchmarkTask() {
final Directory appDir = dir(
path.join(flutterDirectory.path, 'dev/benchmarks/microbenchmarks'));
final Process flutterProcess = await inDirectory(appDir, () async {
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(appDir.path);
final List<String> options = <String>[
'-v',
// --release doesn't work on iOS due to code signing issues
......
......@@ -152,9 +152,6 @@ class StartupTest {
final String deviceId = (await devices.workingDevice).deviceId;
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
await flutter('run', options: <String>[
'--verbose',
'--profile',
......@@ -197,9 +194,6 @@ class PerfTest {
final String deviceId = device.deviceId;
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(testDirectory);
await flutter('drive', options: <String>[
'-v',
'--profile',
......@@ -385,7 +379,6 @@ class CompileTest {
switch (deviceOperatingSystem) {
case DeviceOperatingSystem.ios:
options.insert(0, 'ios');
await prepareProvisioningCertificates(cwd);
watch.start();
await flutter('build', options: options);
watch.stop();
......@@ -430,7 +423,6 @@ class CompileTest {
switch (deviceOperatingSystem) {
case DeviceOperatingSystem.ios:
options.insert(0, 'ios');
await prepareProvisioningCertificates(cwd);
break;
case DeviceOperatingSystem.android:
options.insert(0, 'apk');
......@@ -542,9 +534,6 @@ class MemoryTest {
await device.unlock();
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(project);
final StreamSubscription<String> adb = device.logcat.listen(
(String data) {
if (data.contains('==== MEMORY BENCHMARK ==== $_nextMessage ===='))
......@@ -687,9 +676,6 @@ class ReportedDurationTest {
await device.unlock();
await flutter('packages', options: <String>['get']);
if (deviceOperatingSystem == DeviceOperatingSystem.ios)
await prepareProvisioningCertificates(project);
final StreamSubscription<String> adb = device.logcat.listen(
(String data) {
if (durationPattern.hasMatch(data))
......
......@@ -7,7 +7,6 @@ import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/ios.dart';
import 'package:flutter_devicelab/framework/utils.dart';
/// Combines several TaskFunctions with trivial success value into one.
......@@ -47,8 +46,6 @@ class PluginTest {
final _FlutterProject app = await _FlutterProject.create(tempDir, options,
name: 'plugintestapp', template: 'app', environment: appCreateEnvironment);
try {
if (buildTarget == 'ios')
await prepareProvisioningCertificates(app.rootPath);
section('Add plugins');
await app.addPlugin('plugintest',
pluginPath: path.join('..', 'plugintest'));
......
......@@ -7,7 +7,6 @@ import 'dart:io';
import '../framework/adb.dart';
import '../framework/framework.dart';
import '../framework/ios.dart';
import '../framework/utils.dart';
import 'save_catalog_screenshots.dart' show saveCatalogScreenshots;
......@@ -21,10 +20,6 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async {
await inDirectory<void>(catalogDirectory, () async {
await flutter('packages', options: <String>['get']);
final bool isIosDevice = deviceOperatingSystem == DeviceOperatingSystem.ios;
if (isIosDevice)
await prepareProvisioningCertificates(catalogDirectory.path);
final String commit = await getCurrentFlutterRepoCommit();
await dart(<String>['bin/sample_page.dart', commit]);
......@@ -40,7 +35,7 @@ Future<TaskResult> samplePageCatalogGenerator(String authorizationToken) async {
directory: dir('${flutterDirectory.path}/examples/catalog/.generated'),
commit: commit,
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