2011-10-21 157 views
2

我有一个用户定义的项目设置(键/值)是这样的:Xcode的内部版本号

LATEST_BUILD_NUMBER  2.2.2.2 

在我的Info.plist,我已经设置了捆绑版本(CFBundleVersion)键/这样的值对

Bundle version  ${LATEST_BUILD_NUMBER} 

我正在创建一个shell脚本来为我的所有目标执行构建。我想在我的脚本中获取值“2.2.2.2”。这是我的尝试:

INFO_PLIST_FULL_PATH="${PROJDIR}/${TARGET_NAME}-Info.plist" 
echo plist path ${INFO_PLIST_FULL_PATH} 

TARGET_BUILD_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print ${BUILD_NUMBER}" $INFO_PLIST_FULL_PATH) 
echo version_number ${TARGET_BUILD_VERSION_NUMBER} 

当我这样做时,输出的plist路径是正确的,但TARGET_BUILD_VERSION_NUMBER输出为“$ {} LATEST_BUILD_NUMBER”,而不是“2.2.2.2”

我怎样才能得到该值而不是变量名?

回答

0

Xcode不会替代值,直到它将文件复制到构建的产品中。所以,转到源代码:从* .xcodeproj/project.pbxproj文件中获取值。您应该可以通过快速搜索找到当前的值。然后你只需要设计一个正则表达式就可以将其去掉。

+0

实际上,在脚本中,我先执行xcodebuild命令,然后尝试查找此信息。我需要这个信息来为每个内部版本号创建一个目录来保存.ipa文件。该进程是xcodebuild-> find version-> create directory-> packageApplication进入该目录。那么到目前为止不应该复制这些文件? – Bittu

+0

该文件将位于* .app/Contents /目录中。最简单的方法就是添加一个运行脚本构建阶段,因为这样你就可以访问一堆很棒的Xcode构建变量,比如['$ TARGET_BUILD_DIR'](http://developer.apple.com/library/) MAC /#文档/ DeveloperTools /参考/ XcodeBuildSettingRef/1- Build_Setting_Reference/build_setting_ref.html#// apple_ref/DOC/UID/TP40003931-CH3-SW88)。 –