Unverified Commit 7e05bc4b authored by Victoria Ashworth's avatar Victoria Ashworth Committed by GitHub

Fix embedding FlutterMacOS.framework for macOS add2app via cocoapods (#144248)

Fixes https://github.com/flutter/flutter/issues/144244.
parent ff3b6dc0
...@@ -810,6 +810,41 @@ Future<void> _testBuildMacOSFramework(Directory projectDir) async { ...@@ -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 ...@@ -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() { ...@@ -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() { ...@@ -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() { ...@@ -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(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment