Udostępnij za pośrednictwem


Apple Platform (iOS i Mac)

Udostępnianie kodu

W przypadku elementów kodu, które nie mają elementów interfejsu użytkownika, najlepszym sposobem udostępniania kodu między systemami iOS i Mac jest nadal korzystanie z bibliotek klas przenośnych.

W przypadku kodu, który musi wykonać pewną pracę interfejsu użytkownika, a mimo to chcesz udostępnić, należy użyć projektów udostępnionych , które umożliwiają umieszczenie kodu w jednym projekcie i skompilowanie go zarówno z komputerami Mac, jak i iOS podczas odwołowania się.

Ujednolicony interfejs API

Projekty ujednoliconego interfejsu API dla systemów iOS i Mac używają tych samych przestrzeni nazw dla struktur, dzięki czemu ten sam plik kodu może być używany na obu platformach w celu bezproblemowego udostępniania kodu. Umożliwia również kompilacje 32 i 64-bitowe. Ujednolicony interfejs API jest domyślnym szablonem od początku 2015 r. i jest zalecany dla wszystkich nowych projektów — do sklepu App Store można przesyłać tylko projekty ujednoliconego interfejsu API.

Klasyczne interfejsy API

Uwaga

Wycofanie profilu klasycznego: w miarę dodawania nowych platform w środowisku Xamarin.iOS zaczynamy stopniowo przestarzać funkcje z profilu klasycznego (monotouch.dll). Na przykład opcja innej niż NRC (new-ref-count) została usunięta. Funkcja NRC zawsze była włączona dla wszystkich ujednoliconych aplikacji (tj. non-NRC nigdy nie była opcją) i nie ma znanych problemów. Przyszłe wersje spowodują usunięcie opcji użycia narzędzia Boehm jako modułu odśmiecającego śmieci. Była to również opcja nigdy nie dostępna dla ujednoliconych aplikacji. Całkowite usunięcie klasycznej pomocy technicznej zaplanowano na jesień 2016 r. wraz z wydaniem platformy Xamarin.iOS 10.0.

Oryginalne (inne niż ujednolicone) interfejsy API platform Xamarin.iOS i Xamarin.Mac utrudniły udostępnianie kodu, ponieważ struktury natywne miały MonoTouch. prefiksy albo MonoMac. przestrzeni nazw. Udostępniliśmy puste przestrzenie nazw, które umożliwiają deweloperom udostępnianie kodu przez dodanie using instrukcji odwołujących się zarówno do przestrzeni nazw MonoMac, jak i MonoTouch w tym samym pliku, ale było to trochę brzydkie. Klasyczny interfejs API powinien być nadal używany tylko w starszych aplikacjach, które są wewnętrznie rozproszone (zaleca się uaktualnienie do ujednoliconego interfejsu API).

Aktualizowanie z wersji klasycznej do ujednoliconego interfejsu API

Istnieją szczegółowe instrukcje dotyczące aktualizowania dowolnej aplikacji z klasycznego do ujednoliconego interfejsu API.

Wiązanie Objective-C bibliotek

Platforma Xamarin umożliwia przenoszenie bibliotek natywnych do aplikacji z powiązaniami. W tej sekcji wyjaśniono:

  • jak działają powiązania,
  • jak ręcznie utworzyć projekt powiązania, który umożliwia wprowadzenie Objective-C kodu do platformy Xamarin i
  • jak używać naszego narzędzia Objective Sharpie , aby pomóc zautomatyzować proces.

Odwołania natywne

Typy natywne dla komputerów Mac/iOS

Aby w sposób niewidoczny dla języka C# i F#obsługiwać 32 i 64-bitowy kod, wprowadzamy nowe typy danych. Więcej informacji na ten temat możesz uzyskać tutaj.

Kompilowanie aplikacji 32 i 64-bitowych

Co musisz wiedzieć, aby obsługiwać aplikacje 32 i 64-bitowe.

Praca z typami natywnymi w aplikacjach międzyplatformowych

W tym artykule opisano używanie nowych typów natywnych interfejsów API ujednoliconego systemu iOS (nint, ), nfloatw aplikacji międzyplatformowej, w której kod jest udostępniany urządzeniom z systemem innym niż iOS, nuinttakim jak systemy operacyjne Android lub Windows Telefon. Zapewnia wgląd w to, kiedy należy używać typów natywnych i udostępnia kilka możliwych rozwiązań, w których nowy typ musi być używany z kodem międzyplatformowym.

Stos HttpClient i selektor implementacji protokołów SSL/TLS

Nowy selektor stosu HttpClient steruje implementacją klienta HttpClient do użycia w aplikacjach Xamarin.iOS, Xamarin.tvOS i Xamarin.Mac. Teraz możesz przełączyć się na implementację korzystającą z natywnych transportów systemu iOS, tvOS lub OS X (NSUrlSession lub CFNetwork w zależności od systemu operacyjnego).

Protokół SSL (Secure Socket Layer) i jego następca, TLS (Transport Layer Security), zapewniają obsługę protokołu HTTP i innych połączeń sieciowych za pośrednictwem usługi System.Net.Security.SslStream. Nowa opcja kompilacji implementacji protokołu SSL/TLS przełącza się między własnym stosem TLS mono i jednym obsługiwanym przez stos TLS firmy Apple obecny w systemach Mac i iOS.