| // Copyright 2014 The Flutter 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 'dart:io'; |
| |
| import 'package:flutter_devicelab/framework/framework.dart'; |
| import 'package:flutter_devicelab/framework/task_result.dart'; |
| import 'package:flutter_devicelab/framework/utils.dart'; |
| import 'package:path/path.dart' as path; |
| |
| Future<void> main() async { |
| await task(() async { |
| section('Copy test Flutter App with watchOS Companion'); |
| |
| final Directory tempDir = Directory.systemTemp |
| .createTempSync('flutter_ios_app_with_extensions_test.'); |
| final Directory projectDir = |
| Directory(path.join(tempDir.path, 'app_with_extensions')); |
| try { |
| mkdir(projectDir); |
| recursiveCopy( |
| Directory(path.join(flutterDirectory.path, 'dev', 'integration_tests', |
| 'ios_app_with_extensions')), |
| projectDir, |
| ); |
| |
| section('Create release build'); |
| |
| // This attempts to build the companion watchOS app. However, the watchOS |
| // SDK is not available in CI and therefore the build will fail. |
| // Check to make sure that the tool attempts to build the companion watchOS app. |
| // See https://github.com/flutter/flutter/pull/94190. |
| await inDirectory(projectDir, () async { |
| final String buildOutput = await evalFlutter( |
| 'build', |
| options: <String>['ios', '--no-codesign', '--release', '--verbose'], |
| ); |
| if (!buildOutput.contains('-destination generic/platform=watchOS')) { |
| print(buildOutput); |
| throw TaskResult.failure('Did not try to get watch build settings'); |
| } |
| }); |
| |
| return TaskResult.success(null); |
| } catch (e) { |
| return TaskResult.failure(e.toString()); |
| } finally { |
| rmTree(tempDir); |
| } |
| }); |
| } |