【问题标题】:Xcode build rules script "command not found" on M1M1 上的 Xcode 构建规则脚本“找不到命令”
【发布时间】:2022-11-12 23:34:57
【问题描述】:

我有一个项目运行一些我使用自制软件安装的实用程序,它的构建规则之一。

在我的 M1 mac 上,自制软件安装在 /opt/homebrew/bin 上。

我的~/.zprofile 文件中有eval "$(/opt/homebrew/bin/brew shellenv)",但Xcode 似乎不尊重这一点(或者可能会覆盖它?)。

在 Xcode 运行脚本命令期间尝试评估 PATH 变量时,我得到以下信息:

PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

澄清一下,这是我在Build rules 下运行的阶段。

【问题讨论】:

    标签: ios xcode apple-m1 apple-silicon


    【解决方案1】:

    我设法找到了两种解决此问题的解决方法,第一种是将您想要的程序从/opt/homebrew/bin 符号链接到/usr/local/bin(在我的情况下为protoc

    sudo ln -s /opt/homebrew/bin/protoc /usr/local/bin/protoc
    

    第二种是将以下行添加到构建规则脚本中:

    eval "$(/opt/homebrew/bin/brew shellenv)"
    

    这具有不能在非 M1 Mac 上工作的缺点。

    【讨论】:

      【解决方案2】:

      这个答案提供了一个可能的、非常简单的解决方案。

      基本上,在 Apple Silicon 驱动的 Mac(如我的 M1 MacBook Pro)上运行的新升级版本的 XCode(例如 13.4.1)具有无法在您需要的所有输出平台组合中正确使用/输出适当目标文件的组件.

      这会导致一些“有趣”的问题和错误消息交叉,从而在 StackOverflow 上找到“几乎正确”的答案。因此有许多建议从构建选项中排除“arm64”平台和类似平台。

      所有这一切的简单答案是......只需在启用 Rosetta 的情况下运行 XCode。 Rosetta 将使用缺少所需跨平台功能的组件。

      下面是一个如何使应用程序能够使用 Rosetta 的示例。您选择应用程序图标,然后转到“文件”菜单并选择“获取信息”。然后单击“使用 Rosetta 打开”复选框。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-05
        • 2020-11-29
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 2023-02-12
        • 2018-05-16
        相关资源
        最近更新 更多