mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Fix embedding FlutterMacOS.framework for macOS add2app via cocoapods (#144248)
Fixes https://github.com/flutter/flutter/issues/144244.
This commit is contained in:
parent
ff3b6dc02c
commit
7e05bc4b30
@ -810,6 +810,41 @@ Future<void> _testBuildMacOSFramework(Directory projectDir) async {
|
|||||||
'GeneratedPluginRegistrant.swift',
|
'GeneratedPluginRegistrant.swift',
|
||||||
));
|
));
|
||||||
|
|
||||||
|
section('Validate embed FlutterMacOS.framework with CocoaPods');
|
||||||
|
|
||||||
|
final File podspec = File(path.join(
|
||||||
|
cocoapodsOutputPath,
|
||||||
|
'Debug',
|
||||||
|
'FlutterMacOS.podspec',
|
||||||
|
));
|
||||||
|
|
||||||
|
podspec.writeAsStringSync(
|
||||||
|
podspec.readAsStringSync().replaceFirst('null.null.0', '0.0.0'),
|
||||||
|
);
|
||||||
|
|
||||||
|
final Directory macosDirectory = Directory(path.join(projectDir.path, 'macos'));
|
||||||
|
final File podfile = File(path.join(macosDirectory.path, 'Podfile'));
|
||||||
|
final String currentPodfile = podfile.readAsStringSync();
|
||||||
|
|
||||||
|
// Temporarily test Add-to-App Cocoapods podspec for framework
|
||||||
|
podfile.writeAsStringSync('''
|
||||||
|
target 'Runner' do
|
||||||
|
# Comment the next line if you don't want to use dynamic frameworks
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
pod 'FlutterMacOS', :podspec => '${podspec.path}'
|
||||||
|
end
|
||||||
|
''');
|
||||||
|
await inDirectory(macosDirectory, () async {
|
||||||
|
await eval('pod', <String>['install']);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Change podfile back to original
|
||||||
|
podfile.writeAsStringSync(currentPodfile);
|
||||||
|
await inDirectory(macosDirectory, () async {
|
||||||
|
await eval('pod', <String>['install']);
|
||||||
|
});
|
||||||
|
|
||||||
section('Build frameworks without plugins');
|
section('Build frameworks without plugins');
|
||||||
await _testBuildFrameworksWithoutPlugins(projectDir, platform: 'macos');
|
await _testBuildFrameworksWithoutPlugins(projectDir, platform: 'macos');
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ $licenseSource
|
|||||||
LICENSE
|
LICENSE
|
||||||
}
|
}
|
||||||
s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
|
s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
|
||||||
s.source = { :http => '${cache.storageBaseUrl}/flutter_infra_release/flutter/${cache.engineRevision}/$artifactsMode/artifacts.zip' }
|
s.source = { :http => '${cache.storageBaseUrl}/flutter_infra_release/flutter/${cache.engineRevision}/$artifactsMode/FlutterMacOS.framework.zip' }
|
||||||
s.documentation_url = 'https://flutter.dev/docs'
|
s.documentation_url = 'https://flutter.dev/docs'
|
||||||
s.osx.deployment_target = '10.14'
|
s.osx.deployment_target = '10.14'
|
||||||
s.vendored_frameworks = 'FlutterMacOS.framework'
|
s.vendored_frameworks = 'FlutterMacOS.framework'
|
||||||
|
@ -470,7 +470,7 @@ void main() {
|
|||||||
|
|
||||||
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
||||||
final String podspecContents = expectedPodspec.readAsStringSync();
|
final String podspecContents = expectedPodspec.readAsStringSync();
|
||||||
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64/artifacts.zip'"));
|
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64/FlutterMacOS.framework.zip'"));
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => memoryFileSystem,
|
FileSystem: () => memoryFileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
@ -489,7 +489,7 @@ void main() {
|
|||||||
|
|
||||||
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
||||||
final String podspecContents = expectedPodspec.readAsStringSync();
|
final String podspecContents = expectedPodspec.readAsStringSync();
|
||||||
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64-profile/artifacts.zip'"));
|
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64-profile/FlutterMacOS.framework.zip'"));
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => memoryFileSystem,
|
FileSystem: () => memoryFileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
@ -508,7 +508,7 @@ void main() {
|
|||||||
|
|
||||||
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
final File expectedPodspec = outputDirectory.childFile('FlutterMacOS.podspec');
|
||||||
final String podspecContents = expectedPodspec.readAsStringSync();
|
final String podspecContents = expectedPodspec.readAsStringSync();
|
||||||
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64-release/artifacts.zip'"));
|
expect(podspecContents, contains("'$storageBaseUrl/flutter_infra_release/flutter/$engineRevision/darwin-x64-release/FlutterMacOS.framework.zip'"));
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => memoryFileSystem,
|
FileSystem: () => memoryFileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Loading…
Reference in New Issue
Block a user