Let (almost) all flutter create CocoaPods references be dynamically generated later (#9791)
* Remove all initial cocoapod traces from flutter create except Podfile
* Make updateXcodeGeneratedProperties parameters named
* review notes
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index 5262b25..413b33a 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -137,9 +137,6 @@
bool buildForDevice,
bool codesign: true
}) async {
- final String flutterProjectPath = fs.currentDirectory.path;
- updateXcodeGeneratedProperties(flutterProjectPath, mode, target);
-
if (!_checkXcodeVersion())
return new XcodeBuildResult(success: false);
@@ -157,6 +154,13 @@
if (hasFlutterPlugins)
await _runPodInstall(appDirectory, flutterFrameworkDir(mode));
+ updateXcodeGeneratedProperties(
+ projectPath: fs.currentDirectory.path,
+ mode: mode,
+ target: target,
+ hasPlugins: hasFlutterPlugins
+ );
+
final List<String> commands = <String>[
'/usr/bin/env',
'xcrun',
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
index 73f0afa..aa77254 100644
--- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart
+++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+import 'package:meta/meta.dart';
+
import '../artifacts.dart';
import '../base/file_system.dart';
import '../base/process.dart';
@@ -16,7 +18,12 @@
return fs.path.normalize(fs.path.dirname(artifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, mode)));
}
-void updateXcodeGeneratedProperties(String projectPath, BuildMode mode, String target) {
+void updateXcodeGeneratedProperties({
+ @required String projectPath,
+ @required BuildMode mode,
+ @required String target,
+ @required bool hasPlugins,
+}) {
final StringBuffer localsBuffer = new StringBuffer();
localsBuffer.writeln('// This is a generated file; do not edit or check into version control.');
@@ -45,6 +52,10 @@
localsBuffer.writeln('LOCAL_ENGINE=${localEngineArtifacts.engineOutPath}');
}
+ // Add dependency to CocoaPods' generated project only if plugns are used.
+ if (hasPlugins)
+ localsBuffer.writeln('#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"');
+
final File localsFile = fs.file(fs.path.join(projectPath, 'ios', 'Flutter', 'Generated.xcconfig'));
localsFile.createSync(recursive: true);
localsFile.writeAsStringSync(localsBuffer.toString());