2010-04-13 6 views
4

Ma question aujourd'hui concerne la façon dont Xcode gère les fichiers de ressources dans l'ensemble d'applications qu'il crée. Je sais que c'est peut-être trivial, mais je ne trouve pas de solution facile. Fondamentalement, mon problème est que Xcode semble continuer à inclure un fichier de ressources (par exemple un fichier texte) dans l'ensemble de l'application, même si le fichier a été retiré du projet. Ici, c'est en détail ce qui se passe ici.Xcode ne laissera pas aller un fichier de ressources

⁃ Added a file to the project (both by choosing file - new file or dragging a file to the Xcode groups and files left column checking add to project folder if needed checkbox) 
⁃ Compiled and launched the project in simulator 
⁃ Verified that the file is present in myApp.app bundle, located in User/Library/Application/Support/iPhone Simulator/3.2/Applications/<application system number>/myApp.app and even in <my Xcode projects folder>/myApp/build/debugiPhonesimulator/myApp.app 
⁃ Deleted the file from groups and files column in Xcode 
⁃ Deleted the actual file with Finder in <my Xcode projects folder>/myApp/myFile 
⁃ Deleted User/Library/Application/Support/iPhone Simulator/3.2/Applications/<application system number>/myApp.app and even <my Xcode projects folder>/myApp/build/debugiPhonesimulator/myApp.app 
⁃ Emptied the trash 
⁃ Verified that there is no reference to the file with Finder spotlight 
⁃ Verified that there is no reference to the file with Xcode search 
⁃ Rebuilt and relaunched the app in simulator 
⁃ Verified that a brand new /Library/Application/Support/iPhone Simulator/3.2/Applications/<application system number>/myApp.app has been just created 
⁃ Verified the content of /Library/Application/Support/iPhone Simulator/3.2/Applications/<application system number>/myApp.app bundle: the file is still there. Where the h. did Xcode take it from? 

Il me manque sûrement quelque chose de vraiment évident. De l'aide?

+1

Si vous ne nettoyez pas ou ne supprimez pas le répertoire de construction, les anciens fichiers ne seront pas supprimés. Le processus de construction ne supprime pas les fichiers du lot d'applications, il les ajoute uniquement. – logancautrell

+0

La meilleure réponse à http://stackoverflow.com/questions/5714372/how-to-empty-caches-and-clean-all-targets-xcode-4 a une bien meilleure solution pour Xcode 4. –

Répondre

6

Avez-vous vérifié le nœud "Cibles"? Si non, alors Développez le nœud "Cibles" et celui de l'application.

  • Il doit y avoir une phase de construction appelée "Copy Bundle Resources".
  • Vérifiez que la ressource n'est pas dans la phase.

Vous pouvez également essayer d'effectuer un nettoyage complet du projet pour vous assurer qu'aucun fichier temporaire ne reste.

+0

Bonjour Laurent, et Merci de votre attention. Vous voulez vérifier la cible en tant qu'option lors de l'ajout du fichier au projet? – user236739

+0

Très bien, résolu. J'ai effectué un nettoyage complet (sous le menu de construction de Xcode) et il a résolu le problème. Merci beaucoup. – user236739

+0

C'est l'astuce. Xcode ne suit pas les ressources supprimées et les supprime d'un produit de construction permanent; il va en ajouter de nouveaux de manière incrémentielle, mais pour supprimer vous devez supprimer le produit de construction (ou faire un nettoyage complet.) – cdespinosa

1

Ran dans un problème similaire il ya quelques jours.

Il s'est avéré que sous 3.2, le simulateur crée plusieurs dossiers d'application, un pour chaque version de SDK installé. J'ai:

~/Library/Application Support/iPhone Simulator/3.0 
~/Library/Application Support/iPhone Simulator/3.1.2 
~/Library/Application Support/iPhone Simulator/3.1.3 
~/Library/Application Support/iPhone Simulator/3.2 
~/Library/Application Support/iPhone Simulator/User 

Si vous compilez sous un autre SDK, il crée un nouveau répertoire d'application pour l'application dans le dossier pour le nouveau SDK. J'avais un alias dans l'ancien dossier et j'ai fini par chercher dans le mauvais dossier une version de l'application que Xcode ne ciblait plus et qui ne changeait donc jamais. IIRC, j'ai dû traquer la nouvelle application dans le dossier SDK correspondant.

+0

Bonjour TechZen, et merci pour votre réponse. C'est un bon point mais cela ne semble pas résoudre mon problème. En fait, j'ai effectué une telle recherche sans trouver un paquet myApp sans le fichier supprimé. De plus, le bundle myApp que j'ai trouvé a une date de création qui est postérieure à la suppression du fichier ... – user236739

+0

Bon, ça m'est venu à l'esprit parce que je viens juste de tomber dessus. – TechZen

1

J'ai eu le même problème. Cependant, la solution proposée dans la réponse n'a pas résolu mon problème. Dans les cibles> Copier les ressources de l'ensemble, je ne vois pas les fichiers "fantômes". J'ai essayé de faire un nettoyage complet, supprimer l'application et le réinstaller, et j'ai toujours les fichiers dans mon application. La solution que j'ai trouvée était en supprimant manuellement le contenu du dossier: ~/Bibliothèque/Application \ Support/iPhone \ Simulator/4.3/Applications/

2

Propre utilisé pour fonctionner dans xcode 3, mais il ne semble pas faire une chose dans 4. J'ai trouvé que la suppression de l'application de l'appareil de test semble aider à faire disparaître la ressource.

1

Supprimez l'application du simulateur et supprimez avec finder le répertoire de votre application dans Bibliothèque> Developer> Xcode> DerivedData.

1

J'ai rencontré un problème similaire. Xcode 4 ne cesse de se plaindre du fichier de ressources manquant même s'il a été supprimé du projet. Il en résulte une erreur de construction.

Voici comment il est résolu:

1) Ouvrez le.fichier pbxproj 2) Supprimer toutes les lignes faisant référence au fichier de ressources que vous voulez vous débarrasser de 3) Construisez

0

J'ai eu un problème similaire avec un fichier .scnassets - Ressources de copie XCode ne liste que le fichier .scnassets (un vrai dossier, pas un groupe) mais se souvient également et copie son contenu même s'il a été supprimé. Un nettoyage intentionnel corrige ceci. En outre, les fichiers supprimés d'un fichier fantôme .scnassets semblent être copiés chaque fois que vous exécutez l'application, au lieu de la première fois qu'ils sont nécessaires. Le nettoyage accélère mon temps de construction de 300%!

Questions connexes