Condividi tramite


Introduzione a Objective Sharpie

Importante

Objective Sharpie è uno strumento per sviluppatori Xamarin esperti con conoscenze avanzate ( Objective-C e per estensione, C). Prima di tentare di associare una Objective-C libreria, è necessario avere una conoscenza approfondita di come creare la libreria nativa nella riga di comando (e una buona conoscenza del funzionamento della libreria nativa).

Installazione di Objective Sharpie

Objective Sharpie è attualmente uno strumento da riga di comando autonomo per Mac OS X 10.10 e versioni successive e non è un prodotto Xamarin completamente supportato. Deve essere usato solo dagli sviluppatori avanzati per facilitare la creazione di un progetto di associazione a una libreria di terze parti Objective-C .

Objective Sharpie può essere scaricato come programma di installazione del pacchetto OS X standard. Eseguire il programma di installazione e seguire tutte le richieste visualizzate dall'installazione guidata:

Suggerimento

Usare il comando per eseguire l'aggiornamento sharpie update alla versione più recente.

Procedura dettagliata di base

Objective Sharpie è uno strumento da riga di comando fornito da Xamarin che consente di creare le definizioni necessarie per associare una libreria di terze parti Objective-C a C#. Anche quando si usa Objective Sharpie, lo sviluppatore dovrà modificare i file generati al termine di Objective Sharpie per risolvere eventuali problemi che non possono essere gestiti automaticamente dallo strumento.

Se possibile, Objective Sharpie annota le API con cui ha qualche dubbio su come eseguire correttamente l'associazione (molti costrutti nel codice nativo sono ambigui). Queste annotazioni verranno visualizzate come [Verify] attributi.

L'output di Objective Sharpie è una coppia di file, ApiDefinition.cs che StructsAndEnums.cs può essere usato per creare un progetto di associazione che viene compilato in una libreria che è possibile usare nelle app Xamarin.

Importante

Objective Sharpie include una regola principale per l'utilizzo corretto: è necessario passarlo assolutamente gli argomenti della riga di comando del compilatore clang corretti per garantire un'analisi corretta. Questo avviene perché la fase di analisi Objective Sharpie è semplicemente uno strumento implementato nell'API libtooling clang.

Ciò significa che Objective Sharpie ha la piena potenza di Clang (il compilatore C/Objective-C/C++ che compila effettivamente la libreria nativa da associare) e tutte le informazioni interne dei file di intestazione per l'associazione. Invece di tradurre l'AST analizzato nel codice oggetto, Objective Sharpie converte L'AST in uno "scaffolding" di associazione C# adatto per l'input bmac agli strumenti di associazione E btouch Xamarin.

Se Objective Sharpie genera errori durante l'analisi, significa che clang ha generato un errore durante la fase di analisi cercando di costruire l'AST ed è necessario capire perché.

NOVITÀ! La versione 3.0 tenta di risolvere alcune di queste complessità supportando direttamente i progetti Xcode. Se una libreria nativa ha un progetto Xcode valido, Objective Sharpie può valutare il progetto per una destinazione e una configurazione specificate per dedurre i file di intestazione di input e i flag del compilatore necessari.

Se non è disponibile alcun progetto Xcode, sarà necessario acquisire maggiore familiarità con il progetto deducendo i file di intestazione di input corretti, i percorsi di ricerca dei file di intestazione e altri flag del compilatore necessari. È importante tenere presente che i flag del compilatore usati per compilare la libreria nativa sono gli stessi che devono essere passati a Objective Sharpie. Si tratta di un processo più manuale e uno che richiede una certa familiarità con la compilazione di codice nativo nella riga di comando con la toolchain Clang.