Comment mon iphone app détecte son propre numéro de version?
Je suis en train d'écrire une application iPhone. Il a déjà été publié, mais je voudrais ajouter une fonctionnalité où son numéro de version est affiché.
Je préfère ne pas avoir à le faire manuellement à chaque version, je la libération...
Est-il un moyen en objective-C pour savoir ce que la version de mon application?
- Cette question a déjà été évoquée ici stackoverflow.com/a/16888788/2890157.
- .. liés question est de 4 ans plus tard, de sorte que le vrai problème ici est que les cmos n'a jamais accepté une réponse. Peu importe, la question liée réponses sont utiles, comme le sont les réponses ici. Sur les deux fils, regarder au-delà de la première réponse - il y a parfois plus up-to-date de l'info sur une réponse plus tard.
Vous devez vous connecter pour publier un commentaire.
Comme je le décris ici, J'utilise un script pour réécrire un fichier d'en-tête avec mon numéro de révision Subversion. Que le numéro de révision est stocké dans le kRevisionNumber constante. Je peux alors accéder à la version et le numéro de révision à l'aide de quelque chose de similaire à la suivante:
qui permettra de créer une chaîne de format "Version 1.0 (51)".
CFBundleShortVersionString
ce que vous auriez normalement voulez pour la "version" etCFBundleVersion
pour le numéro de Build.[NSString stringWithFormat:@"Version: %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]]
Bâtiment sur Brad Larson réponse, si vous avez majeures et mineures info la version stockée dans l'info plist (comme je l'ai fait sur un projet particulier), cela a bien fonctionné pour moi:
Maintenant montée en régime d'une version mineure manuellement peut-être une douleur, et donc à l'aide d'un référentiel source numéro de révision truc, c'est idéal. Si vous n'avez pas attaché que (comme je n'en avais pas), l'extrait ci-dessus peut être utile. Il sort également de l'application du nom d'affichage.
Swift version pour les deux séparément:
Swift 3
Swift 2
Inclus dans ce repo, check it out:
https://github.com/goktugyil/EZSwiftExtensions
C'est ce que j'ai fait dans mon application
Nous espérons que cette simple réponse sera aider quelqu'un...
Vous pouvez spécifier le
CFBundleShortVersionString
chaîne dans votre plist.info et lu que par programmation à l'aide de la à condition de l'API.Il y a deux choses - version et la version de l'application.
Pour obtenir la version de l'Application:
Pour obtenir la version de Build:
objectForInfoDictionaryKey:
au lieu deinfoDictionary] objectForKey:
parce que le premier renvoie le localisés valeur (si il y en a un). Ne sera probablement pas faire une différence ici bien 😉Une manière succincte d'obtenir une chaîne de version dans X. Y. Z format:
Ou pour X. Y:
Ces deux extraits de déclarations de chaines de caractères que vous pouvez assigner à votre étiquette de l'objet texte de la propriété, par exemple
Vous pouvez essayer d'utiliser le dictionnaire comme:-
Lire les infos.fichier plist de votre application et obtenir la valeur de la clé de CFBundleShortVersionString. La lecture des informations.plist vous donnera un NSDictionary objet
Vous pouvez utiliser le infoDictionary qui obtient les informations sur la version de l'info.plist de votre application. Ce code fonctionne pour swift 3. Juste à l'appel de cette méthode et l'affichage de la version dans toute privilégiées élément de l'INTERFACE utilisateur.
Si vous avez besoin d'un combinaison de deux version et construire num, voici un court chemin à l'aide de Swift 3:
Ajouter un
as! String
à la fin de laappVersion
oubuildNum
ligne pour obtenir uniquement la partie en tant queString
objet. Pas besoin pour cela si vous êtes à la recherche pour le pleinversionInfo
.J'espère que cela aide!
C'est une bonne chose pour la poignée avec un système de contrôle des révisions. De cette façon, lorsque vous recevez un rapport de bug à partir d'un utilisateur, vous pouvez vérifier que la révision du code et (espérons-le) de reproduire le bogue de l'exécution de l'exacte même code que l'utilisateur.
L'idée est que chaque fois que vous faites construire, vous pourrez exécuter un script qui récupère l'actuel numéro de révision de votre code et met à jour un fichier dans votre projet (généralement avec une certaine forme de jeton de remplacement). Vous pouvez ensuite écrire une routine de gestion d'erreur qui comprend toujours le numéro de révision dans la sortie d'erreur, ou vous pouvez l'afficher sur une page "à Propos".
Vous pouvez essayer cette méthode:
Basé sur @rajat chauhan réponse sans forcé de lancer pour
String
.