M1 Mac Mini上用Bazel构建iOS遇ios_sim_arm64工具链错误
解决Bazel构建iOS模拟器时"ios_sim_arm64工具链缺失"问题
问题核心
你遇到的错误是因为Bazel在M1(arm64)架构的Mac上尝试构建iOS模拟器目标时,找不到对应ios_sim_arm64的CC工具链,结合你的配置来看,有几个明确的问题需要修复:
解决步骤
修复.bazelrc语法错误
你的.bazelrc中--ios_multi_cpus=x86_64这一行末尾缺少反斜杠,导致后续的构建参数没有被正确加载。同时,M1机器需要适配arm64模拟器架构,修改后配置如下:build \ --compilation_mode=fastbuild \ --worker_sandboxing=false \ --strategy=SwiftCompile=local \ --features=swift.cacheable_swiftmodules \ --apple_platform_type=ios \ --xcode_version=13.4 \ --ios_minimum_os=14.5 \ --ios_simulator_device="iPhone 13" \ --ios_simulator_version=15.5 \ --ios_multi_cpus=x86_64,arm64 \ --progress_report_interval=1 \ --subcommands \ --sandbox_debug \ --announce_rc \ --features=swift.use_global_module_cache \ --action_env=PATH=/usr/bin:/bin \ --action_env=BAZEL_IGNORE_SYSTEM_HEADERS_VERSIONS=1 \ --spawn_strategy=local \ --verbose_failures更新rules_apple版本
你当前使用的rules_apple 1.1.1版本较旧,对M1架构的ios_sim_arm64工具链支持不完善。将WORKSPACE中的rules_apple更新到兼容Bazel 5.3.0的2.x版本,示例如下:http_archive( name = "build_bazel_rules_apple", sha256 = "f0a33f3942f74a77a6e38e4b6e1c383d5d26445a92e2ffe7d6d2a446025f3a9a", url = "https://github.com/bazelbuild/rules_apple/releases/download/2.3.0/rules_apple.2.3.0.tar.gz", )清理Bazel缓存
旧缓存可能残留不兼容的工具链配置,执行以下命令彻底清理:bazel clean --expunge验证Xcode命令行工具配置
确保Xcode命令行工具已正确关联到你的Xcode 13.4:xcode-select -p若输出路径不正确,执行:
sudo xcode-select -s /Applications/Xcode_13.4.app/Contents/Developer
内容的提问来源于stack exchange,提问作者Taha Selim Bebek
相关产品推荐
相关产品推荐

