Condividi tramite


Binding di framework nativi

In alcuni casi una libreria nativa viene distribuita come framework. Objective Sharpie offre una funzionalità utile per l'associazione di framework definiti correttamente tramite l'opzione -framework .

Ad esempio, l'associazione di Adobe Creative SDK Framework per iOS è semplice:

$ sharpie bind \
    -framework ./AdobeCreativeSDKFoundation.framework \
    -sdk iphoneos8.1

In alcuni casi, un framework specifica un info.plist che indica in quale SDK deve essere compilato il framework. Se queste informazioni esistono e non viene passata alcuna opzione esplicita-sdk, Objective Sharpie lo dedurrà dal file Info.plist del framework (la DTSDKName chiave o una combinazione di DTPlatformName chiavi e DTPlatformVersion ).

L'opzione -framework non consente il passaggio di file di intestazione espliciti. Il file di intestazione umbrella viene scelto per convenzione in base al nome del framework. Se non è possibile trovare un'intestazione generica, Objective Sharpie non tenterà di associare il framework ed è necessario eseguire manualmente l'associazione fornendo i file di intestazione generici corretti da analizzare, insieme a qualsiasi argomento del framework per clang (ad esempio l'opzione -F percorso di ricerca del framework).

Sotto le quinte, specificando -framework è solo un collegamento. Gli argomenti di binding seguenti sono identici alla -framework sintassi abbreviata precedente. Di particolare importanza è il -F . percorso di ricerca del framework fornito a clang (si noti lo spazio e il punto necessari come parte del comando).

$ sharpie bind \
    -sdk iphoneos8.1 \
    ./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
    -scope AdobeCreativeSDKFoundation.framework/Headers \
    -c -F .