如何判断Xcode是否在脚本中进行“构建和存档”?

时间:2010-12-29 18:40:14

标签: iphone xcode archive xcodebuild

我有一个脚本在Xcode中实际构建之前进行一些预处理。有没有办法告诉Xcode何时进行“构建和存档”?我想在归档步骤中执行“svn commit”。我转储了构建期间存在的环境变量,但它们与正常构建的存档看起来相同。

还可以检查其他任何可以判断是否正在构建存档的内容吗?

在构建存档之前自动执行提交的任何其他方法?我不想为每个构建做一次提交,因为这会使svn树更难以导航IMO。

我正在使用Xcode 3.2.5。

谢谢! 规范

2 个答案:

答案 0 :(得分:3)

我想避免命令行构建和存档,因为我读到它没有构建一个嵌入了配置文件的.ipa文件。使用它可以更轻松地将它发送给测试人员。

我做的是以下内容:

我有4种配置。调试,发布,特别发布和App Store发布。

我使用Debug和Release来构建而不进行提交。当我想发送给beta测试人员时,我会使用Ad Hoc,而App Store则会提交最终测试和App Store提交。

以下是我添加到预构建脚本中的代码。

# Get the version number from the .plist file
VER_NUM=`cat "${SRCROOT}/${INFOPLIST_FILE}" | grep -A 1 CFBundleVersion | grep string | sed 's/]*>//g' | sed 's/^[  ]*//'`

# Check build type to see if svn commit should be done
if [ "${BUILD_STYLE}" == "App Store Distribution" ] 
then 
SVN_COMMIT=yes
fi

if [ "${BUILD_STYLE}" == "Ad Hoc Distribution" ] 
then 
SVN_COMMIT=yes
fi

if [ "${SVN_COMMIT}" == "yes" ]
then
echo "Commiting the project to SVN"
BUILD_TIME=`date`
svn commit -m "\"Version ${VER_NUM} for ${BUILD_STYLE} ${BUILD_TIME}\""
fi 

这是我对问题的快速而肮脏的回答。必须有一个更优雅的解决方案,但这将暂时有用。如果Apple只是添加一个环境变量来表明它是一个可以解决它的归档版本。

答案 1 :(得分:0)

我建议您使用Xcode GUI中的独立脚本来获取每日构建系统。这将使svn commit触发构建和存档以及分发。您可以使用xcrun命令运行构建和存档,如下所述:

Xcode "Build and Archive" from command line