Création d'un version_string de majeur / mineur / patch / build définit pour une utilisation dans un plist
-
18-09-2019 - |
Question
J'ai un plist qui est traité avec un fichier d'en-tête précompilé et là est la « variable » version_string utilisé plusieurs fois dans des domaines tels que CFBundleGetInfoString, à savoir la valeur de la CFBundleGetInfoString clé est: MyProduct version_string Copyright © 2009 MyCorp
Dans MyHeader.h (qui est l'ensemble comme l'en-tête de préfixe Info.plist je voudrais être en mesure de construire version_string dans la forme MAJOR.MINOR.PATCH.BUILD où je
#define MAJOR 1
#define MINOR 0
#define PATCH 0
#define BUILD 23
Pour une raison quelconque, je semble être incapable de le faire. Je pourrais juste être d'avoir un de ces moments
La solution
Transforme là-bas est en fait un Apple Tech Note sur cette question et une solution au problème même que je faisais. Donc, pour tous ceux qui peuvent venir à travers cela et est d'avoir les mêmes problèmes que je consulter note technique TN2175: Traitement des fichiers Info.plist dans Xcode Utilisation du préprocesseur C
Autres conseils
Prenez votre fichier plist et le renommer avec une extension supplémentaire (peut-être un P?). Ajouter #include "MyHeader.h"
au début du fichier, et prétraiter dans votre construction avec le préprocesseur C (généralement cpp
). Vous devrez peut-être filtrer les lignes de #
supplémentaires, mais je ne vois pas pourquoi cela ne fonctionnerait pas.
Par défaut, cpp
devrait sortie stdout, afin d'ajouter une commande comme cela pourrait bien fonctionner:
cpp myplist.plist.P | grep -v '^#' > myplist.plist