L'espace de travail avec l'iOS de projet et liées à un projet de bibliothèque statique

Je me bats avec Xcode 4 espaces de travail. Actuellement Xcode 4 victoires. Donc, ma situation:

J'ai l'espace de travail grâce à l'application iOS du projet. Il y a également le projet de bibliothèque statique de l'application iOS dépend du cet espace de travail.


Solution #1

J'essaie de le configurer comme ceci:

  • l'application du projet:
    • ajouter à la cible Phases de construction > Lien Binaire Avec la Bibliothèque d'un produit (libmystaticlib.a);
    • ensemble USER_HEADER_SEARCH_PATHS à $(TARGET_BUILD_DIR)/usr/local/include $(DSTROOT)/usr/local/include;
  • le projet de bibliothèque statique:
    • ajouter quelques fichiers d'en-tête de la cible Phases de construction > Copie des en-Têtes > Public;
    • ensemble SKIP_INSTALL à YES.

Et chose importante: les deux projets doivent avoir des configurations avec le même nom. Sinon, si j'ai, par exemple, la configuration nommé de Distribution (Ad Hoc) pour l'application et Libération pour la bibliothèque statique, Xcode ne pouvez pas lier l'application à la bibliothèque.

Avec cette configuration de l'archivage des résultats d'une archive à l'application et au public les en-têtes de la statique de la bibliothèque de projets. Bien sûr, je ne suis pas en mesure de partager *.ipa dans ce cas. 🙁


Solution #2

J'ai aussi essayé une autre configuration:

  • Xcode préférences:
    • ensemble arborescence des sources de la bibliothèque statique, e.g, ADDITIONS_PROJECT;
  • l'application du projet:
    • ajouter à la cible Phases de construction > Lien Binaire Avec la Bibliothèque d'un produit (libmystaticlib.a);
    • ensemble USER_HEADER_SEARCH_PATHS à $(ADDITIONS_PROJECT)/**;
  • le projet de bibliothèque statique:
    • ne pas ajouter tous les fichiers d'en-tête du Public!;
    • ensemble SKIP_INSTALL à YES.

J'ai encore besoin de se soucier de la configuration des noms pour les deux projets. Mais en conclusion, je peux construire et archive avec succès. Dans le résultat-je obtenir de l'archive et je peux partager *.ipa.


Je n'aime pas la deuxième solutions, parce que, dans ce cas, je n'obtiens aucun avantage réel de l'Xcode 4 espace de travail. Le même effet je peux ajouter, si je ajouter la lib statique projet à l'intérieur de l'application du projet. Donc, je pense que quelque chose est incorrect avec ma solution.
Toute suggestion quoi de mieux pour un lien bibliothèques statiques?

Prendre un coup d'oeil de ma solution. stackoverflow.com/questions/6400800/... j'ai résolu ce problème en faisant de faux cadre de la structure. Approche similaire avec votre solution #1, mais un peu plus simple. Pas besoin de modifier sur l'app côté de montage de projet.
Je n'aime pas du cadre de la solution, car il est un peu hacky, car il n'est pas officiellement pris en charge par Apple pour iOS.

OriginalL'auteur Aleksejs Mjaliks | 2011-03-22