完成构建

时间:2016-12-02 15:55:50

标签: xcode

当我使用Xcode 8构建项目时,它会在~/Library/Developer/Xcode/DerivedData/MyProject-[add-lots-of-random-chars-here]/Build/Products/Release-iphoneos中保存最终版本。有没有办法让Xcode在构建后将应用程序包复制到用户指定的路径?例如如何在构建之后让Xcode将构建的应用程序包复制到/MyBuilds

我知道我可以在Xcode的项目设置中更改存储派生数据的路径,但这样做当然会让Xcode在这个位置存储所有数据(包括对象代码等中间内容)不想要。我真的只希望Xcode将最终的,准备分发的应用程序包复制到用户指定的位置,而不需要在构建过程中使用任何中间文件。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

将shell脚本添加到构建阶段以复制产品:

脚本:

PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app"
cp -R "${PRODUCT}" ~/Desktop

当然可以用您选择的目标目录替换~/Desktop

答案 1 :(得分:1)

使用“构建阶段”中的脚本的解决方案无法正常工作,因为Xcode在运行脚本时未完成构建应用程序。这是一个解决方案,其脚本在所有构建任务完成后运行:

  1. 转到“编辑方案”
  2. 点击“Build”
  3. 旁边的三角形
  4. 选择“动作后”
  5. 按+按钮并选择“新建运行脚本选项”
  6. 在“提供构建设置”
  7. 中选择您的应用名称
  8. 添加以下shell脚本:
  9. 脚本:

    PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app"
    cp -R "${PRODUCT}" ~/Desktop
    

    Edit Schemes