J'ai une myriade de problèmes avec Xcode 4 et des projets imbriqués qui fonctionnaient très bien sous Xcode 3.2. Voici un problème très basique que je ne peux pas résoudre :
Je suis en train de construire un framework cacao qui nécessite un autre framework cacao dont j'ai les sources. J'effectue donc les étapes habituelles :
- Faites glisser le
.xcodeproj
du cadre requis dans mon projet principal de cadre. - Dans mon cadre principal, sous TARGETS > MyFramework > Build Phases > Dépendances de la cible : Ajouter la cible du projet imbriqué
- Assurez-vous que les fichiers d'en-tête du cadre imbriqué sont publics.
- Dans Xcode Settings > Locations > Emplacement de la construction Je l'ai réglé sur Placez les produits de construction dans l'emplacement des données dérivées (recommandé).
-
Chemin des produits de construction des deux objectifs sont fixés à
${BUILT_PRODUCTS_DIR}
et me dire qu'ils sont au Données dérivées/Debug Emplacement (ou libération) - Les paramètres d'architecture des deux cibles sont identiques
Ensuite, j'ai appuyé sur [CMD] + B pour construire et il me dit qu'il ne trouve pas les fichiers d'en-tête du cadre imbriqué. Quand je vérifie les paramètres, Chemins de recherche de l'en-tête de l'utilisateur contient le chemin d'accès à Données dérivées/Debug et à l'intérieur, il y a la cible du framework imbriqué avec les fichiers d'en-tête dans Versions/A/Headers .
Je suis assis ici, quelqu'un a une idée de ce que je fais de mal ?
Le problème disparaît lorsque l'on construit pour Déboguer lorsque je change le Chemins de recherche de l'en-tête de l'utilisateur a ${BUILT_PRODUCTS_DIR}/MyFramework.framework/Headers
. Cependant, cela ne fonctionne pas lorsque l'on construit pour Distribution car les frameworks utilisent alors leurs paramètres Release, qui se retrouvent dans un sous-répertoire différent...
Ma solution temporaire consiste à définir également un Distribution pour les projets imbriqués. De cette façon, les en-têtes sont trouvés et le linker peut lier avec succès.