J'ai un cadre Objective-C (cadre A) qui expose certains en-têtes publics et certains en-têtes privés. Les en-têtes publics sont également déclarés dans l'en-tête du cadre. J'ai un deuxième cadre Swift (cadre B) qui est lié au cadre Objective-C.
Maintenant, si je veux importer les en-têtes publics de A dans BI, il suffit de faire une import A
Mais comment puis-je importer les en-têtes privés?
Je sais qu'un en-tête de pontage n'est pas une option car cela n'est pas supporté par les frameworks. Ai-je besoin de créer en quelque sorte un en-tête de parapluie séparé pour les en-têtes privés?
Vous devez modifier le framework A
, afin qu'il exporte un module privé.
Créez un file de carte de module privé dans A
projet. Ce serait quelque chose comme ceci:
Un / private.modulemap :
explicit module A.Private { // Here is the list of your private headers. header "Private1.h" header "Private2.h" export * }
Dans les "Paramètres de construction" de la cible de la structure A
, searchz la ligne "Private Map Map File" et faites en sorte que:
$(SRCROOT)/A/private.modulemap
N'incluez pas le file private.modulemap
dans "Comstack Sources". Cela provoque des avertissements inutiles.
Nettoyer et build un cadre A
cible.
Dans le cadre B files Swift. vous pouvez importer le module privé comme ceci:
import A import A.Private