Xcode 13.3 中的构建阶段开始失败

Build phase in Xcode 13.3 started failing

我有一个调用一些 python 脚本的构建阶段。

这已经运行了 2 年多,但在最近更新到 Xcode 13.3 之后它现在失败了。

我开始收到的错误是:

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-fsowouspdsdjjzfmlfafizjbkcae/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/MyApp.build/Release-iphoneos/MyApp.build/Script-9002D8C42166BC850081D43D.sh: line 6: python: command not found
Command PhaseScriptExecution failed with a nonzero exit code

乍一看,xcode 似乎正试图 运行 模拟器上的脚本,而不是 运行 本地项目目录中的脚本。

python --版本: Python3.8.3

我想知道是否有一些我不知道的新 xcode 版本的新配置?

编辑:

您已经安装了 Python 3(可能是 brew),它在您的 PATH 中。这就是为什么当你说 python 时,它会被找到。

但是 Python 不在 Xcode 的路径中!它从来没有。你从来没有注意到这一点,你也从来不需要注意到它,因为 Xcode 一直使用 系统 Python,它位于 /SystemLibraryFrameworks。你和Xcode可能使用了不同的Python版本(系统版本停在了2.7),但这没有关系。

但现在 (Monterey 12.3),不是。现在 no Python 在 Xcode 的路径中。因此,当您的脚本说 python 简单明了时,它是找不到的。您可以通过在脚本中使用指定 Python 位置的完整路径来解决此问题。你可以通过说 which python.

来找到它

因此,Xcode 似乎捆绑了自己的 python 和 python 3. 它不使用系统版本,因此对 Monteray 12.3 的更改不会影响这一点.
既然是这种情况,正确的解决方案是将 python 更改为 python3,因为看起来 Xcode 更新删除了 python2.7 以与删除它的 OS 并行之后。我还必须更新我的 python 文件以确保兼容性。