Mac运行flutter build ios报sysctl -n hw.optional.arm64空输出错误原因
问题表现
Mac设备下执行以下操作均抛出错误:('sysctl -n hw.optional.arm64' returned unexpected output: '')
- 运行
flutter build ios构建iOS安装包 - 执行
flutter doctor -v做环境检测 - 已验证无效的操作:重装CocoaPods依赖、执行
flutter pub get、执行flutter pub upgrade - 前置操作记录:曾因多目录存在重复
Info.plist文件删除过2份该文件,后续恢复了其中1份,初步怀疑和Flutter安装状态异常有关。
修复方案
按以下顺序逐一排查:
- 校验系统sysctl指令返回
终端直接执行sysctl -n hw.optional.arm64:Apple Silicon芯片设备正常返回值为1,Intel芯片设备正常返回值为0。如果返回空值,先修复系统指令问题:- 检查当前使用的Shell配置文件(zsh对应
~/.zshrc、bash对应~/.bash_profile),确认没有错误配置sysctl的别名、没有把sysctl命令路径指向错误位置,修正配置后执行source命令加载配置重试 - 若sysctl命令无执行权限,执行
sudo chmod 755 /usr/sbin/sysctl修复权限
- 检查当前使用的Shell配置文件(zsh对应
- 修复Flutter安装损坏问题
如果sysctl指令本身返回值正常,说明本地Flutter SDK文件损坏:- 执行
which flutter定位Flutter SDK安装路径,删除整个SDK目录后重新安装稳定版本Flutter - 重新配置完Flutter环境变量后,进入项目目录依次执行以下命令重置项目缓存:
flutter clean flutter pub get cd ios pod deintegrate pod install cd ..
- 执行
- 重置Xcode命令行配置
执行sudo xcode-select --reset重置Xcode命令行工具指向,打开Xcode进入设置-Locations页,确认Command Line Tools项选中已安装的正式版Xcode,不要留空或选中beta版本。
补充说明:之前删除恢复Info.plist的操作和当前sysctl类报错无关联,Info.plist文件异常只会触发构建阶段的项目配置错误,不会影响flutter doctor运行时的系统架构检测逻辑。
内容的提问来源于stack exchange,提问作者Leonardo Hysesani
相关产品推荐
相关产品推荐

