Xcode 14 以及在构建/存档期间缺少与 Info.plist 中的 CFBundleVersion 编辑的同步

cra*_*ash 11 xcode plist xcode-archive xcode14

在我的 iOS 应用程序中,我有一个脚本(实际上是构建阶段),它将目标的 Info.plist CFBundleVersion 升级到与 git 提交计数相关的数字。我已经使用了一段时间了,它对我有用,从来没有问题。

在 Xcode 14 上,某些内容发生了变化,脚本继续工作(我的意思是 .plist 文件已正确更新),但应用程序不再显示正确的内部版本号,并且在 Archive 上也丢失了。我将添加一些屏幕截图(一个空白的新项目,因此没有及时更改设置)。

这是 Xcode 14 中 Target 的常规选项卡这是 Target 的常规选项卡

这是 Target 的信息选项卡目标的信息选项卡

这是由构建阶段脚本正确更新的 Info.plist 文件信息.plist 文件

在以前的 Xcode 版本中,在 Target 的常规选项卡上,我曾经将内部版本号与 .plist 文件中的内部版本号同步,并且在存档构建时也会同步。

现在,如果我尝试归档构建,它会显示为 1.0(1)。

我错过了什么或者我做错了什么吗?

希望你能听懂我的英语。感谢您的帮助。

Мак*_*ник 1

我使用 xcconfig 设置版本并在 Xcode 中构建。在Base.xcconfig中设置

MARKETING_VERSION = 22.47.0
CURRENT_PROJECT_VERSION = 221125.1437
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用 CocoaPods,您应该创建 Release 和 Debug xcconfig,内容为 Debug.xcconfig

#include "../Pods/Target Support Files/Pods-{SET_PROJECT_HERE}/Pods-{SET_PROJECT_HERE}.debug.xcconfig"
#include "Base.xcconfig"
Run Code Online (Sandbox Code Playgroud)

发布.xcconfig

#include "../Pods/Target Support Files/Pods-{SET_PROJECT_HERE}/Pods-{SET_PROJECT_HERE}.release.xcconfig"
#include "Base.xcconfig"
Run Code Online (Sandbox Code Playgroud)

在 info.plist 中设置值

<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
Run Code Online (Sandbox Code Playgroud)

希望有帮助