我有一份Jenkins的工作,负责将我的iOS应用程序上传到HockeyApp。我可以在我的日志中看到这个错误
Error uploading to HockeyApp: {"status"=>"error", "message"=>"Bundle Version does not match. Expected value: 228 Actual value: 15"}
但这款应用程序似乎已经成功上传,并可从Hockey网站下载。有人能解释一下这个错误是什么意思吗?
我设置了我的内部版本号来匹配我的Jenkins内部版本号,也就是228。我不知道15的实际值是什么?
谢谢!
发布于 2015-12-31 04:33:41
我创建了一个脚本,我可以将它放到任何Xcode项目文件夹中,并从运行脚本中调用它,它将更新应用程序和dSYM的Info.plist,以便内部版本号匹配。然后它可以被上传到HockeyApp和iTunes Connect for TestFlight和App Store等服务上。
我更喜欢在Xcode的Run脚本之外管理脚本,因为我可以更容易地对其进行编辑,并使项目文件的内容更小。我还可以独立于项目文件对脚本进行版本控制。
此脚本中的内部版本号仅设置为当前日期。还有其他方法可以生成唯一的内部版本号。Jared Sinclair的博客上介绍了一种方法,该方法使用Git散列进行最新提交。我使用的脚本使用了精确到一分钟的时间戳。我发现知道构建是什么时候创建的很有用,并且将构建编号加倍作为时间戳,我可以立即看到日期。对我来说,它是独一无二的。
http://blog.jaredsinclair.com/post/97193356620/the-best-of-all-possible-xcode-automated-build
要点:https://gist.github.com/brennanMKE/c4640b7a2cf39888d858
#!/bin/sh
set -e
# Purpose: Updates Info.plist for app and dSYM to a unique value for each build.
# Usage:
# Add as a Run Script in Xcode Build Phases
# UPDATE_SCRIPT=${PROJECT_DIR}/update_build_number.sh
# if [ -f ${UPDATE_SCRIPT} ]; then
# sh ${UPDATE_SCRIPT}
# fi
BUILD_NUMBER=`date "+%Y.%m.%d.%H%M"`
APP_INFO_PLIST=${TARGET_BUILD_DIR}/${INFOPLIST_PATH}
DSYM_INFO_PLIST=${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
if [ -f ${APP_INFO_PLIST} ]; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "${APP_INFO_PLIST}"
echo "Updated ${APP_INFO_PLIST}"
else
echo "Could not find ${APP_INFO_PLIST}"
fi
# Only the Release Configuration creates the dSYM
if [ "${CONFIGURATION}" = 'Release' ]; then
if [ -f ${DSYM_INFO_PLIST} ]; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "${DSYM_INFO_PLIST}"
echo "Updated ${DSYM_INFO_PLIST}"
else
echo "Could not find ${DSYM_INFO_PLIST}"
fi
fihttps://stackoverflow.com/questions/29276043
复制相似问题