如何在Xcode外部构建系统项目中添加iconv等额外执行命令?
在Xcode外部构建系统项目中添加Shell管道命令
因为Xcode Scheme的默认执行逻辑会把管道符|当成普通参数处理,没法直接实现./myFile argument1 | iconv -f big5这样的管道命令,你可以通过以下两种方式解决:
方法一:直接用系统Shell包裹命令
- 点击Xcode顶部工具栏的Scheme名称,选择
Edit Scheme...打开Scheme设置 - 左侧选中
Run,切换到Info标签页 - 将原来的
Executable从你的myFile可执行文件改为系统Shell路径(比如/bin/bash或/bin/zsh,取决于你系统的默认Shell) - 切换到
Arguments标签页,在Arguments Passed On Launch列表中依次添加:-c:指定Shell执行后续的命令字符串"${PROJECT_DIR}/myFile argument1 | iconv -f big5"
注意:命令要放在双引号内,确保Shell将其识别为完整的单条命令;如果
myFile不在项目根目录,要替换成正确的路径,也可以用Xcode的环境变量比如${BUILT_PRODUCTS_DIR}/myFile来指向构建后的可执行文件 - 保存Scheme,按Command+R即可自动执行带管道的命令
方法二:用Shell脚本封装执行逻辑
- 在项目目录下新建一个
run.sh文件,内容如下:
#!/bin/bash # 替换成你实际的可执行文件路径 ./myFile argument1 | iconv -f big5
- 打开终端,进入项目目录,执行
chmod +x run.sh给脚本添加执行权限 - 打开Scheme设置,在
Run的Info标签页,将Executable改为这个run.sh文件 - 保存后按Command+R运行即可
内容的提问来源于stack exchange,提问作者pekkabear
相关产品推荐
相关产品推荐

