Introduzione con Obiettivo Sharpie

Importante

Objective Sharpie è uno strumento per sviluppatori Xamarin esperti con conoscenza avanzata di Objective-C (e per estensione, C). Prima di provare a associare una Objective-C libreria, è necessario avere una solida conoscenza di come compilare la libreria nativa nella riga di comando (e una buona comprensione del funzionamento della libreria nativa).

Installazione di Objective Sharpie

Objective Sharpie è attualmente uno strumento della 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 in 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 sullo schermo dalla procedura guidata di installazione:

Suggerimento

Usare il sharpie update comando per aggiornare alla versione più recente.

Procedura dettagliata di base

Objective Sharpie è uno strumento della riga di comando fornito da Xamarin che aiuta a 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 dopo il completamento 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 associare correttamente (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 e 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 appropriato: è necessario passarlo assolutamente gli argomenti della riga di comando del compilatore clang corretti per garantire un'analisi corretta. Questo perché la fase di analisi di Objective Sharpie è semplicemente uno strumento implementato nell'API clang libtooling.

Ciò significa che Objective Sharpie ha la potenza completa di Clang (il compilatore C/Objective-C/C++ che compila effettivamente la libreria nativa che si associa) e tutte le relative conoscenze interne dei file di intestazione per l'associazione. Invece di tradurre l'AST analizzato nel codice oggetto, Objective Sharpie converte L'AST in un'associazione C# "scaffold" adatta per l'input bmac agli strumenti di associazione E btouch Xamarin.

Se Objective Sharpie esegue un errore durante l'analisi, significa che clang ha eseguito l'errore durante la fase di analisi cercando di costruire l'AST e è necessario capire perché.

NUOVO 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 specificati per dedurre i file di intestazione di input necessari e i flag del compilatore.

Se non è disponibile alcun progetto Xcode, sarà necessario acquisire 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 notare 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 del codice nativo nella riga di comando con la toolchain Clang.