如何在xcode 8中设置CURRENT_PROJECT_VERSION

问题描述 投票:4回答:3

自从升级到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键,如下所示:

screen shot of versioning

帮助文本表示输入整数或浮点数,但是当我单击该字段时,没有机会在Debug或Release字段中输入数字。这与in this apple tech Q&A显示的屏幕截图不同,因此自Q&A发布以来,Xcode似乎发生了变化。

xcode8
3个回答
11
投票

目前,当您收到fastlane错误时,终端日志会将您重定向到

Automating Version and Build Numbers Using agvtool

了解你需要做什么。

摘要

  1. 启用agvtool。 构建设置>当前项目版本> $(CURRENT_PROJECT_VERSION) 构建设置>版本控制系统> Apple Generic enter image description here
  2. 设置您的版本和内部版本号。 Target> Info> Bundle versions string,short(CFBundleShortVersionString)>“你的init版本” 目标>信息>捆绑版本(CFBundleVersion)>“您的初始值”enter image description here

这对我很有帮助。


1
投票

别。修改应用程序的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)。


-1
投票

you may try change project format ?

我建议你可以改变这个xcode格式版本。

© www.soinside.com 2019 - 2024. All rights reserved.