Sto utilizzando this answer per creare una mappa modulo per creare un modulo per CommonCrypto in modo da poterlo utilizzare in un framework.Mappa modulo privata per un framework
Facendo questo però significa che i progetti che uso questo quadro hanno accesso a CommonCrypto con import CommonCrypto
- e, peggio ancora, dichiarando CommonCrypto in un altro quadro e l'importazione in questo i risultati del progetto in Redefinition of module 'CommonCrypto'
errori.
I.e. la seguente configurazione:
MainProject
|--> import FrameworkA - module map for CommonCrypto
|--> import FrameworkB - module map for CommonCrypto
C'è un modo per creare una mappa modulo, ma lo hanno privato di tale ambito il suo creato/usato in? (Molto simile all'attributo di accesso internal
in Swift for a Framework). Il llvm Clang docs mostra un private
attribute ma non riesco a capire dove metterlo nella mia mappa del modulo, e potrebbe non essere nemmeno per questo scopo! C'è anche un export
attribute ma di nuovo non sono del tutto sicuro di come usare questo ...!
Questa è la mia mappa modulo che sto utilizzando per CommonCrypto - la $(SDKROOT)
ottiene scambiati in una fase di costruzione nella posizione corretta (per iphoneos
o iphonesimulator
SDK):
module CommonCrypto [system] [extern_c] {
umbrella header "$(SDKROOT)/usr/include/CommonCrypto/CommonCrypto.h"
export *
}
Questo funziona bene (tranne te non posso "andare alla definizione" ma non mi dispiace) per l'uso in FrameworkA
/FrameworkB
.
Ciao, aggiornato su questo? Ho lo stesso setup esatto per libz :( – tmpz
Rich, potresti fornire lo script di fase build che sostituisce $ (SKROOT)? Grazie! – appleitung
@appleitung: Script è qui: gist.github.com/rhodgkins/5eecee8bcbdb6021fc798247132e9fa7 e quindi impostare in questo modo: postimg.org/image/fj7j9nsqp in un progetto Non dimenticare di aggiungere la directory $ (PROJECT_DIR)/$ (TARGET_NAME)/ExternalFrameworks/all'impostazione di build * Percorsi di ricerca del framework, quindi tutto il modulo le mappe dovrebbero trovarsi nella cartella della directory di input - con il nome della cartella contenente il nome del modulo. – Rich