小智 17
如果您正在编写Run Shell Script构建阶段,则可以执行以下操作:
PATH=${PATH}:/opt/local/bin
Run Code Online (Sandbox Code Playgroud)
或者脚本内容中的任何内容.
Rob*_*rty 14
这些答案存在一些混乱,因为其中一些答案试图解决$PATH由 Xcode 运行的构建可执行文件的问题。但问题是关于 Xcode 的,这意味着它与构建过程本身有关。
例如,在运行 Homebrew 安装的可执行文件的构建阶段运行脚本步骤中。对构建过程进行硬编码以包含特定于一台构建机器的路径并不是一个好主意(新的 macOS 版本发布、新开发人员加入团队等)
问题有多个层面:
$PATH中的更改会在 shell 会话中生效,但不会在 macOS 应用程序中生效bashrczshrcprofile要解决此问题,您可以使用以下命令设置应用程序的 PATH:
sudo launchctl config user path "$PATH"
Run Code Online (Sandbox Code Playgroud)
然后,您需要重新启动计算机才能使更改生效。如果您更改了$PATH.
(这来自GitHub 上的评论。)
$PATH,并用自己的清理值替换它这可以通过更改用户默认值来解决。这可能存在一些风险,因为 Xcode 会进行此清理以确保使用其自己的构建工具,并且如果您在其他地方有同名的可执行文件,则可能会运行它们。买者自负!
defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO
Run Code Online (Sandbox Code Playgroud)
看起来这个命令会在 macOS 每次重新启动时重置,因此请准备好在每次重新启动时发出此命令。
(这部分来自这个答案。)
小智 6
XCode从〜/ .MacOSX/environment.plist获取其环境变量的方式与其他OS X进程相同.
有关如何设置的详细信息,请查看developer.apple.com/qa/qa2001/qa1067.html.
最简单的解决方案是在 Xcode 中添加 PATH 变量。
PATH=${PATH}:/usr/local/bin