Xcode 迁移
你需要一台安装了 Xcode 的 Mac 来开发 iOS 的 Flutter 应用。 Xcode 11.4 变更了很多库的链接和集成方式,你可能会在 iOS 真机和模拟器之间切换时遇到以下两个错误:
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.
Flutter 1.15.3 及以上的版本会自动迁移你的 Xcode 项目。
你可以手动执行以下步骤进行迁移:
-
在 Flutter 应用目录下,使用 Xcode 打开
ios/Runner.xcworkspace
。 -
在 Navigator 面板,定位到 Flutter 组别并移除
App.framework
和Flutter.framework
。 -
在 Runner 目标的构建设置 (build settings) 的 Build Phases > Link Binary With Libraries 和 Build Phases > Embed Frameworks 中确认
App.framework
和Flutter.framework
已经不存在。 -
修改 Runner 目标构建设置的 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
-
在 Runner 目标的 Build Settings > Other Linker Flags (
OTHER_LDFLAGS
) 中添加$(inherited) -framework Flutter
。