Wiązanie bibliotek swift systemu iOS

Ważne

Obecnie badamy użycie powiązań niestandardowych na platformie Xamarin. Weź udział w tej ankiecie , aby poinformować o przyszłych wysiłkach programistycznych.

Platforma iOS, wraz z językami natywnymi i narzędziami, stale ewoluuje i istnieje wiele bibliotek innych firm, które zostały opracowane przy użyciu najnowszych ofert. Maksymalizacja ponownego użycia kodu i składników jest jednym z kluczowych celów programowania międzyplatformowego. Możliwość ponownego użycia składników utworzonych za pomocą usługi Swift staje się coraz ważniejsza dla deweloperów platformy Xamarin, ponieważ ich popularność wśród deweloperów nadal rośnie. Być może znasz już proces tworzenia powiązań zwykłych Objective-C bibliotek. Dodatkowa dokumentacja jest teraz dostępna, opisując proces wiązania struktury Swift, więc są one używane przez aplikację platformy Xamarin w ten sam sposób. Celem tego dokumentu jest opisanie wysokiego poziomu podejścia do tworzenia powiązania swift dla platformy Xamarin.

Podejście wysokiego poziomu

Za pomocą platformy Xamarin można powiązać dowolną bibliotekę natywną innej firmy, która będzie mogła być eksploatowa przez aplikację platformy Xamarin. Swift to nowy język i tworzenie powiązania dla bibliotek utworzonych za pomocą tego języka wymaga wykonania pewnych dodatkowych kroków i narzędzi. Takie podejście obejmuje następujące cztery kroki:

  1. Kompilowanie biblioteki natywnej
  2. Przygotowywanie metadanych platformy Xamarin, co umożliwia narzędziom platformy Xamarin generowanie klas języka C#
  3. Tworzenie biblioteki powiązań platformy Xamarin przy użyciu biblioteki natywnej i metadanych
  4. Korzystanie z biblioteki powiązań platformy Xamarin w aplikacji platformy Xamarin

W poniższych sekcjach opisano te kroki z dodatkowymi szczegółami.

Tworzenie biblioteki natywnej

Pierwszym krokiem jest przygotowanie natywnej struktury Swift Framework z utworzonym nagłówkiem Objective-C . Ten plik jest automatycznie wygenerowanym nagłówkiem, który uwidacznia żądane klasy, metody i pola swift, dzięki czemu są one dostępne zarówno dla języka Objective-C C#, jak i ostatecznie za pośrednictwem biblioteki powiązań platformy Xamarin. Ten plik znajduje się w strukturze pod następującą ścieżką: FrameworkName.framework/Headers/<FrameworkName-Swift.h>>.< Jeśli uwidoczniony interfejs zawiera wszystkie wymagane elementy członkowskie, możesz przejść do następnego kroku. W przeciwnym razie wymagane są dalsze kroki, aby uwidocznić tych członków. Podejście będzie zależeć od tego, czy masz dostęp do kodu źródłowego platformy Swift:

  • Jeśli masz dostęp do kodu, możesz ozdobić wymagane elementy członkowskie swift za pomocą atrybutu @objc i zastosować kilka dodatkowych reguł, aby umożliwić narzędziom kompilacji Xcode wiedzieć, że te elementy członkowskie powinny być widoczne dla Objective-C świata i nagłówka.
  • Jeśli nie masz dostępu do kodu źródłowego, musisz utworzyć strukturę proxy Swift, która opakowuje oryginalną strukturę Swift i definiuje interfejs publiczny wymagany przez aplikację przy użyciu atrybutu @objc .

Przygotowywanie metadanych platformy Xamarin

Drugim krokiem jest przygotowanie interfejsów definicji interfejsu API, które są używane przez projekt powiązania do generowania klas języka C#. Te definicje można utworzyć ręcznie lub automatycznie za pomocą narzędzia Objective Sharpie oraz wyżej wygenerowanego <automatycznie pliku nagłówka FrameworkName-Swift.h>. Po wygenerowaniu metadanych należy je zweryfikować i zweryfikować ręcznie.

Tworzenie biblioteki powiązań platformy Xamarin.iOS

Trzecim krokiem jest utworzenie specjalnego projektu — biblioteki powiązań platformy Xamarin.iOS. Odwołuje się ona do struktur i metadanych przygotowanych w poprzednim kroku wraz z wszelkimi dodatkowymi zależnościami, na których polega odpowiednia struktura. Obsługuje również łączenie odwołanych platform natywnych z zużywaną aplikacją Xamarin.iOS.

Korzystanie z biblioteki powiązań platformy Xamarin

Czwartym i ostatnim krokiem jest odwołanie do biblioteki powiązań w aplikacji platformy Xamarin.iOS. Wystarczy włączyć korzystanie z biblioteki natywnej w aplikacjach platformy Xamarin.iOS przeznaczonych dla systemu iOS 12.2 lub nowszego. W przypadku tych aplikacji przeznaczonych dla niższej wersji wymagane są pewne dodatkowe kroki:

  • Dodaj zależności biblioteki dylib swift na potrzeby obsługi środowiska uruchomieniowego. Począwszy od systemów iOS 12.2 i Swift 5.1, język stał się stabilny i zgodny z językiem ABI (interfejs binarny aplikacji). Dlatego każda aplikacja przeznaczona dla niższej wersji systemu iOS musi uwzględniać zależności biblioteki Swift używane przez platformę. Użyj pakietu NuGet SwiftRuntimeSupport, aby automatycznie uwzględnić wymagane zależności dylib w wynikowym pakiecie aplikacji.
  • Dodaj folder SwiftSupport z podpisanymi bibliotekami dylibs, który jest weryfikowany przez sklep AppStore podczas procesu przekazywania. Pakiet powinien być podpisany i dystrybuowany do programu AppStore connect przy użyciu narzędzi Xcode. W przeciwnym razie zostanie on automatycznie odrzucony.

Przewodnik

Powyższe podejście przedstawia ogólne kroki wymagane do utworzenia powiązania swift dla platformy Xamarin. Istnieje wiele kroków niższego poziomu i dalsze szczegóły, które należy wziąć pod uwagę podczas przygotowywania tych powiązań w praktyce, w tym dostosowanie się do zmian w narzędziach i językach natywnych. Celem jest pomoc w uzyskaniu głębszego zrozumienia tej koncepcji i kroków wysokiego poziomu związanych z tym procesem. Aby zapoznać się ze szczegółowym przewodnikiem krok po kroku, zapoznaj się z dokumentacją przewodnika po powiązaniach języka Xamarin Swift.