Comment puis-je obtenir la version actuelle de mon iOS de projet dans le code?
Je voudrais être en mesure d'obtenir la version actuelle de mon iOS projet/de l'application comme un NSString
des objets sans avoir à définir une constante dans un fichier quelque part. Je ne veux pas changer ma version de la valeur à 2 endroits.
La valeur doit être mise à jour quand je bosse ma version dans le Projet cible résumé.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la version et le numéro de build comme suit:
ou en Objective-C
J'ai les méthodes suivantes dans une catégorie sur
UIApplication
:Gist: https://gist.github.com/ashleymills/6ec9fce6d7ec2a11af9b
Voici l'équivalent en Objective-C:
Gist: https://gist.github.com/ashleymills/c37efb46c9dbef73d5dd
(NSString *)kCFBundleVersionKey
plutôt que@"CFBundleVersion"
. Même si c'est plus de type (auto complète, de l'aide ici), comme c'est une constante, il est vérifié au moment de la compilation.NSBundle
au lieu deUIApplication
cela permettra également de remplacer les appels statiques avec l'instance de ceux.UIApplication
, que les informations renvoyées au sujet de la demande. Aussi, cela s'applique uniquement à lamain
bundle - il, n'aurait aucun sens pour en faire une méthode d'instance sur n'importe quel bundle.build
quand vous avez ditappBundle
(dans la 2ème ligne de votre code) ?Voici ce qui a fonctionné sur Xcode 8, Swift 3:
De L'Objectif C:
1)Pour obtenir la version de l'Application, vous devez utiliser un:
2)Pour obtenir la version de Build, vous devez utiliser un:
Dans Swift, vous pouvez obtenir bundle version à l'aide de:
Un projet open source de la mine, Mise À Jour App Tracker, offre cette fonctionnalité (et plus) dans la forme de méthodes de la classe:
+ (NSString *)getShortVersionString
+ (NSString *)getLongVersionString
Que vous pouvez l'utiliser comme ceci:
Juste pour remarque
Pour obtenir localisée de la valeur de la clé que vous devriez utiliser
CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), "CFBundleShortVersionString" as CFString)
Heres un Swift version de ces deux séparément:
Inclus dans ce repo, check it out:
https://github.com/goktugyil/EZSwiftExtensions