iOS 中 CFBundleVersion 和 CFBundleShortVersionString 可接受的字符串格式是什么?

问题描述

我正在查看 CFBundleVersionCFBundleShortVersionString 的官方文档,其中提到了以下内容

字符串只能包含数字字符 (0-9) 和句点。

但是,我几乎可以将我喜欢的任何字符串添加到本地的 plist 文件中,并将应用程序部署到物理设备。说上述限制只会在 AppStore 视图期间执行是否正确?

但后来,我看到了一些包含字母字符的公共应用(例如 https://apps.apple.com/mx/app/gasoapp/id1190356107 并点击 Historial de actualizaciones)。

我的问题是,这些密钥可接受的格式是什么?

解决方法

一旦您将应用程序上传到 App Store Connect,CFBundleVersion 和 CFBundleShortVersionString 就会得到验证。如果他们的格式不正确,Apple 将立即拒绝构建,并且无法用于 TestFlight 或实时部署。

首先,最终用户看不到这两个值。测试人员可以在 TestFlight 中看到它,但您所指的值是您在 App Store Connect 中设置的版本字符串。那个是面向客户的,可以是任何 64 位字符串。大多数开发人员只是简单地“重复使用”他们的 CFBundleVersion,但也有其他开发人员如何使用更具描述性的名称,如“2021 Spring Release”、“2021.01.04”或类似名称。

对于 CFBundleVersion 和 CFBundleShortVersionString,我建议遵循 Apple 的 1.0.0 示例等。