From 023582db33fb454e1fd3ec27697cd20165bff5e4 Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Thu, 25 Feb 2021 18:49:12 -0800 Subject: [PATCH] Stop trying to thin iOS App.framework (#76834) --- .../lib/src/build_system/targets/ios.dart | 12 +-- .../build_system/targets/ios_test.dart | 87 ++++--------------- 2 files changed, 21 insertions(+), 78 deletions(-) diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index be6898be80c..60ad4977dea 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart @@ -535,7 +535,7 @@ Future createStubAppFramework(File outputFile, String sdkRoot, } } -/// Destructively thins the specified executable file to include only the specified architectures. +/// Destructively thins the Flutter.framework to include only the specified architectures. /// /// This target is not fingerprinted and will always run. class ThinIosApplicationFrameworks extends Target { @@ -560,15 +560,9 @@ class ThinIosApplicationFrameworks extends Target { } final Directory frameworkDirectory = environment.outputDir; - final File appFramework = frameworkDirectory.childDirectory('App.framework').childFile('App'); final File flutterFramework = frameworkDirectory.childDirectory('Flutter.framework').childFile('Flutter'); - await _thinBinary(appFramework, environment); - await _thinBinary(flutterFramework, environment); - } - - Future _thinBinary(File binary, Environment environment) async { - final String binaryPath = binary.path; - if (!binary.existsSync()) { + final String binaryPath = flutterFramework.path; + if (!flutterFramework.existsSync()) { throw Exception('Binary $binaryPath does not exist, cannot thin'); } final String archs = environment.defines[kIosArchs]; diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart index ca474e7227f..4f29fd0deff 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart @@ -321,14 +321,14 @@ void main() { throwsA(isA().having( (Exception exception) => exception.toString(), 'description', - contains('App.framework/App does not exist, cannot thin'), + contains('Flutter.framework/Flutter does not exist, cannot thin'), ))); }); testWithoutContext('fails when requested archs missing from framework', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final Directory outputDir = fileSystem.directory('Runner.app').childDirectory('Frameworks')..createSync(recursive: true); - final File appBinary = outputDir.childDirectory('App.framework').childFile('App')..createSync(recursive: true); + final File binary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -346,14 +346,14 @@ void main() { FakeCommand(command: [ 'lipo', '-info', - appBinary.path, + binary.path, ], stdout: 'Architectures in the fat file:'), ); processManager.addCommand( FakeCommand(command: [ 'lipo', - appBinary.path, + binary.path, '-verify_arch', 'arm64', 'armv7', @@ -372,7 +372,7 @@ void main() { testWithoutContext('fails when lipo extract fails', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final Directory outputDir = fileSystem.directory('Runner.app').childDirectory('Frameworks')..createSync(recursive: true); - final File appBinary = outputDir.childDirectory('App.framework').childFile('App')..createSync(recursive: true); + final File binary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -390,14 +390,14 @@ void main() { FakeCommand(command: [ 'lipo', '-info', - appBinary.path, + binary.path, ], stdout: 'Architectures in the fat file:'), ); processManager.addCommand( FakeCommand(command: [ 'lipo', - appBinary.path, + binary.path, '-verify_arch', 'arm64', 'armv7', @@ -408,12 +408,12 @@ void main() { FakeCommand(command: [ 'lipo', '-output', - appBinary.path, + binary.path, '-extract', 'arm64', '-extract', 'armv7', - appBinary.path, + binary.path, ], exitCode: 1, stderr: 'lipo error'), ); @@ -423,15 +423,14 @@ void main() { throwsA(isA().having( (Exception exception) => exception.toString(), 'description', - contains('Failed to extract arm64 armv7 for Runner.app/Frameworks/App.framework/App.\nlipo error\nRunning lipo -info:\nArchitectures in the fat file:'), + contains('Failed to extract arm64 armv7 for Runner.app/Frameworks/Flutter.framework/Flutter.\nlipo error\nRunning lipo -info:\nArchitectures in the fat file:'), ))); }); testWithoutContext('skips thin frameworks', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final Directory outputDir = fileSystem.directory('Runner.app').childDirectory('Frameworks')..createSync(recursive: true); - final File appBinary = outputDir.childDirectory('App.framework').childFile('App')..createSync(recursive: true); - final File flutterBinary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); + final File binary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -449,38 +448,20 @@ void main() { FakeCommand(command: [ 'lipo', '-info', - appBinary.path, + binary.path, ], stdout: 'Non-fat file:'), ); processManager.addCommand( FakeCommand(command: [ 'lipo', - appBinary.path, - '-verify_arch', - 'arm64', - ]), - ); - - processManager.addCommand( - FakeCommand(command: [ - 'lipo', - '-info', - flutterBinary.path, - ], stdout: 'Non-fat file:'), - ); - - processManager.addCommand( - FakeCommand(command: [ - 'lipo', - flutterBinary.path, + binary.path, '-verify_arch', 'arm64', ]), ); await const ThinIosApplicationFrameworks().build(environment); - expect(logger.traceText, contains('Skipping lipo for non-fat file Runner.app/Frameworks/App.framework/App')); expect(logger.traceText, contains('Skipping lipo for non-fat file Runner.app/Frameworks/Flutter.framework/Flutter')); expect(processManager.hasRemainingExpectations, isFalse); @@ -489,8 +470,7 @@ void main() { testWithoutContext('thins fat frameworks', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final Directory outputDir = fileSystem.directory('Runner.app').childDirectory('Frameworks')..createSync(recursive: true); - final File appBinary = outputDir.childDirectory('App.framework').childFile('App')..createSync(recursive: true); - final File flutterBinary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); + final File binary = outputDir.childDirectory('Flutter.framework').childFile('Flutter')..createSync(recursive: true); final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -508,14 +488,14 @@ void main() { FakeCommand(command: [ 'lipo', '-info', - appBinary.path, + binary.path, ], stdout: 'Architectures in the fat file:'), ); processManager.addCommand( FakeCommand(command: [ 'lipo', - appBinary.path, + binary.path, '-verify_arch', 'arm64', 'armv7', @@ -526,43 +506,12 @@ void main() { FakeCommand(command: [ 'lipo', '-output', - appBinary.path, + binary.path, '-extract', 'arm64', '-extract', 'armv7', - appBinary.path, - ]), - ); - - processManager.addCommand( - FakeCommand(command: [ - 'lipo', - '-info', - flutterBinary.path, - ], stdout: 'Architectures in the fat file:'), - ); - - processManager.addCommand( - FakeCommand(command: [ - 'lipo', - flutterBinary.path, - '-verify_arch', - 'arm64', - 'armv7', - ]), - ); - - processManager.addCommand( - FakeCommand(command: [ - 'lipo', - '-output', - flutterBinary.path, - '-extract', - 'arm64', - '-extract', - 'armv7', - flutterBinary.path, + binary.path, ]), );