xcode - Flutter-为iOS构建,但是链接和嵌入式框架 'App.framework'是为iOS Simulator构建的

标签 xcode android-studio flutter dart

在使用Xcode 13.4 beta更新到Catalina 10.15.4 beta之后,该模拟器还将Simulator更新为13.4(921.4)。

该应用程序可以在物理连接的设备上编译并正确运行,但是任何设备的仿真器都无法通过此阶段。

我弄错了

Building for iOS, but the linked and embedded framework 'App.framework' was built for iOS Simulator.



或者

Building for iOS Simulator, but the linked and embedded framework 'App.framework' was built for iOS.



enter image description here

我怎样才能解决这个问题?

最佳答案

Xcode 11.4更改了框架的链接和嵌入式方式,您可能会遇到在iOS设备和模拟器之间切换的问题。 Flutter v1.15.3和更高版本将自动迁移您的Xcode项目。

要避免卡住,请按照以下说明进行操作;

  • 快速修复(使您的模拟器正常工作)
  • rm -rf ios/Flutter/App.framework
  • Official推荐的手动迁移步骤
  • 从Flutter应用程序目录中,打开ios/Runner.xcworkspace
    Xcode。
  • 在“导航器” Pane 中,找到Flutter组,然后删除App.framework和Flutter.framework。
    enter image description here
  • 在Runner目标build设置中,“构建阶段”>“使用库链接二进制文件”确认不再存在App.framework和Flutter.framework。还要在“构建阶段”>“嵌入框架”中进行确认。

  • enter image description here
  • 如下更改Runner目标build设置Build Phases> Thin Binary脚本:

    /bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

    /bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" thin


  • enter image description here
  • 在Runner目标中 Build Settings> Other Linker Flags

    (OTHER_LDFLAGS)添加$(继承)-framework Flutter

  • enter image description here

    希望能帮助到你!

    关于xcode - Flutter-为iOS构建,但是链接和嵌入式框架 'App.framework'是为iOS Simulator构建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60881764/

    相关文章:

    C 函数总是向 Objective C 返回零

    ios - CFUUID - 创建一次并在应用程序的整个生命周期中使用

    java - OnCreate 中的 PopupWindow 和 ShowAtLocation - 如何获取父 View ?

    Android - 运动布局语法错误 : No Valid LayoutDescription

    android - 在 webview 中获取当前 URL

    autocomplete - Flutter TextFormField onChanged 事件

    ios - Cordova 通知插件安装失败(Cordova 3.6)

    android-studio - javah错误:gradle和Android Studio不存在该包

    flutter - 无法将类型 'bool?' 的值分配给类型 'bool' 的变量,因为 'bool?' 可以为 null,而 'bool' 则不能

    ios - 尝试上传 iOS 应用程序,无法存档