macOS El Capitan系统安装Flutter时提示_getentropy符号未找到错误
问题原因
dyld: lazy symbol binding failed: Symbol not found: _getentropy
Referenced from: /Users/ozturkmedia/flutter/bin/cache/dart-sdk/bin/dart (which was built for Mac OS X 10.13)
Expected in: /usr/lib/libSystem.B.dylibdyld: Symbol not found: _getentropy
Referenced from: /Users/ozturkmedia/flutter/bin/cache/dart-sdk/bin/dart (which was built for Mac OS X 10.13)
Expected in: /usr/lib/libSystem.B.dylib
这个错误核心是macOS El Capitan(版本10.11)低于新版Dart SDK要求的最低运行版本10.13,_getentropy是macOS 10.12及以上系统才提供的系统函数,低版本系统不存在该符号,因此Dart运行时启动失败。
可行解决方案
- 方案1:升级macOS系统(优先选择)
只要设备硬件支持,将系统升级到macOS 10.13 High Sierra或更高版本,即可直接运行官方最新版Flutter,无需额外适配操作。 - 方案2:安装适配旧系统的Flutter历史版本
Flutter 1.22.6是最后一个官方支持macOS 10.11 El Capitan的稳定版本,直接下载该版本安装包即可正常使用,其内置的Dart SDK可兼容10.11系统。安装完成后不要执行flutter upgrade命令,避免自动升级到高版本再次触发兼容问题。 - 方案3:手动给Dart二进制打补丁(仅适合有动手能力的用户)
可通过兼容补丁工具给dart二进制文件注入_getentropy函数的适配实现,让高版本Dart SDK运行在10.11系统上。操作完成后每次执行flutter doctor或flutter upgrade都会覆盖修改后的dart文件,需要重新打补丁。
内容的提问来源于stack exchange,提问作者Mehmet Öztürk
相关产品推荐
相关产品推荐

