web-dev-qa-db-fra.com

Qu'est-ce que la Android Bundle Version and Version Code et comment sont-ils liés?

a) Que signifient la Android bundle version et version code)?

b) Quelle est la différence entre la version du bundle et le code de version?

i) Supposons que j'ai une version groupée de 0.137, comment le code de version est-il lié à cela? Le code de version peut-il être simplement 137?

ii) Que se passe-t-il lorsque je publie la version groupée 1.0 suivant? Puis-je simplement appeler le code de version 10?

c) Comment sont-ils liés? Quelle est la bonne façon de numéroter les versions de bundle?


N.B. Il ne semble pas y avoir de source expliquant la différence, dans la recherche. J'ai numéroté mes paquets de façon très aléatoire jusqu'à présent, mais j'aimerais savoir comment faire correctement.

Ces désignations semblent être spécifiques à nity , mais je ne sais pas si je comprends les paramètres, même à partir de cette page ...

20
ina

Il n'y a pas de "version groupée". C'est un terme iOS/Mac. Les applications intégrées Android sont appelées packages.

Android a deux endroits où une version est spécifiée: nom de la version (Android:versionName dans le manifeste) et le code de version (Android:versionCode). Ils n'ont pas besoin d'être corellés, mais dans la pratique, ils le sont généralement. Google Market utilise le code de version (pas le nom) lorsque vous publiez une mise à jour pour vous assurer que votre mise à jour est postérieure au package actuellement publié.

Le nom de la version correspond à ce que voient les utilisateurs finaux. Il n'y a aucune limitation sur son format; c'est une chaîne de texte libre, bien que la grande majorité des applications s'en tiennent aux modèles 1.2 ou 1.2.3.

La façon dont vous corrélez le nom et le code de version dépend de vous. Vous pouvez utiliser des codes de version séquentiels ou utiliser un major*10000 + minor*100 + build formule - c'est ce que Google fait avec ses applications, de sorte que la version 4.10.3 aurait le code 41003.

19
Seva Alekseyev

Unity a la réponse dans sa page Manual of Player Settings: http://docs.unity3d.com/Manual/class-PlayerSettings.html

  • Version du bundle: Spécifie le numéro de version de build du bundle, qui identifie une itération (publiée ou non) du bundle. La version est spécifiée dans le format commun d'une chaîne contenant des nombres séparés par des points (par exemple, 4.3.2). (Ceci est partagé entre iOS et Android.)

  • Code de version du bundle: Un numéro de version interne. Ce nombre est utilisé uniquement pour déterminer si une version est plus récente qu'une autre, des nombres plus élevés indiquant des versions plus récentes. Ce n'est pas le numéro de version affiché aux utilisateurs; ce nombre est défini par l'attribut versionName. La valeur doit être définie sous la forme d'un entier, tel que "100". Vous pouvez le définir comme vous le souhaitez, tant que chaque version successive a un nombre supérieur. Par exemple, il peut s'agir d'un numéro de build. Ou vous pouvez traduire un numéro de version au format "x.y" en un entier en encodant les "x" et "y" séparément dans les 16 bits inférieurs et supérieurs. Ou vous pouvez simplement augmenter le nombre d'un à chaque sortie d'une nouvelle version.

14
ArianJM

Cela ne répond pas directement à la question mais est lié (et lié à la réponse d'ArianJM).

Je suis venu à cette question à la suite d'un problème que je venais de télécharger une nouvelle version sur l'Appstore Amazon.

Le contenu de la page référencée Unity Manual d'ArianJM a changé et (au moins pour la version 5.4) ne contient plus d'informations sur la version du bundle ou le code de version du bundle.

Dans Unity 5.4:

La version du bundle est désormais Version. Ce champ est identifié par l'Amazon Appstore comme nom de la version.

Le code de version de l'ensemble est toujours Code de version de l'ensemble. Ce champ est identifié par l'Amazon Appstore comme Code de version. Ce champ n'autorise que les chiffres .

Je suis en train de télécharger une nouvelle version sur l'Amazon Appstore et bien que j'aie mis à jour la version dans Unity vers 1.1, le Bundle Version Code n'a pas été mis à jour et en conséquence a été rejeté par l'Amazon Appstore car il était le même que le précédent Code de version du bundle (code de version dans Amazon Appstore).

J'ai depuis mis à jour le code de version du bundle dans Unity - mais je n'ai pas pu le mettre à jour vers 1.1 ou 1_1 car le champ est strictement numérique - et donc mis à jour à la place à 2.

Ce qui, je crois, nous ramène à une partie de la question d'origine: Existe-t-il une bonne façon de numéroter les versions de l'ensemble?

Bien que le changer arbitrairement en 2 dans mon cas ne soit clairement pas un grand schéma - il est à la fois différent et supérieur au nombre précédent et, en tant que tel, fonctionne.

Ce n'est pas vraiment un plan, mais le manque de documentation actuelle par Unity traitant de ces champs - et les noms de champs similaires mais différents entre Unity et Amazon Appstore semblent conduire à ces décisions ad hoc.

1
Drew Crecente