Mon cas est simple, un espace de travail avec deux frère projets: l'un principal (iOS) de l'app et un projet qui génère plusieurs statique de la bibliothèque de cibles utilisées par l'application.
Voici comment j'ai configuré le build:
- rappelé à l'utilisateur d'en-tête de la recherche de chemin d'accès dans l'application principale de paramètres de construction de la bibliothèque de l'emplacement du projet (par l'intermédiaire d'un arbre source)
- dans mon application principale cible de l'éditeur -> phases de construction -> "Lien Binaire Avec les Bibliothèques de la section", a ajouté la bibliothèque de produits que je veux utiliser.
- dans le schéma, coché "Trouver Dépendances Implicites'
Après un nettoyage (et de suppression des données dérivées), un renforcement des filets de moi cette erreur lors de la compilation du projet principal:
ld: library not found for -lChipmunk
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
Bien sûr, si je regarde dans le nouvellement créé données dérivées, le seul objet des fichiers trouvés sont pour l'application principale, pas les bibliothèques. Une généralisation de "trouver" pour *.o fichiers ne révèlent rien de pertinent, de sorte que les bibliothèques ne sont pas perdus, ils ne sont certainement pas en cours de construction.
Quelques points supplémentaires:
- quand j'ai demandé à ce sujet sur le dev Apple forums, il a été suggéré que je devrais ajouter explicite deps dans la cible principale de l'Phases de construction->Cible des Dépendances de l'éditeur. Mais vous ne pouvez ajouter deps ici pour cibles dans le même projet ou sous-projets; dans mon cas, j'ai l'app et les projets de la bibliothèque comme lieu de travail frères et sœurs.
- si je construis chaque bibliothèque manuellement avant que le construire, tout est très bien.
Mise à jour:
J'ai trouvé une solution de contournement, qui consiste à ajouter tous les deps' objectifs dans la "construction" d'une partie de l'application principale du régime. J'avais essayé cela avant, sans succès, mais n'avais pas réalisé que je pouvais faire glisser les cibles autour de la liste pour obtenir le droit de construire de l'ordre. S'appuie désormais se produire dans le bon ordre, à la fois après un nettoyage, et après des changements dans la bibliothèque ou de l'application principale source.
Je pars de la question ici, parce que manuellement le tri d'un ordre de construction sûrement ne devrait pas être nécessaire. Il y a quelque chose de mal avec la façon dont j'ai des choses mis en place.