Binden von nativen Frameworks
Manchmal wird eine native Bibliothek als Framework verteilt. Objective Sharpie bietet ein Komfortfeature zum Binden ordnungsgemäß definierter Frameworks über die -framework
Option.
Die Bindung des Adobe Creative SDK Frameworks für iOS ist beispielsweise einfach:
$ sharpie bind \
-framework ./AdobeCreativeSDKFoundation.framework \
-sdk iphoneos8.1
In einigen Fällen gibt ein Framework eine Info.plist an, die angibt, für welches SDK das Framework kompiliert werden soll. Wenn diese Informationen vorhanden sind und keine explizite -sdk
Option übergeben wird, leitet Objective Sharpie sie aus der Info.plist des Frameworks ab (entweder der DTSDKName
Schlüssel oder eine Kombination aus und DTPlatformName
DTPlatformVersion
).
Die -framework
Option lässt nicht zu, dass explizite Headerdateien übergeben werden. Die Umbrellaheaderdatei wird anhand der Konvention basierend auf dem Frameworknamen ausgewählt. Wenn ein Umbrellaheader nicht gefunden werden kann, versucht Objective Sharpie nicht, das Framework zu binden, und Sie müssen die Bindung manuell ausführen, indem Sie die richtigen Umbrellaheaderdatei(en) zur Analyse bereitstellen, sowie alle Frameworkargumente für clang (z. B. die Option für den -F
Frameworksuchpfad).
Unter der Haube ist die Angabe -framework
nur eine Verknüpfung. Die folgenden Bindungsargumente sind mit der obigen -framework
Kurzform identisch.
Von besonderer Bedeutung ist der Framework-Suchpfad, der -F .
für clang bereitgestellt wird (beachten Sie den Leerraum und den Punkt, die im Rahmen des Befehls erforderlich sind).
$ sharpie bind \
-sdk iphoneos8.1 \
./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
-scope AdobeCreativeSDKFoundation.framework/Headers \
-c -F .