3 votes

Comment lister tous les fichiers d'une cible dans Xcode ?

Existe-t-il une commande XC que je peux utiliser pour lister tous les fichiers d'une cible ?

enter image description here

1voto

Brad Allred Points 5881

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" ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X