iOS:制作构建和归档命令行工具

时间:2012-12-06 10:53:32

标签: xcode command-line build archive xcodebuild

我知道这个主题多次在SO上辩论,但我没有找到所有的信息。

我正在制作一个外部脚本来构建和存档我的项目 我找到了一些好文档herehere,但我无法弄清楚如何获取xcode变量,例如${PROJECT_NAME}${TARGET_SDK}等等。

我也看到这条线可能对采购这些变量很有意思:

."$WORKSPACE/autobuild/build.config"

但我在我的Mac上找不到任何“autobuild”文件夹或“build.config”文件。

我感觉我错过了一些不可思议的东西,但我不知道是什么......

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

确保已安装XCode命令行工具(通过XCode首选项)。

然后,我使用的是一个简单的shell脚本:

#!/bin/sh
source "build.cfg"

xcodebuild -target "${XCODE_BUILD_TARGET}" -sdk "${XCODE_BUILD_SDK}" -configuration Release CODE_SIGN_IDENTITY="${XCODE_BUILD_CODE_SIGN_AUTHORITY}"
EXIT_CODE=$?
if [ ! $EXIT_CODE -eq 0 ];then
  exit $EXIT_CODE
fi

xcrun -sdk "${XCODE_BUILD_SDK}" PackageApplication -v "${XCODE_ABS_BUILD_APP_PATH}" -o "${XCODE_ARCHIVE_OUTPUT_PATH}" --sign "${XCODE_BUILD_CODE_SIGN_AUTHORITY}" --embed "${XCODE_ABS_PROVISIONING_CERTIFICATE_PATH}"
EXIT_CODE=$?
if [ ! $EXIT_CODE -eq 0 ];then
  exit $EXIT_CODE
fi

我有其他一些,但这是关键部分。然后build.cfg上面有变量:

#!/bin/sh
export XCODE_PROJECT_DIR="Builds/iOS"
export XCODE_BUILD_TARGET="Demo-iPhone"
export XCODE_BUILD_SDK="iphoneos"
export XCODE_BUILD_PLIST="Info.plist"
export XCODE_BUILD_APP_NAME="demo.app"
export XCODE_BUILD_APP_DIR="build"
export XCODE_BUILD_CODE_SIGN_AUTHORITY="iPhone Distribution: ABC"
export XCODE_ARCHIVE_OUTPUT_IPA_FILENAME="demo.ipa"
export XCODE_ARCHIVE_OUTPUT_IPA_DIR="build/release"
export XCODE_ARCHIVE_PROVISIONING_CERTIFICATE="demo_adhoc.mobileprovision"
...