forked from firka/flutter
Set DEFINES_MODULE=YES in plugin templates (#41828)
This commit is contained in:
@@ -881,6 +881,7 @@ Future<void> _runIntegrationTests() async {
|
||||
await _runDevicelabTest('flutter_create_offline_test_windows');
|
||||
} else if (Platform.isMacOS) {
|
||||
await _runDevicelabTest('flutter_create_offline_test_mac');
|
||||
await _runDevicelabTest('plugin_lint_mac');
|
||||
// TODO(jmagman): Re-enable once flakiness is resolved.
|
||||
// await _runDevicelabTest('module_test_ios');
|
||||
}
|
||||
|
||||
69
dev/devicelab/bin/tasks/plugin_lint_mac.dart
Normal file
69
dev/devicelab/bin/tasks/plugin_lint_mac.dart
Normal file
@@ -0,0 +1,69 @@
|
||||
// Copyright 2019 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/framework/utils.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
/// Tests that the Flutter plugin template works. Use `pod lib lint`
|
||||
/// to confirm the plugin module can be imported into an app.
|
||||
Future<void> main() async {
|
||||
await task(() async {
|
||||
section('Create Objective-C iOS plugin');
|
||||
|
||||
final Directory tempDir = Directory.systemTemp.createTempSync('flutter_plugin_test.');
|
||||
try {
|
||||
const String objcPluginName = 'test_plugin_objc';
|
||||
await inDirectory(tempDir, () async {
|
||||
await flutter(
|
||||
'create',
|
||||
options: <String>[
|
||||
'--org',
|
||||
'io.flutter.devicelab',
|
||||
'--template=plugin',
|
||||
'--ios-language=objc',
|
||||
objcPluginName,
|
||||
],
|
||||
);
|
||||
});
|
||||
|
||||
final String objcPodspecPath = path.join(tempDir.path, objcPluginName, 'ios', '$objcPluginName.podspec');
|
||||
section('Lint Objective-C iOS plugin as framework');
|
||||
await inDirectory(tempDir, () async {
|
||||
await exec(
|
||||
'pod',
|
||||
<String>[
|
||||
'lib',
|
||||
'lint',
|
||||
objcPodspecPath,
|
||||
'--allow-warnings',
|
||||
],
|
||||
);
|
||||
});
|
||||
|
||||
section('Lint Objective-C iOS plugin as library');
|
||||
await inDirectory(tempDir, () async {
|
||||
await exec(
|
||||
'pod',
|
||||
<String>[
|
||||
'lib',
|
||||
'lint',
|
||||
objcPodspecPath,
|
||||
'--allow-warnings',
|
||||
'--use-libraries',
|
||||
],
|
||||
);
|
||||
});
|
||||
|
||||
return TaskResult.success(null);
|
||||
} catch (e) {
|
||||
return TaskResult.failure(e.toString());
|
||||
} finally {
|
||||
rmTree(tempDir);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
#
|
||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
|
||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
|
||||
# Run `pod lib lint {{projectName}}.podspec' to validate before publishing.
|
||||
#
|
||||
Pod::Spec.new do |s|
|
||||
s.name = '{{projectName}}'
|
||||
@@ -15,7 +16,8 @@ Pod::Spec.new do |s|
|
||||
s.source_files = 'Classes/**/*'
|
||||
s.public_header_files = 'Classes/**/*.h'
|
||||
s.dependency 'Flutter'
|
||||
s.platform = :ios, '8.0'
|
||||
|
||||
s.ios.deployment_target = '8.0'
|
||||
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }
|
||||
end
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#
|
||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
|
||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
|
||||
# Run `pod lib lint {{projectName}}.podspec' to validate before publishing.
|
||||
#
|
||||
Pod::Spec.new do |s|
|
||||
s.name = '{{projectName}}'
|
||||
@@ -15,7 +16,6 @@ Pod::Spec.new do |s|
|
||||
s.source_files = 'Classes/**/*'
|
||||
s.dependency 'FlutterMacOS'
|
||||
|
||||
s.platform = :osx
|
||||
s.osx.deployment_target = '10.11'
|
||||
s.platform = :osx, '10.11'
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user