在 xcode 中基于 git 设置 bundle 版本

Posted

技术标签:

【中文标题】在 xcode 中基于 git 设置 bundle 版本【英文标题】:Setting bundle version based on git in xcode 【发布时间】:2016-06-15 17:26:46 【问题描述】:

我正在尝试基于 git 在 xcode 中设置捆绑版本。

#!/bin/bash

BRANCH=$1:-'master'
BUILD_NUMBER=$(expr $(git rev-list $BRANCH --count) - $(git rev-list HEAD..$BRANCH --count))
echo "Updating build number to $BUILD_NUMBER using branch '$BRANCH'."

APP_INFO_PLIST="$TARGET_BUILD_DIR/$INFOPLIST_PATH"
DSYM_INFO_PLIST="$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME/Contents/Info.plist"

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$APP_INFO_PLIST"
if [ -f "$DSYM_INFO_PLIST" ] ; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$DSYM_INFO_PLIST"
fi

但是我在这一行遇到了一个错误:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$DSYM_INFO_PLIST"

读取该文件时出现错误“读取文件时出错:...”。

但是,当我检查该文件时,它确实存在。它是在这个构建步骤之后创建的吗?

我确实仔细检查了该脚本是否设置为在 Copy Bundle 资源和我的一些可可豆荚之后运行。

编辑: 搜索它看起来这个解决方案对于 xocxcodee 6 来说很好。我正在运行 xcode 7。

【问题讨论】:

【参考方案1】:

我的问题是我如何在 xcode 中设置构建版本。我把它设置为

<set in build phase>

plist 文件是 xml,xcode 不会转义您在构建中放置的文本。 '' 搞砸了 plist,因为它是无效的 xml,这反过来又在尝试读取文件时引发了错误。

小心您在 xcode 中为您的 tmp 构建版本输入的文本。

【讨论】:

以上是关于在 xcode 中基于 git 设置 bundle 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中更改 $(PRODUCT_BUNDLE_IDENTIFIER)?

iPhone Xcode Settings.bundle Plist

iPhone Xcode Settings.bundle Plist 帮助

如何设置 Bundle Ids、App Identifiers 和 Provisioning Profiles 以发布使用 SwiftUI 和 XCode 制作的 WatchOs 应用程序?

如何在 Xcode 中正确使用 Git?

在xcode copy bundle resources 在哪