【问题标题】:iOS build number in Cordova appCordova 应用程序中的 iOS 内部版本号
【发布时间】:2014-07-29 18:38:24
【问题描述】:

使用 Cordova 3.5.0,当我运行 cordova prepare ios 时,它会使用来自 config.xml 的版本字符串覆盖我的内部版本号以及应用程序的版本号。

发件人:

<widget id="tld.domain.app" version="1.0.1"  

它将 CFBundleVersion 设置为与短版本相同:

所以我必须继续手动将我的内部版本号重置为我的格式,即YYYYMMDD

理想情况下,我希望它单独保留内部版本号,或者能够在 config.xml 文件中明确设置它。

这两种可能吗?

【问题讨论】:

  • (我试过添加build=N属性)

标签: ios xcode cordova


【解决方案1】:

我在this resolved issue找到了答案。

对于 iOS 和 Android,有单独的 versionCode 属性(与 version 分开),需要添加到您的 config.xml 文件中:

<widget ... android-versionCode="201406092" ios-CFBundleVersion="201406092"

【讨论】:

  • 发布此答案几周后,此信息是 addeddocs for the config.xml file(“附加版本控制”部分)。
  • 请注意,我注意到在一个新的(er)cordova config.xml 中它使用了version="1.23.456",并且这个数字在 Android 和 iOS 版本上都会显示给我。
【解决方案2】:

这篇文章here 对我来说更清晰一点,更完整一点,所以我提一下它以防万一。请注意,实际上,它与 Ade 所说的几乎完全相同。我之所以提供它,是因为第一次阅读 Ade 的答案时,我很困惑,直到看到下面的答案才完全理解他的答案。

如果您想将内部版本号与版本号分开,您可以 可以在 config.xml 中的widget 标签中添加以下属性:

version="VERSIONNR" android-versionCode="BUILDNR" ios-CFBundleVersion="BUILDNR"

所以包含这些属性的完整标签看起来像这样:

<widget id="APPID" version="VERSIONNR" android-versionCode="BUILDNR" 
ios-CFBundleVersion="BUILDNR" xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0">

(大写文字为占位符)

【讨论】:

  • 必须小心android-versionCode 属性,我认为它不能接受与ios-CFBundleVersion 属性相同的值。当我将这些属性设置为相同的值时,我在 AndroidStudio 中打开科尔多瓦应用程序时遇到问题。可能android-versionCode 必须是整数,而ios-CFBundleVersion 可以有小数点?
  • 好点。就我而言,ios 捆绑包有一个小数,但 android 没有。所以 ios 的 build 是 2.58,而 android 的 build 是 258。我让两者保持同步,所以至少可以告诉两个设备使用基本相同的 build。
  • 版本是带小数的,你所说的版本名称“1.0.0”内部版本号必须是增量整数,所以在一些版本之后,“1”最终你会注意到内部版本号不等于版本名称,它们不必匹配,并且它们最终不会匹配,因为内部版本号是不能重复的唯一编号(在上传到应用商店/谷歌播放控制台后)
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2011-03-02
  • 2021-05-19
  • 2019-03-25
相关资源
最近更新 更多