Existe-t-il une commande XC que je peux utiliser pour lister tous les fichiers d'une cible ?
Réponse
Trop de publicités?Malheureusement, je ne connais pas de variables d'environnement disponibles pour un script de construction.
Le meilleur moyen que je connaisse serait d'ouvrir le fichier pbxproj
à l'intérieur de votre xcodeproj
et l'analyser. Heureusement, il semble être dans un format de texte brut. compatible con plists
. Vous pourriez invoquer le plutil
pour le convertir en XML ou en json afin qu'un autre outil/commande puisse le consommer si tel est votre objectif. Vous pouvez utiliser une phase de construction "Run script" si vous avez besoin de cette liste dans le cadre de votre construction. Vous pouvez également instancier un NSDictionary
directement avec ce fichier si cela vous est utile.
En plist
est assez simple. Il se compose d'un root
avec quelques chaînes de version et un géant objects
dictionnaire. Chaque objet a un isa
et celle qui vous intéresse est le type PBXNativeTarget
type. Balayez jusqu'à ce que vous trouviez la cible avec la valeur correcte pour le name
clé. Une fois que vous avez trouvé votre cible, regardez son buildPhases
; AFICT la première entrée dans buildPhases
est la clé de l'élément correspondant PBXSourcesBuildPhase
objet. Cet objet de phase de construction a un files
qui contient encore un autre ensemble d'identifiants (un pour chaque fichier compilé dans la cible) qui pointe vers un fichier de type PBXBuildFile
qui a un fileRef
comme une clé pour otro mais cette fois vers un objet PBXFileReference
. Cet objet enfin a un path
qui sera le chemin d'accès au fichier source.
Attendez... ai-je dit "simple" ?