在使用Xcode 13.4 beta更新到Catalina 10.15.4 beta之后,该模拟器还将Simulator更新为13.4(921.4)。
该应用程序可以在物理连接的设备上编译并正确运行,但是任何设备的仿真器都无法通过此阶段。
我收到了错误
为iOS构建,但为iOS Simulator构建了链接和嵌入式框架'App.framework'。
或
是为iOS Simulator构建的,但是链接和嵌入式框架'App.framework'是为iOS构建的。
我该如何解决?
答案 0 :(得分:62)
Xcode 11.4更改了框架的链接和嵌入式方式,您可能会遇到在iOS设备和模拟器之间切换的问题。 Flutter v1.15.3和更高版本将自动迁移您的Xcode项目。
要解除卡住,请遵循以下说明;
rm -rf ios/Flutter/App.framework
Official推荐的手动迁移步骤
按如下所示更改Runner目标构建设置Build Phases> Thin Binary脚本:
/ bin / sh“ $ FLUTTER_ROOT / packages / flutter_tools / bin / xcode_backend.sh” 嵌入
/ bin / sh“ $ FLUTTER_ROOT / packages / flutter_tools / bin / xcode_backend.sh” 薄
在Runner目标中 Build Settings>其他链接器标记
(OTHER_LDFLAGS)添加$(继承)-frameflutter
希望有帮助!
答案 1 :(得分:9)
原因: “在Xcode 12+中,Validate Workspace的默认选项在内部是没有设置的。我们需要手动设置一下,避免出现这种错误。设置回默认的'NO'选项没有问题。
答案 2 :(得分:4)
Xcode 11.4更改了框架的链接和嵌入式方式,这导致在iOS设备和模拟器之间切换的问题。
请遵循official guide,了解如何迁移项目。
答案 3 :(得分:3)
经过几天的尝试,找到了在iOS设备上测试Flutter应用的解决方案,我终于找到了:
flutter clean
flutter build ios
-打开xCode并在您的设备上运行应用。
答案 4 :(得分:3)
已更新为Xcode 11.4。 iOS 13.4,IphoneX。应用程序仅使用API提取数据。 应用在白屏上启动,然后最终在模拟器和设备上崩溃。
我遵循了官方指南(我也是rm -rf ios/Flutter/App.framework
)
flutter.dev/docs/development/ios-project-migration。
我跑了几次flutter clean
我还尝试删除Pods /文件夹和Podfile.lock,然后使用ios文件夹中的pod install
重新安装。
由于我使用的是异步数据,因此我也在main()中添加为第一行
WidgetsFlutterBinding.ensureInitialized();
没有帮助,应用程序没有启动任何一个模拟器。
然后,我删除了ios/
和android/
文件夹。之后,我在项目文件夹中运行了命令flutter create .
,该命令重新生成了提到的文件夹。
此后,我的应用在模拟器和设备上均正常运行。 我希望这会对其他人有所帮助。注意!!如果您手动修改了这些文件夹,请事先进行备份或提交。
答案 5 :(得分:0)
我已经在flutter的官方网站上尝试了该解决方案,但是它对我不起作用,因此我找到了一个对我有用的临时解决方案,但是这使我付出了一些辛苦的工作: 这是我的stick_framework项目示例,这是一个全新的项目(首次在模拟器上运行)
我在flutter项目中创建了2个名为
的文件夹
“ ios_simulator”和“ ios_real_device”。
enter image description here
现在我的第一个构建是针对模拟器的,然后我想切换到真实设备,将Flutter项目中的ios文件夹移至“ ios_simulator”
答案 6 :(得分:0)
手动将Flutter升级到1.15版也可以解决此问题。运行flutter version v1.15.17
对我有帮助。
此外,您可以通过运行beta
命令来切换到dev
或flutter channel
频道,但请确保对照所有BC更改检查代码...
答案 7 :(得分:0)
就我而言,它仅适用于模拟器(调试)。如果您想在应用商店(发行版)上部署应用,我强烈建议您使用以下方式升级Flutter版本:
flutter version v1.15.17
否则,您将遇到崩溃的白色屏幕应用程序。
只需升级flutter版本,一切正常
答案 8 :(得分:0)
此错误是由 Xcode 11.4 引起的,可以通过删除/重新嵌入框架并添加新的运行脚本阶段来解决
在常规下->“框架,库和嵌入式内容”
在构建阶段下,添加一个新的运行脚本阶段。
在“构建阶段”窗格中选择“ +”按钮以创建“新运行脚本阶段”。
确认脚本是最底层的构建阶段,并配置其字段。
/bin/sh
(这是默认值)。rm -r "FRAMEWORK_DIRECTORY/YOUR_FRAMEWORK.framework/"
答案 9 :(得分:0)
这里没有其他解决方案对我有用。就我而言,通过在我的项目中搜索ONLY_ACTIVE_ARCH并将它们全部更改为YES,可以解决此问题。我在这里找到了解决方案: