2010-03-08 5 views
1

hé Je télécharge fréquemment mes projets iPhone XCode dans un référentiel svn pour les compiler sur une autre machine.Vérification des ressources

Mon problème est que lorsque j'ajoute des ressources à mon projet, j'oublie parfois d'ajouter la ressource par rapport au projet.

Je sais qu'une réponse est d'être plus prudent (pas facile quand vous êtes fatigué!) Mais s'il y avait un moyen d'exécuter un script pour vérifier mes chemins de ressources sont relatifs quand je construis et avertis si ils ne le sont pas être un grand épargnant de temps pour moi.

Comment ferais-je cela?

Merci

Chris

Répondre

1

Vous pouvez sélectionner tous les fichiers de votre projet et définissez le type de chemin pour chacun d'eux en une seule fois. Bien que ce ne soit pas un script, cela fait gagner beaucoup de temps à faire les fichiers individuellement

Je pense que la meilleure approche du script serait de regarder dans le fichier .xcodeproj - les chemins de fichier sont listés ici. Si votre projet s'appelle MyProject, vous devez ouvrir (soit en utilisant Afficher le contenu du paquet dans le Finder ou simplement le cd habituel dans Terminal) le répertoire MyProject.xcodeproj.

Ici vous trouverez un fichier appelé project.pbxproj - ouvrez-le dans un éditeur qui ne gâchera pas votre mise en forme et jetez un coup d'œil autour du fichier. Si vous recherchez un de vos fichiers dans le projet, vous devriez être capable de voir comment Xcode stocke les références aux fichiers du projet.

Rechercher une section nommée/* Début de la section PBXFileReference * /. Ici tous vos fichiers sont répertoriés, ainsi que là où ils sont par rapport au projet, par exemple:

... path = Classes/MyClass.h; sourceTree = SOURCE_ROOT 

Si vous pouvez analyser ce fichier, vous devriez être en mesure de acheive ce que vous voulez - mais rappelez-vous de sauvegarder le fichier , sinon vous pourriez corrompre votre projet.

+0

yeh c'est une option .. voudrais vraiment en savoir plus sur la façon de scripter une telle chose cependant. – Chris

0

Comment cela se passerait-il si vous écrivez à la place un script qui demande au SCM si quelque chose dans le projet n'est pas validée? Par exemple, pensez à ce scénario

Project Root 

    Codex 

    Project.xcodeproj 
    … 

    Design 

    anImage.png 

anImage.png étant en dehors de Codex, où se trouve le projet Xcode (son chemin commence par un ../). Un puissant analyseur .pbxproj devrait prendre en charge toutes les variantes dans lesquelles Xcode référence les fichiers pour savoir exactement s'il y a des fichiers parasites.

OTOH, le SCM sait où tout est tout le temps (vous avez mentionné up-ping à un serveur SVN), alors pourquoi ne pas le demander à la place.

  • Nous avons un Ruby script qui imprime un avertissement dans le journal Build Xcode si quoi que ce soit dans le projet n'est pas engagé.