自从升级到Xcode 8后,当我使用fastlane进行构建时,我收到以下错误消息:
There does not seem to be a CURRENT_PROJECT_VERSION key set for this project
如果我转到Xcode> Build Settings并转到Versioning,则会有一个Current Project Version键,如下所示:
帮助文本表示输入整数或浮点数,但是当我单击该字段时,没有机会在Debug或Release字段中输入数字。这与in this apple tech Q&A显示的屏幕截图不同,因此自Q&A发布以来,Xcode似乎发生了变化。
别。修改应用程序的info.plist文件中的值。
这意味着不使用agvtool(据我所知)。
为什么?多年来,Apple提出了多种改变版本和构建数字的方式。他们中的许多人现在已经过时且做法很差。更改CURRENT_PROJECT_VERSION会修改项目的project.pbxproj文件中的值,如果您正在运行分布式团队,如果团队的另一半尝试更新并且在他们睡着时,这将导致合并冲突,您更新了此内部值。如果您正在使用pod,则每个pod会增加几个合并冲突,并添加到项目中。
那么,CURRENT_PROJECT_VERSION?
不要使用它。
在info.plist文件中是这些键。
CFBundleVersion
CFBundleShortVersionString
使用CFBundleVersion
作为应用程序的内部版本号。使用CFBundleShortVersionString
作为应用程序的版本号。
使用Plistbuddy来做到这一点。
<key>CFBundleShortVersionString</key>
<string>3.0.7</string>
<key>CFBundleVersion</key>
<string>934</string>
</dict>
</plist>
试试下面的脚本。
#!/bin/sh
# To make executable, use: chmod u+x Build-Versioning-Scripts/Increment_Build_Number.sh
# to locate your target's info.plist use
# ${PRODUCT_SETTINGS_PATH}
echo "----"
echo "Info.plist for target: ${PRODUCT_SETTINGS_PATH}"
buildNum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "${PRODUCT_SETTINGS_PATH}")
echo "Current build #: $buildNum"
if [ -z "$buildNum" ]; then
echo "No build number found in $PRODUCT_SETTINGS_PATH"
exit 2
fi
buildNum=$(expr $buildNum + 1)
echo "Build # incremented to: $buildNum"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNum" "$PRODUCT_SETTINGS_PATH"
echo "----"
exit 0
通过将此脚本添加到构建计算机上的构建或归档过程,这将自动更新应用程序的内部版本号。如果您希望增加应用程序的版本号,请手动更改info.plist中的CFBundleShortVersionString
(Bundle versions string,short)。
you may try change project format ?
我建议你可以改变这个xcode格式版本。