Associare librerie Swift per iOS
Importante
Attualmente si sta esaminando l'utilizzo dell'associazione personalizzata nella piattaforma Xamarin. Si prega di prendere questo sondaggio per informare i futuri sforzi di sviluppo.
La piattaforma iOS, insieme ai linguaggi e agli strumenti nativi, è in continua evoluzione e sono disponibili numerose librerie di terze parti sviluppate usando le offerte più recenti. Ottimizzare il riutilizzo di codice e componenti è uno degli obiettivi principali dello sviluppo multipiattaforma. La possibilità di riutilizzare i componenti compilati con Swift è diventata sempre più importante per gli sviluppatori Xamarin man mano che la loro popolarità tra gli sviluppatori continua a crescere. È possibile che si abbia già familiarità con il processo di associazione di librerie regolari Objective-C . È ora disponibile una documentazione aggiuntiva che descrive il processo di associazione di un framework Swift, in modo che siano utilizzabili da un'applicazione Xamarin nello stesso modo. Lo scopo di questo documento è descrivere un approccio di alto livello per creare un'associazione Swift per Xamarin.
Approccio generale
Con Xamarin è possibile associare qualsiasi libreria nativa di terze parti per essere utilizzabile da un'applicazione Xamarin. Swift è il nuovo linguaggio e crea il binding per le librerie compilate con questo linguaggio richiede alcuni passaggi e strumenti aggiuntivi. Questo approccio prevede i quattro passaggi seguenti:
- Compilazione della libreria nativa
- Preparazione dei metadati di Xamarin, che consente agli strumenti di Xamarin di generare classi C#
- Compilazione di una libreria di binding Xamarin usando la libreria nativa e i metadati
- Uso della libreria di binding Xamarin in un'applicazione Xamarin
Le sezioni seguenti illustrano questi passaggi con dettagli aggiuntivi.
Compilare la libreria nativa
Il primo passaggio consiste nell'avere un framework Swift nativo pronto con l'intestazione Objective-C creata. Questo file è un'intestazione generata automaticamente che espone classi, metodi e campi Swift desiderati, rendendoli accessibili sia a C# sia Objective-C tramite una libreria di binding Xamarin. Questo file si trova all'interno del framework nel percorso seguente: FrameworkName.framework>/Headers/<FrameworkName-Swift.h>.< Se l'interfaccia esposta include tutti i membri necessari, è possibile passare al passaggio successivo. In caso contrario, sono necessari altri passaggi per esporre tali membri. L'approccio dipenderà dal fatto che si abbia accesso al codice sorgente del framework Swift:
- Se si ha accesso al codice, è possibile decorare i membri Swift necessari con l'attributo
@objc
e applicare alcune regole aggiuntive per informare gli strumenti di compilazione Xcode che questi membri devono essere esposti al Objective-C mondo e all'intestazione. - Se non si ha accesso al codice sorgente, è necessario creare un framework Swift proxy, che esegue il wrapping del framework Swift originale e definisce l'interfaccia pubblica richiesta dall'applicazione usando l'attributo
@objc
.
Preparare i metadati di Xamarin
Il secondo passaggio consiste nel preparare le interfacce di definizione dell'API, usate da un progetto di associazione per generare classi C#. Queste definizioni possono essere create manualmente o automaticamente dallo strumento Objective Sharpie e dal file di intestazione FrameworkName-Swift.h> generato automaticamente<. Dopo aver generato i metadati, deve essere verificato e convalidato manualmente.
Compilare la libreria di binding Xamarin.iOS
Il terzo passaggio consiste nel creare un progetto speciale - Libreria di binding Xamarin.iOS. Fa riferimento ai framework e ai metadati preparati nel passaggio precedente insieme a eventuali dipendenze aggiuntive su cui si basa il rispettivo framework. Gestisce anche il collegamento dei framework nativi a cui si fa riferimento con l'applicazione Xamarin.iOS che usa.
Usare la libreria di binding di Xamarin
Il quarto e ultimo passaggio consiste nel fare riferimento alla libreria di binding in un'applicazione Xamarin.iOS. È sufficiente abilitare l'uso della libreria nativa nelle applicazioni Xamarin.iOS destinate a iOS 12.2 e versioni successive. Per tali applicazioni destinate a una versione precedente, sono necessari alcuni passaggi aggiuntivi:
- Aggiungere dipendenze dylib Swift per il supporto di runtime. A partire da iOS 12.2 e Swift 5.1, il linguaggio è diventato stabile e compatibile con ABI (application binary interface). Ecco perché qualsiasi applicazione destinata a una versione iOS inferiore deve includere dipendenze dylibs Swift usate dal framework. Usare il pacchetto NuGet SwiftRuntimeSupport per includere automaticamente le dipendenze dylib necessarie nel pacchetto dell'applicazione risultante.
- Aggiungere la cartella SwiftSupport con dylibs firmato, convalidata dall'AppStore durante il processo di caricamento. Il pacchetto deve essere firmato e distribuito all'AppStore connettersi usando gli strumenti Xcode, altrimenti verrà rifiutato automaticamente.
scenario
L'approccio precedente descrive i passaggi generali necessari per creare un'associazione Swift per Xamarin. Ci sono molti passaggi di livello inferiore coinvolti e altri dettagli da considerare quando si preparano queste associazioni in pratica, inclusa l'adattamento alle modifiche negli strumenti e nelle lingue native. Lo scopo è quello di aiutare a comprendere più approfonditamente questo concetto e i passaggi generali coinvolti in questo processo. Per una guida dettagliata, vedere la documentazione della procedura dettagliata sull'associazione di Xamarin Swift.
Collegamenti correlati
- Xcode
- Visual Studio per Mac
- Objective Sharpie
- Verifica dei metadati sharpie
- Framework di binding Objective-C
- Gigya iOS SDK (framework Swift)
- Stabilità ABI Swift 5.1
- SwiftRuntimeSupport NuGet
- Automazione di test dell'interfaccia utente di Xamarin
- Configurazione uitest di Xamarin.iOS
- AppCenter Test Cloud
- Repository di progetti di esempio