vlambda博客
学习文章列表

解决 Flutter 在 iOS 模拟器中运行卡住问题

当我们尝试在 iOS 模拟器运行 flutter run 可能会出现类似如下的卡住问题。

executing: xcrun simctl launch xxx-54F9-427F-8119-xxxx com.hahaha.app --enable-dart-profiling --enable-checked-mode --verify-entry-points --observatory-port=0
[+1000 ms] com.hahaha.app: 49573
[        ] Waiting for observatory port to be available…

模拟器上的 App 也无法打开,也看不出有什么具体的崩溃问题。不知如何是好。

不过,还是有办法解决的,那就是使用 XCode 运行项目,查看输出

使用 Xcode 打开项目

cd ios/
open Runner.xcworkspace

点击运行

像正常的 iOS 项目一样,点击 那个类似播放的按钮进行编译运行。

查看日志

等到运行后,大概在 XCode 右下角,就会发现一定的错误信息

dyld: Symbol not found: _$s7SwiftUI4ViewP14_viewListCountxxdddx6inputsSiSgxxxAA01_ceF6xxdxxddInputsV_tFZxxxxTq
  Referenced from: /Users/xxxxx/Library/Developer/CoreSimulator/Devices/xxxxddxx-54F9-427F-8119-xxxxx/data/Containers/Bundle/Application/xxxx-8791-4B78xxx-A9C1-381572AC1A2B/Runner.app/Frameworks/abcde.framework/abcde (which was built for iOS 14.0)
  Expected in: /System/Library/Frameworks/SwiftUI.framework/SwiftUI
 in /Users/xxxxxx/Library/Developer/CoreSimulator/Devices/xxxxx-54F9-427F-8119-xxxxxx/data/Containers/Bundle/Application/xxxxx-8791-4B78-xxxx-381572xAC1A2B/Runner.app/Frameworks/abcde.framework/abcde
dyld: launch, loading dependent libraries

通过分析上面的错误日志,我们可以确定,这个问题是因为在低于 14 的模拟器上是无法运行这个应用的。