Xcode ne peut pas find le file d'en-tête

J'essaie de faire un cadre pour mon projet. Dans mon cadre, j'ai ajouté le path de mes files d'en-tête à la cible> Build Settings> header-search path . Après cela, j'ai ajouté ce cadre à mon projet par Build Phases> Link Binary With Libraries .

Lorsque je veux importer le file d'en-tête que j'ai inclus dans mon cadre, j'obtiens une erreur .h file introuvable . Est ce que j'essaye de faire possible? Ou est-ce que je manque quelque chose?

J'ai créé un cadre comme ça;

J'ai ouvert un nouveau projet sous iOS> Framework & Bibliothèque> Cocoa Touch Framework Je n'ai ajouté aucune class, j'ai juste ajouté le path de search d'en-tête et le path de search de la bibliothèque et les drapeaux de l'éditeur de liens. Je ne pense pas que j'ai fait une erreur dans cette partie parce que nous le faisons dans tous les projets mais la première fois que je le fais pour le cadre. Puis j'ai pressé courir et get mon cadre de produits.

J'ai ouvert mon projet et ajouté le framework Build Phases> Link Binary With Libraries. Je suis en mesure d'importer le file d'en-tête du framework comme #import <myframework/framework.h> Après cela, j'ai ajouté le framework General> Embedded Binaries. Tout semble normal mais je ne peux pas append d'en-têtes à mon projet que j'ai inclus dans mon framework avec le path de search d'en-tête. Je dois utiliser le path de search d'en-tête car il y a des tonnes d'en-têtes, je ne peux pas tous les append à mon Xcode.

Assurez-vous que tout l'en-tête public apparaît dans la section publique, sinon faites glisser le file .h vers le public entrez la description de l'image ici

Tout semble normal mais je ne peux pas append d'en-têtes à mon projet que j'ai inclus dans mon framework avec le path de search d'en-tête.

Il semble que vous vous attendiez à ce que tous les en-têtes qui se trouvent sur le path spécifié par votre path de search d'en-tête SomeHeader.h de votre SomeHeader.h , de sorte que s'il existe un en-tête nommé SomeHeader.h dans votre path de search, dans votre cadre et vous serez en mesure de l'importer dans des projets clients comme:

 #import <MyFramework/SomeHeader.h> 

Mais ce n'est pas du tout le cas. Si vous voulez que votre framework fournisse SomeHeader.h , vous devez append ce file au projet et, comme Meghs Dhameliya l'a déjà souligné, vous devez spécifier SomeHeader.h dans la partie En-têtes Public de la phase de construction Headers. Ceci fera en sorte que Xcode copyra le file d'en-tête dans le framework afin que les clients du framework puissent importer le file d'en-tête. Ce n'est pas clair que c'est ce que vous voulez vraiment, cependant … dans les commentaires, vous avez écrit:

Il y a beaucoup d'en-têtes dans un autre path. Je dois utiliser le path de search d'en-tête malheureusement. Type de règle de l'entreprise

Il semble donc que tous les projets de votre entreprise spécifient le même path de search d'en-tête afin qu'ils aient access à ces files d'en-tête. Si c'est vrai, alors il n'y a aucune raison pour que les projets #import besoin de les #import de votre framework, mais dans ce cas, le problème réel n'est pas clair. Ou, peut-être créez-vous le framework pour que les projets clients puissent récupérer les en-têtes de votre framework au lieu de devoir referencer le path de search de l'en-tête. Dans ce cas, vous devrez append ces en-têtes au projet et les spécifier comme décrit ci-dessus.