【问题标题】:xcode build version number in shell scriptshell脚本中的xcode构建版本号
【发布时间】:2011-10-21 02:42:35
【问题描述】:

我有一个用户定义的项目设置 (KEY/VALUE),如下所示:

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”

如何获取值而不是变量名?

【问题讨论】:

    标签: iphone ios shell info.plist


    【解决方案1】:

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

    【讨论】:

    • 实际上,在脚本中,我先执行 xcodebuild 命令,然后尝试查找此信息。我需要此信息来为每个内部版本号创建一个目录,以将 .ipa 文件保存到其中。该过程是 xcodebuild->find version->create directory->packageApplication 进入该目录。到时候不应该把文件复制过来吗?
    • 该文件将位于 *.app/Contents/ 目录中。最简单的方法是添加一个运行脚本构建阶段,因为这样你就可以访问一堆很棒的 Xcode 构建变量,比如$TARGET_BUILD_DIR
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2015-10-15
    • 2013-09-24
    • 2012-01-29
    相关资源
    最近更新 更多