ios构建错误:在命令行上运行"flutter run"时产生多个命令。

10 浏览
0 Comments

ios构建错误:在命令行上运行"flutter run"时产生多个命令。

在mac上将Xcode升级到10.0版本后,Flutter iOS构建失败。

Xcode构建输出错误:

- 错误:多个命令生成'/Users/dev/Documents/projects/Personal/uaenumber/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework':

1) 'Runner'目标从'/Users/dev/Documents/projects/Personal/uaenumber/ios/Flutter/Flutter.framework'复制到'/Users/dev/Documents/projects/Personal/uaenumber/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'的复制命令

2) 该命令依赖于'Runner'目标中的命令:脚本阶段“[CP] Embed Pods Frameworks”

- 警告:在Swift 4模式下使用Swift 3 @objc推断已弃用。请处理已弃用的@objc推断警告,使用“启用已弃用的Swift 3 @objcinference日志记录”功能测试代码,然后通过将“Runner”目标的“Swift 3 @objc推断”构建设置更改为“默认”来禁用推断。

- 警告:忽略重复的输出文件:'/Users/nagendra/Documents/projects/Personal/uaedialer/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework'(在目标“Runner”中)

- 使用新的构建系统

- 计划构建

- 构建描述构建应用程序失败,无法在模拟器上启动iPhone X。

我尝试重新创建项目并将所有源文件复制到新的项目文件夹中,但问题仍未解决。

Xcode版本-10.0(10A255)

0
0 Comments

iOS构建错误:多个命令在"flutter run"命令行中产生的问题已经被确认是一个已知问题。以下是问题的解释和一些解决方法:

受影响的项目:

这个问题影响使用Xcode 10构建的所有依赖于CocoaPods的Flutter项目,通常这意味着那些依赖于插件的项目。

解决方法:

有两个解决方法可供选择:

选项1:使用传统的构建系统。打开ios/Runner.xcworkspace,将构建系统更改为传统的构建系统。

选项2:使用新的Xcode 10构建系统。

- 打开ios/Runner.xcworkspace。

- 在项目导航栏中选择Runner项目。

- 在主视图中,选择Runner目标,然后选择Build Phases选项卡。

- 展开Embed Frameworks阶段,并从嵌入的框架列表中选择Flutter.framework。

- 点击减号将Flutter.framework从列表中删除(确保保留App.framework)。

根本原因:

当使用插件时,有两个竞争的构建操作将Flutter.framework复制到构建应用程序的Frameworks目录中:

1. Runner项目的Embed Frameworks构建阶段。

2. pod install在项目中创建的[CP] Embed Pods Frameworks构建阶段。

第一项是为了确保在没有插件(因此在Xcode项目中没有CocoaPods集成)的情况下,将框架复制到构建的应用程序中。第二项是因为Flutter的podspec将Flutter.framework声明为vended_framework,并且CocoaPods会自动为每个这样的vended_framework在CocoaPods依赖的传递闭包中添加一个复制步骤。

0
0 Comments

如果你已经尝试了各种方法却仍然无法成功构建存档文件,那么你的问题可能和我的情况一样。我花了3个工作日来解决这个问题。我的问题是在向项目中添加通知服务目标后出现的。但是它似乎也适用于其他许多情况:

问题是由于两个目标中的库产生了多个命令。在我的情况下,例如,在项目目标和通知扩展目标中,都有GoogleUtilities这个库,导致它们产生冲突或重复的命令。解决方法是在顶层明确该依赖关系。

Pod文件将如下所示:

platform :ios, '10.0'
use_frameworks!
inhibit_all_warnings!
pod 'GoogleUtilities' // 添加这一行非常重要。
target 'MyProject' do
  pod 'Firebase/Analytics'
  pod 'Firebase/Crashlytics'
  pod 'Firebase/Messaging'
# 其他pod
end
target 'NotificationService' do
  pod 'Firebase/Messaging'
end

运行以下命令:

pod deintegrate
pod install 

非常感谢!

谢谢你,你是最棒的!

0
0 Comments

从上述内容中可以看出,问题的原因是在执行"flutter run"命令时,出现了"Multiple commands produce on "flutter run" from command line"的错误。根据给出的解决方法,可以得出以下结论:原因是Flutter.framework被重复引用,造成了冲突。解决方法是在Xcode中移除重复引用的Flutter.framework。

具体的解决步骤如下:

1. 打开ios/Runner.xcworkspace文件,选择项目导航侧边栏中的Runner项目。

2. 在主视图中,选择Runner目标,然后选择Build Phases选项卡。

3. 展开Embed Frameworks阶段,并从嵌入的框架列表中选择Flutter.framework。

4. 点击减号按钮,将Flutter.framework从列表中移除(确保保留App.framework)。

如果在上述步骤中无法找到Flutter.framework,可以尝试使用命令"rm -Rf ios/Flutter/Flutter.framework"来删除该文件。

总结起来,解决这个问题的关键是在Xcode中移除重复引用的Flutter.framework。通过执行上述步骤,可以解决"Multiple commands produce on "flutter run" from command line"错误。

0