Xcode后构建复制文件操作

5
在Xcode中,我如何调用一个“shell脚本”,它是一个复制.app.dsym文件到不同目录的Perl脚本?我想要将项目名称和/或项目根目录传递给脚本。我希望在发布和分发模式下每次构建时都调用该脚本,但在调试模式下不调用。
3个回答

9

对于其他有疑问的人,你也可以通过以下简单的复制方法进行操作:

[点击方案名称] -> 编辑方案... -> [选择方案] -> 运行"目标" -> 后操作

并添加一个cp命令。在我的情况下,为了快速测试和方便使用,我想将我的二进制文件复制回项目目录,以便我可以处理一些数据文件。我使用了以下命令:

cp ${TARGET_BUILD_DIR}/${TARGET_NAME} ${PROJECT_DIR}/"binaryFileName"

5

右键点击您的目标,选择“添加” ->“新建构建阶段” ->“新建运行脚本构建阶段”。

在“脚本”文本区域内添加:

if [ ${CONFIGURATION} != "Debug" ]
then
    /usr/bin/perl "${PROJECT_DIR}/myperlscript.pl" "${PRODUCT_NAME}" "${PROJECT_DIR}"
fi

myperlscript.pl的位置和名称更改为您的脚本的位置和名称。

确保将运行脚本步骤移动到链接库文件之后,因为您正在复制已构建的.app。

(也可能想要将“perl”标签添加到问题中)


很好,谢谢。 我没有标记语言,因为我猜想可以用php、python或其他任何语言替换命令行中的perl部分。 - ISDi

2

Xcode 12.4新增了一个构建阶段来复制文件,而不是脚本:

  1. 显示项目导航器(蓝色文件夹按钮)
  2. 点击您的项目(蓝图标)
  3. 在打开的设置面板中点击“Build Phases”标题
  4. 在设置面板的左上角点击“+”
  5. 点击“New Copy Files Phase”
  6. 将目的地更改为绝对路径并设置您的路径
  7. 在底部点击“+”添加要复制的文件
  8. 保存。如果没有保存就运行,新的阶段会被忽略

如果您不想使用绝对路径或提供的任何目标,则必须使用Run Script Phase。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接