Handle hidden dot files in iOS framework bundles (#99771)

This commit is contained in:
Jenn Magder 2022-03-08 15:05:22 -08:00 committed by GitHub
parent bb1b2fd072
commit 47a5b18e14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -79,6 +79,26 @@ Future<void> main() async {
);
}
section('Build ephemeral host app when SDK is on external disk');
// Pretend the SDK was on an external drive with stray "._" files in the xcframework
// and build again.
Directory(path.join(
projectDir.path,
'.ios',
'Flutter',
'engine',
'Flutter.xcframework',
'._ios-arm64_x86_64-simulator',
)).createSync(recursive: true);
await inDirectory(projectDir, () async {
await flutter(
'build',
options: <String>['ios', '--no-codesign', '--simulator', '--debug'],
);
});
section('Clean build');
await inDirectory(projectDir, () async {

View File

@ -60,6 +60,7 @@ def flutter_additional_ios_build_settings(target)
# Profile can't be derived from the CocoaPods build configuration. Use release framework (for linking only).
configuration_engine_dir = build_configuration.type == :debug ? debug_framework_dir : release_framework_dir
Dir.new(configuration_engine_dir).each_child do |xcframework_file|
continue if xcframework_file.start_with?(".") # Hidden file, possibly on external disk.
if xcframework_file.end_with?("-simulator") # ios-arm64_x86_64-simulator
build_configuration.build_settings['FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]'] = "\"#{configuration_engine_dir}/#{xcframework_file}\" $(inherited)"
elsif xcframework_file.start_with?("ios-") # ios-armv7_arm64