XCode 12.4编译Telegram iOS时执行Python脚本报错无法生成项目
报错原因与解决方法
这个OSError: [Errno 8] Exec format error报错的核心是你在构建命令中指定的--bazel参数指向的文件不是 macOS 下可正常执行的二进制文件,和你使用的 Telegram 版本无关。
修复步骤
- 首先确认你本地已安装的bazel正确路径:
你已经通过homebrew安装了符合版本要求的bazel 4.1.0,直接在终端执行which bazel即可获取到正确的可执行文件路径,Intel架构Mac默认路径为/usr/local/bin/bazel,Apple Silicon架构Mac默认路径为/opt/homebrew/bin/bazel。
你之前指定的$HOME/bazel-dist/bazel路径下的文件要么存在损坏、架构不匹配,要么缺少执行权限,所以无法被调用。 - 调整生成Xcode项目的命令,将
--bazel参数替换为上一步得到的正确路径即可,也可以直接写成动态获取的形式:python3 build-system/Make/Make.py \ --bazel="$(which bazel)" \ --cacheDir="$HOME/telegram-bazel-cache" \ generateProject \ --configurationPath="$HOME/telegram-configuration" \ --disableExtensions \ --disableProvisioningProfiles - 如果你确实需要使用
~/bazel-dist/bazel的自定义版本,先执行以下操作校验有效性:- 给文件添加执行权限:
chmod +x ~/bazel-dist/bazel - 手动执行验证是否可用:
~/bazel-dist/bazel --version - 如果执行后仍然报错,说明该二进制文件不匹配你的Mac系统/架构,建议直接删除,使用homebrew安装的官方适配版本即可。
- 给文件添加执行权限:
注意:Telegram iOS 7.6、7.8版本对bazel的要求就是4.x版本,你已经安装的4.1.0完全符合要求,无需更换bazel版本。
内容的提问来源于stack exchange,提问作者pythonNinja
相关产品推荐
相关产品推荐

