Privé de module de carte pour un cadre

Je suis en utilisant cette réponse pour créer un module de carte de créer un module pour CommonCrypto donc je peux l'utiliser dans un cadre.

Faire ceci, cependant, signifie que tous les projets que j'utilise ce cadre pour avoir accès à CommonCrypto avec import CommonCrypto - et pire encore, en déclarant CommonCrypto dans un autre cadre et de l'importation dans les résultats du projet dans Redefinition of module 'CommonCrypto' erreurs.

I. e. la configuration suivante:

MainProject
    |--> import FrameworkA - module map for CommonCrypto
    |--> import FrameworkB - module map for CommonCrypto

Est-il un moyen de créer un module de carte, mais l'avoir privé de ce Cadre de ses créé/utilisé? (Un peu comme le internal accéder à un attribut dans Swift pour un Cadre).
Le llvm Clang docs montrer un privé l'attribut mais je ne peux pas savoir où mettre cela dans mon module de carte, et il peut même n'être pas à cette fin!
Il y a aussi un export l'attribut mais encore une fois je ne suis pas entièrement sûr de savoir comment utiliser ce...!

C'est ma carte module que j'utilise pour CommonCrypto - le $(SDKROOT) obtient échangé dans une phase de construction à l'emplacement correct (pour iphoneos ou iphonesimulator Sdk):

module CommonCrypto [system] [extern_c] {
    umbrella header "$(SDKROOT)/usr/include/CommonCrypto/CommonCrypto.h"
    export *
}

Cela fonctionne très bien (sauf que vous ne pouvez pas "aller à la définition de" mais je ne me dérange pas) pour une utilisation dans FrameworkA /FrameworkB.

Bonjour, toute nouvelle sur ce? J'ai exactement la même configuration pour libz 🙁
Riche, pourriez-vous s'il vous plaît fournir votre phase de génération de script qui remplace $(SKROOT)? Merci!
Le Script est ici: gist.github.com/rhodgkins/5eecee8bcbdb6021fc798247132e9fa7 et puis de le configurer comme ceci: postimg.org/image/fj7j9nsqp dans un projet. N'oubliez pas d'ajouter le répertoire $(PROJECT_DIR)/$(TARGET_NAME)/ExternalFrameworks/ * - Cadre de Recherche de Chemins de construire. Alors toutes les cartes de modules doit s'asseoir dans le répertoire d'entrée de dossier avec le nom du dossier contenant le modulemap étant le nom.

OriginalL'auteur Rich | 2015-12-14