Reglas de comparación de la versión del package App Store de iOS

Vamos a upload una nueva versión de nuestra aplicación a iOS App Store.

Para la versión anterior CFBundleShortVersionString fue "1.9.2" y CFBundleVersion fue "1.92.0". Para la versión actual vamos a usar CFBundleShortVersionString : "1.10" y CFBundleVersion : "1.100.0".

Pero tenemos miedo si App Store no detecta nuestra versión 1.10 como nueva. ¿No se reconocerá como versión anterior a la anterior con CFBundleVersion: "1.92.0".

En otras palabras, es CFBundleVersion : "1.100.0" será mayor que CFBundleVersion : "1.92.0"?

¿Alguien sabe cómo Apple compara el parámetro CFBundleVersion de comstackciones cargadas?

Gracias por las respuestas.

Sí, 1.100.0 es> 1.92.0. Apple usa versiones semánticas.

De izquierda a derecha, siempre que ninguno de los numbers sea menor que el número nuevo, eres bueno.

Para su ejemplo, el cheque es similar a (pseudo):

var oldVersionSems = "1.92.0".split(".") var newVersionSems = "1.100.0".split(".") var maxIndex = MIN(oldVersionSems.length, newVersionSems.length) var isNewer = false for (int i = 0; i < maxIndex, i++) { isNewer = newVersionSems[i] > oldVersionSems[i].toInt() if (isNewer) break } 

Un buen recurso para ver cómo funciona el versionado semántico es http://semver.org

Ejemplos:

  • 2.0.0> 1.100.0
  • 1.20.0 <1.100.0
  • 1.1.0> 1.0.500
  • 1,92.0 <1.100.0