diff --git a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart index db2928126fb..d606d9fc8cb 100644 --- a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart +++ b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart @@ -218,7 +218,7 @@ Future main() async { ); } - section("Check all modes' have plugin dylib"); + section('Check all modes have plugins'); for (final String mode in ['Debug', 'Profile', 'Release']) { final String pluginFrameworkPath = path.join( @@ -238,6 +238,17 @@ Future main() async { 'device_info.framework', 'device_info', )); + + checkFileExists(path.join( + outputPath, + mode, + 'device_info.xcframework', + 'ios-armv7_arm64', + 'device_info.framework', + 'Headers', + 'DeviceInfoPlugin.h', + )); + final String simulatorFrameworkPath = path.join( outputPath, mode, @@ -246,10 +257,23 @@ Future main() async { 'device_info.framework', 'device_info', ); + + final String simulatorFrameworkHeaderPath = path.join( + outputPath, + mode, + 'device_info.xcframework', + 'ios-x86_64-simulator', + 'device_info.framework', + 'Headers', + 'DeviceInfoPlugin.h', + ); + if (mode == 'Debug') { checkFileExists(simulatorFrameworkPath); + checkFileExists(simulatorFrameworkHeaderPath); } else { checkFileNotExists(simulatorFrameworkPath); + checkFileNotExists(simulatorFrameworkHeaderPath); } } diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index cb673bae917..29d94e32a53 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart @@ -475,7 +475,8 @@ end '-destination generic/platform=iOS', 'SYMROOT=${iPhoneBuildOutput.path}', 'BITCODE_GENERATION_MODE=$bitcodeGenerationMode', - 'ONLY_ACTIVE_ARCH=NO' // No device targeted, so build all valid architectures. + 'ONLY_ACTIVE_ARCH=NO', // No device targeted, so build all valid architectures. + 'BUILD_LIBRARY_FOR_DISTRIBUTION=YES', ]; RunResult buildPluginsResult = await processUtils.run( @@ -500,8 +501,8 @@ end '-destination generic/platform=iOS', 'SYMROOT=${simulatorBuildOutput.path}', 'ARCHS=x86_64', - 'ONLY_ACTIVE_ARCH=NO' - // No device targeted, so build all valid architectures. + 'ONLY_ACTIVE_ARCH=NO', // No device targeted, so build all valid architectures. + 'BUILD_LIBRARY_FOR_DISTRIBUTION=YES', ]; buildPluginsResult = await processUtils.run( diff --git a/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl index 8965230aa7d..86818910277 100644 --- a/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl +++ b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl @@ -10,17 +10,5 @@ target 'Runner' do install_flutter_plugin_pods flutter_application_path end -post_install do |installer| - installer.pods_project.targets.each do |target| - # Aggregate targets do not have a headers build phase. - if target.respond_to?('headers_build_phase') - target.headers_build_phase.files.each do |file| - # Make headers public so they can be imported by the host application. - file.settings = { 'ATTRIBUTES' => ['Public'] } - end - end - end -end - # Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. install! 'cocoapods', :disable_input_output_paths => true