返回

Flutter Xcode 升级至 12.0 后 iOS 真机运行报错的解决方案

IOS

升级 Flutter Xcode 后在 iOS 真机上运行时出现 "Symbol not found: _$initSwiftUI" 错误的解决方法

在 Flutter 开发中,升级 Xcode 至最新版本通常会带来性能优化和新特性。但是,一些开发者在升级后可能会遇到 "Symbol not found: _$initSwiftUI" 错误,阻碍了他们顺利运行项目。本文将详细介绍这一问题的成因和解决方法,帮助 Flutter 开发者顺利解决此问题。

问题的成因

"Symbol not found: _$initSwiftUI" 错误通常出现在将 Flutter 版本升级至 12.0 或更高版本后,在 iOS 真机上运行项目时。此错误表明 Xcode 项目中缺少 Swift 支持文件。具体来说,当 Flutter 升级后,Xcode 项目中会缺少 _initSwiftUI 符号,从而导致运行时找不到此符号。

解决方法

为了解决 "Symbol not found: _$initSwiftUI" 错误,需要采取以下步骤:

  1. 重新生成 Xcode 项目: 在 Xcode 中,打开项目的 workspace 文件,然后点击菜单栏中的 "Product" > "Build" > "Build For" > "iOS Simulator/Generic iOS Device"。这将重新生成 Xcode 项目并创建必要的 Swift 支持文件。

  2. 清理 Xcode 缓存: Xcode 缓存损坏也可能导致此错误。转到 "Xcode" > "Preferences" > "Locations",然后点击 "Derived Data" 旁边的 "Remove" 按钮。这将清除 Xcode 缓存并迫使它重新创建所有派生数据。

  3. 更新 CocoaPods: CocoaPods 是 Flutter iOS 项目的依赖管理工具。确保已安装最新版本的 CocoaPods。在终端中运行以下命令进行更新:

sudo gem install cocoapods
  1. 重新运行 pod install: 在项目的 iOS 文件夹中,重新运行 pod install 命令。这将更新项目中的依赖关系,并确保 Flutter 插件与 Xcode 兼容。

  2. 重启 Xcode: 完成上述步骤后,重启 Xcode 以使更改生效。

验证解决方案

完成上述步骤后,再次尝试在 iOS 真机上运行项目。如果问题已解决,项目应该可以正常运行,并且不会再出现 "Symbol not found: _$initSwiftUI" 错误。

结论

升级 Flutter Xcode 后遇到 "Symbol not found: _$initSwiftUI" 错误可以通过重新生成 Xcode 项目、清理 Xcode 缓存、更新 CocoaPods、重新运行 pod install 并重启 Xcode 来解决。通过遵循本文中的步骤,Flutter 开发者可以轻松解决此问题并继续在 iOS 真机上开发 Flutter 应用程序。

常见问题解答

  1. 为什么升级 Flutter Xcode 会导致 "Symbol not found: _$initSwiftUI" 错误?

因为 Flutter 升级后,Xcode 项目中会缺少 _initSwiftUI 符号,从而导致运行时找不到此符号。

  1. 如何重新生成 Xcode 项目?

在 Xcode 中,打开项目的 workspace 文件,然后点击菜单栏中的 "Product" > "Build" > "Build For" > "iOS Simulator/Generic iOS Device"。

  1. 如何清理 Xcode 缓存?

转到 "Xcode" > "Preferences" > "Locations",然后点击 "Derived Data" 旁边的 "Remove" 按钮。

  1. 如何更新 CocoaPods?

在终端中运行以下命令:

sudo gem install cocoapods
  1. 如何重新运行 pod install?

在项目的 iOS 文件夹中,重新运行 pod install 命令。