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

后端 未结 9 1651
生来不讨喜
生来不讨喜 2020-12-24 11:57

After updating to Catalina 10.15.4 beta with Xcode 13.4 beta, which also updated Simulator to 13.4 (921.4).

The application compiles and runs correctly on a physical

9条回答
  •  渐次进展
    2020-12-24 12:39

    Xcode 11.4 changed the way frameworks are linked and embedded, and you may experience issues switching between iOS devices and simulators. Flutter v1.15.3 and later will automatically migrate your Xcode project.

    To get unstuck, follow the instructions below;

    • Quick fix (make your simulator work)

    rm -rf ios/Flutter/App.framework

    • Official recommended Steps to migrate manually

      1. From the Flutter app directory, open ios/Runner.xcworkspace in Xcode.
      2. In the Navigator pane, locate the Flutter group and remove App.framework and Flutter.framework.
      3. In the Runner target build settings Build Phases > Link Binary With Libraries confirm App.framework and Flutter.framework are no longer present. Also confirm in Build Phases > Embed Frameworks.

    1. Change the Runner target build settings Build Phases > Thin Binary script as follows:

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

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

    1. In the Runner target Build Settings > Other Linker Flags

      (OTHER_LDFLAGS) add $(inherited) -framework Flutter

    Hope it helps!

提交回复
热议问题