iOS Swift kitaplıklarını bağlama

Önemli

Şu anda Xamarin platformunda özel bağlama kullanımını inceliyoruz. Gelecekteki geliştirme çalışmalarını bilgilendirmek için lütfen bu ankete göz at.

iOS platformu, yerel dilleri ve araç özellikleriyle birlikte sürekli gelişmektedir ve en son teklifler kullanılarak geliştirilmiş birçok üçüncü taraf kitaplık vardır. Kod ve bileşenin yeniden kullanımını en üst düzeye çıkarmak, platformlar arası geliştirmenin temel hedeflerinden biri. Swift ile yerleşik bileşenleri yeniden kullanma olanağı, geliştiriciler arasındaki popülerliği artmaya devam ettikçe Xamarin geliştiricileri için giderek daha önemli hale geldi. Normal kitaplıkları bağlama işlemini zaten biliyor Objective-C olabilirsiniz. Swift Çerçevesini Bağlama işlemini açıklayan ek belgeler artık kullanılabilir,bu nedenle bir Xamarin uygulaması tarafından aynı şekilde kullanılabilir. Bu belgenin amacı, Xamarin için Swift Bağlaması oluşturmak için üst düzey bir yaklaşımı açıklamaktır.

Üst düzey yaklaşım

Xamarin ile herhangi bir üçüncü taraf yerel kitaplığı bir Xamarin uygulaması tarafından kullanılabilir olacak şekilde bekleyebilirsiniz. Swift yeni dildir ve bu dille yerleşik kitaplıklar için bağlama oluşturmak için bazı ek adımlar ve araç gerekir. Bu yaklaşım aşağıdaki dört adımı içerir:

  1. Yerel kitaplığı oluşturma
  2. Xamarin araçlarında C# sınıfları oluşturmalarını sağlayan Xamarin meta verilerini hazırlama
  3. Yerel kitaplığı ve meta verileri kullanarak Xamarin bağlama kitaplığı oluşturma
  4. Xamarin bağlama kitaplığını bir Xamarin uygulamasında tüketme

Aşağıdaki bölümlerde bu adımlar ayrıntılı olarak açıklanmaktadır.

Yerel kitaplığı oluşturma

İlk adım, üst bilgi oluşturularak hazır bir yerel Swift Objective-C Framework'e sahip olmaktır. Bu dosya, istenen Swift sınıflarını, yöntemlerini ve alanlarını bir Xamarin bağlama kitaplığı aracılığıyla hem hem de sonunda C# tarafından erişilebilir hale yapan otomatik olarak yenilenmiş bir Objective-C üst bilgidir. Bu dosya, çerçeve içinde şu yol altında bulunur: FrameworkName > .framework/Headers/ < FrameworkName > -Swift.h. Açık arabirim tüm gerekli üyelere sahipse, sonraki adıma atlayabilirsiniz. Aksi takdirde, bu üyelerin açığa çıkarılması için daha fazla adım gerekir. Yaklaşım, Swift çerçevesi kaynak koduna erişiminizin olup olmadığını bağlıdır:

  • Koda erişiminiz varsa gerekli Swift üyelerini özniteliğiyle dekore edin ve Xcode derleme araçlarına bu üyelerin dünyaya ve üst bilgiye açık olması gerektiğini haber vermeleri için birkaç ek kural @objcObjective-C uygulayabilirsiniz.
  • Kaynak kodu erişiminiz yoksa, özgün Swift çerçevesini sarmalar ve özniteliğini kullanarak uygulamanıza gereken genel arabirimi tanımlayan bir ara sunucu Swift çerçevesi oluşturmanız @objc gerekir.

Xamarin meta verilerini hazırlama

İkinci adım, C# sınıfları oluşturmak için bağlama projesi tarafından kullanılan API tanımı arabirimlerini hazırlamaktır. Bu tanımlar Objective Sharpie aracı ve daha önce otomatik olarak oluşturulan FrameworkName -Swift.h üst bilgi dosyası tarafından el ile veya otomatik olarak oluşturulabilir. Meta veriler oluşturulurken doğrulanması ve el ile doğrulanması gerekir.

Xamarin.iOS bağlama kitaplığını oluşturma

Üçüncü adım özel bir proje oluşturmaktır: Xamarin.iOS bağlama kitaplığı. Önceki adımda hazırlanan çerçevelere ve meta verilere ve ilgili çerçevenin bağımlı olduğu ek bağımlılıklara başvurur. Ayrıca, başvurulan yerel çerçevelerin tüketen Xamarin.iOS uygulamasıyla bağlantısını da ele alır.

Xamarin bağlama kitaplığını tüketme

Dördüncü ve son adım, Xamarin.iOS uygulamasında bağlama kitaplığına başvuru yapmaktır. iOS 12.2 ve üzerini hedef alan Xamarin.iOS uygulamalarında yerel kitaplığın kullanımını etkinleştirmek yeterlidir. Daha düşük bir sürümü hedef alan uygulamalar için bazı ek adımlar gereklidir:

  • Çalışma zamanı desteği için Swift dylib bağımlılıkları ekleyin. iOS 12.2 ve Swift 5.1'den başlayarak dil ABI (uygulama ikili arabirimi) kararlı ve uyumlu hale geldi. Bu nedenle daha düşük bir iOS sürümünü hedef alan tüm uygulamanın çerçeve tarafından kullanılan Swift dylibs bağımlılıklarını içermesi gerekir. SwiftRuntimeSupport NuGet paketini kullanarak gerekli dylib bağımlılıklarını sonuçta elde edilen uygulama paketine otomatik olarak dahil et.
  • Karşıya yükleme işlemi sırasında AppStore tarafından doğrulanmış imzalı dylibs içeren SwiftSupport klasörünü ekleyin. Paketin Xcode araçları kullanılarak AppStore bağlantısına imzalandırılmalı ve dağıtılmalı, aksi takdirde paket otomatik olarak reddedilir.

Kılavuz

Yukarıdaki yaklaşım, Xamarin için Swift Bağlaması oluşturmak için gereken üst düzey adımları özetler. Yerel araçlar ve dillerdeki değişikliklere uyum sağlama da dahil olmak üzere, bu bağlamaları uygulamada hazırlarken göz önünde bulundurılacak çok sayıda alt düzey adım ve daha ayrıntılı bilgi vardır. Amaç, bu kavramı ve bu süreçteki üst düzey adımları daha iyi anlamanıza yardımcı olmaktır. Ayrıntılı adım adım kılavuz için Xamarin Swift Bağlama Kılavuzu belgelerine bakın.