在 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 应用程序?