fou*_*dry 53
预执行发生在构建之前,因此输出不会转到构建日志,而是转到stdErr.您可以将输出复制到文件:
exec > ${PROJECT_DIR}/prebuild.log 2>&1
echo "hello world"
Run Code Online (Sandbox Code Playgroud)
要使环境变量起作用,还需要将"提供构建设置"设置为适当的目标.
这应该写入hello world项目文件夹中名为"prebuild.log"的文件.
如果您希望这些活动最终出现在构建日志中,请考虑将运行脚本添加到目标的构建阶段.
要添加到答案,/sf/answers/2974842251/,重要的是不要尽可能地将 project.pbxproj(构建脚本所在的位置)或您的方案文件(这些脚本所在的位置)弄乱.
考虑到这一点,我在项目根目录中创建了一个 Build-Scripts 文件夹,我将应用程序构建脚本和预操作脚本放在其中。这个文件夹作为一个文件夹被拖到项目的根目录中,这样我添加到它的任何脚本都会自动添加到项目中。
假设您的预操作脚本名为That_pre-action_script.sh,这就是我根据批准的答案放入预操作脚本中的内容。
say "Pre build scripts running."
exec > "${PROJECT_DIR}/prebuild.log" 2>&1
echo "Starting build scheme Pre-actions"
"${PROJECT_DIR}/Build-Phases/That_pre-action_script.sh"
Run Code Online (Sandbox Code Playgroud)
作为测试,请确保从您的脚本中回显一些消息,以便您可以在prebuild.log文件中看到它。
希望这可以帮助。
并且不要忘记chmod u+x在终端中使用您的脚本,以便它可以运行。
重要的部分是您是否无法确定您的构建脚本是否正在运行。这是say命令我们有用的地方,以便您知道它实际上是在构建之前发出的。
最好在脚本路径周围加上引号,以防项目路径中有任何空格字符(或其他字符)。
| 归档时间: |
|
| 查看次数: |
8733 次 |
| 最近记录: |