每次我从物理 iOS 和模拟器切换构建时都必须运行 Flutter Clean 并删除框架

Posted

技术标签:

【中文标题】每次我从物理 iOS 和模拟器切换构建时都必须运行 Flutter Clean 并删除框架【英文标题】:Having to run Flutter Clean and remove framework everytime I switch building from Physical iOS and Simulator 【发布时间】:2020-07-06 05:41:10 【问题描述】:

我有一个一个月前开始的颤振项目。昨天我的 xcode 自动更新并开始出现此错误

错误:为 ios 构建,但链接和嵌入式框架“App.framework”是为 iOS 模拟器构建的。 (在项目“Runner”的目标“Runner”中)

我可以让它工作的唯一方法是运行下面的两个命令 $扑干净 $ rm -rf ios/Flutter/App.framework ios/Flutter/Flutter.framework

所以现在它在物理设备上运行流畅,但如果我想在模拟器上运行 我再次收到类似的错误,但没有像这样的“模拟器”一词

错误:为 iOS 模拟器构建,但链接和嵌入式框架“App.framework”是为 iOS 构建的。 (在项目“Runner”的目标“Runner”中)

要让它工作,我必须再次运行这两个命令。

这是正常行为吗?我确定解决方案很简单?抱歉,我是 Flutter 和 iOS 开发的新手。 有没有办法同时为 iOS Physical 和 iOS Simulator 提供两个框架,这样我就不必清理和删除框架?请让我知道如何确切地添加两者。步骤将不胜感激

谢谢!

【问题讨论】:

我遇到了完全相同的问题,您使用的是 xcode 版本吗:版本 11.4 (11E146)? 是的,版本 11.4 (11E146) 【参考方案1】:

Xcode 11.4 改变了框架链接和嵌入的方式。 Flutter v1.15.3 及更高版本将自动迁移您的 Xcode 项目。

同时,要手动修复它,请按照以下说明操作:https://flutter.dev/docs/development/ios-project-migration

【讨论】:

我试过了。它适用于模拟器,但是当我在物理设备上尝试时出现错误现在我之前的 2 个命令也不起作用:( ios-deploy[94888:822429] [ !! ] 错误 0xe800801c:找不到代码签名。AMDeviceSecureInstallApplication(0 , 设备, url, options, install_callback, 0) 无法安装 build/ios/iphoneos/Runner.app 从 xcode 运行时出现相同错误无法安装“Runner”域:com.apple.dt.MobileDeviceErrorDomain 代码:-402620388 - - 未找到代码签名。域:com.apple.dt.MobileDeviceErrorDomain 代码:-402620388 还有这个问题 :( 有人知道这个吗? 这个问题在 Flutter 1.20 中又回来了:-/

以上是关于每次我从物理 iOS 和模拟器切换构建时都必须运行 Flutter Clean 并删除框架的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 无法仅在物理 iOs 设备中构建和运行 iOS 应用程序

在 Windows 上的模拟器和物理设备上运行本机反应的问题

Eclipse 引用 Maven 的旧类文件。每次我进行一次更改时都必须重新构建项目

每次我从该模块导入任何内容时都会运行 __init__.py 吗? [复制]

复制资产/资源使 iOS 测试令人沮丧

vsCode 不在物理 iPhone 上运行颤振应用程序