2015-08-22 12 views
9

Ho un conflitto di denominazione con l'intestazione Umbrella. Il mio nome di framework è "SecureData", ma voglio avere una classe ogg-c in questo framework chiamata "SecureData".Modifica del nome dell'intestazione dell'ombrello

Il problema è che l'intestazione dell'ombrello deve essere chiamata "SecureData.h" e non riesco a capire come specificare un nome diverso per l'intestazione dell'ombrello nelle impostazioni xcode. È possibile o devo solo creare un nome diverso?

risposta

15

È possibile.

È possibile specificare un nome diverso per l'intestazione dell'ombrello di Module Map File.

  1. Creare un nuovo file di modulemap per Progetto.

    framework module XXXProject { 
        umbrella header "XXNewumbrellaName.h" 
    
        export * 
        module * { export * } 
    } 
    
  2. Specifica file modulemap: Build Settings -> Packaging -> Module Map File

Ok, Ti aspettavi effetto si ottiene.

Spero che questo ti possa aiutare.

+1

Nota: il nome 'module.modulemap' è raccomandato: http://clang.llvm.org/docs/Modules.html#module-maps –

+1

@ Cœur Si consiglia, ma a quanto pare impedisce anche la compilazione del codice :(https : //twitter.com/charlesismcom/status/846615073737007104 – Charlesism

+1

@ Cœur Xcode 8.3 Note sulla versione: "Quando si costruisce un framework che ha mappe di moduli sia nella directory di origine che in quella di installazione che definiscono lo stesso modulo, il compilatore mostrerà un messaggio di ridefinizione . (28638816) Soluzione alternativa: rinominare il file della mappa del modulo nella directory di origine con un nome non predefinito (il nome predefinito è module.modulemap o module.map) e impostare l'impostazione di creazione del file della mappa del modulo sulla mappa modulo rinominata. " – Charlesism

Problemi correlati