Nag*_*nti 6 cross-platform build ios flutter
升级到mac中的Xcode 10.0版本后,Flutter iOS构建失败.
Nagendras-MacBook-Pro:uaenumber nagendra$ flutter run
Launching lib/main.dart on iPhone X in debug mode...
Starting Xcode build...
Xcode build done. 1.4s
Failed to build iOS app
Error output from Xcode build:
?
** BUILD FAILED **
Xcode's output:
?
error: Multiple commands produce '/Users/dev/Documents/projects/Personal/uaenumber/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework':
1) Target 'Runner' has copy command from '/Users/dev/Documents/projects/Personal/uaenumber/ios/Flutter/Flutter.framework' to '/Users/dev/Documents/projects/Personal/uaenumber/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'
2) That command depends on command in Target 'Runner': script phase “[CP] Embed Pods Frameworks”
warning: The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objcinference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "Runner" target. (in target 'Runner')
warning: ignoring duplicated output file: '/Users/nagendra/Documents/projects/Personal/uaedialer/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework' (in target 'Runner')
note: Using new build systemnote: Planning buildnote: Constructing build description
Could not build the application for the simulator.
Error launching application on iPhone X.
Run Code Online (Sandbox Code Playgroud)
Xcode版本 - 10.0(10A255)
我尝试重新创建项目并将所有源文件复制到新项目文件夹,但它没有解决问题.有谁有想法吗?
Doa*_*Bui 18
如果你已经尝试了一切,但仍然无法成功构建存档,那么你看起来就像我的情况。
我花了 3 个工作日才解决这个问题。我的问题是在将Notification Services目标添加到项目后发生的。但看起来它也适用于许多其他情况:
该问题是由库内2个目标多个命令产生的。例如,在我的例子中,在项目目标和通知扩展目标中,两者都GoogleUtilities存在导致它们冲突或重复生成命令的情况。解决方案是在顶层明确这种依赖关系。pod 文件将如下所示:
platform :ios, '10.0'
use_frameworks!
inhibit_all_warnings!
pod 'GoogleUtilities' // Add this line is very important.
target 'MyProject' do
pod 'Firebase/Analytics'
pod 'Firebase/Crashlytics'
pod 'Firebase/Messaging'
# Other pods
end
target 'NotificationService' do
pod 'Firebase/Messaging'
end
Run Code Online (Sandbox Code Playgroud)
运行后:
pod deintegrate
pod install
Run Code Online (Sandbox Code Playgroud)
tud*_*dan 13
这是一个众所周知的问题.以下是解释和一些解决方法:https: //github.com/flutter/flutter/issues/20685#issuecomment-421511890
Nag*_*nti 10
这个解决方案对我有用.
编辑: Flutter 的最新稳定版本会将您的 Xcode 项目迁移到新的构建系统(下面的第一步)并完全避免多个嵌入式框架警告。如果没有,请按照https://flutter.dev/docs/development/ios-project-migration 中的说明进行操作。您不再需要编辑 Podfile(下面的第二步)。
见https://github.com/flutter/flutter/issues/20685#issuecomment-622126064
上一个答案
install! 'cocoapods', :disable_input_output_paths => true
Run Code Online (Sandbox Code Playgroud)
3. 在你的 Flutter 应用程序中,再次构建以触发一个pod install,它会自动清理构建阶段
flutter build ios
Run Code Online (Sandbox Code Playgroud)
参见:https : //github.com/flutter/flutter/issues/20685#issuecomment-509731873 https://github.com/flutter/flutter/issues/20685#issuecomment-510162863
警告:不要按照其他答案中的建议恢复到 Xcode 弃用的旧版构建系统来解决此问题。