Mevcut iOS Uygulamalarını Güncelleştirme
Var olan bir Xamarin.iOS uygulamasını Birleşik API'yi kullanacak şekilde güncelleştirmek için bu adımları izleyin.
Mevcut bir uygulamanın Birleşik API'yi kullanacak şekilde güncelleştirilmesi, proje dosyasının kendisinde ve uygulama kodunda kullanılan ad alanları ve API'lerde değişiklik yapılmasını gerektirir.
64 Bit'e Giden Yol
Yeni Birleşik API'ler, Xamarin.iOS mobil uygulamasından 64 bit cihaz mimarilerini desteklemek için gereklidir. 1 Şubat 2015 itibarıyla Apple, iTunes App Store'a yapılan tüm yeni uygulama gönderimlerinin 64 bit mimarileri desteklemesini gerektirir.
Xamarin, Klasik API'den Birleşik API'ye geçiş işlemini otomatikleştirmek için hem Mac için Visual Studio hem de Visual Studio için araçlar sağlar veya proje dosyalarını el ile dönüştürebilirsiniz. Otomatik araçların kullanılması yüksek oranda önerilir ancak bu makalede her iki yöntem de ele alınacaktır.
Başlamadan Önce...
Mevcut kodunuzu Birleşik API'ye güncelleştirmeden önce, tüm derleme uyarılarını ortadan kaldırmanız kesinlikle önerilir. Birleşik'e geçiş yaptıktan sonra Klasik API'deki birçok uyarı hataya dönüşür. Klasik API'den gelen derleyici iletileri genellikle nelerin güncelleştirildiği hakkında ipuçları sağladığından, bunları başlamadan önce düzeltmek daha kolaydır.
Otomatik Güncelleştirme
Uyarılar düzeltildikten sonra, Mac için Visual Studio veya Visual Studio'da mevcut bir iOS projesini seçin ve Proje menüsünden Xamarin.iOS Birleşik API'ye Geçir'i seçin. Örneğin:
Otomatik geçiş çalışmadan önce bu uyarıyı kabul etmeniz gerekir (açıkçası bu maceraya başlamadan önce yedeklemelere/kaynak denetimine sahip olduğunuzdan emin olmalısınız):
Araç temelde aşağıda sunulan El ile Güncelleştir bölümünde açıklanan tüm adımları otomatikleştirir ve mevcut bir Xamarin.iOS projesini Birleşik API'ye dönüştürmenin önerilen yöntemidir.
El ile Güncelleştirme Adımları
Uyarılar düzeltildikten sonra Xamarin.iOS uygulamalarını yeni Birleştirilmiş API'yi kullanacak şekilde el ile güncelleştirmek için aşağıdaki adımları izleyin:
1. Proje Türünü ve Derleme Hedeflerini Güncelleştir
csproj dosyalarınızdaki proje aromasını olarak 6BC8ED88-2882-458C-8E55-DFD12B67127B
FEACFBD2-3405-455C-9665-78FE426C6842
değiştirin. Csproj dosyasını bir metin düzenleyicisinde düzenleyerek öğesindeki <ProjectTypeGuids>
ilk öğeyi gösterildiği gibi değiştirin:
İçeri Xamarin.MonoTouch.CSharp.targets
Xamarin.iOS.CSharp.targets
aktar öğesini gösterildiği gibi olarak değiştirin:
2. Proje Başvurularını Güncelleştirme
iOS uygulama projesinin Başvurular düğümünü genişletin. Başlangıçta bu ekran görüntüsüne benzer bir *bozuk- monotouch başvurusu gösterecektir (çünkü proje türünü yeni değiştirdik):
Başvuruları Düzenle'ye iOS uygulama projesine sağ tıklayın, ardından monotouch başvurusuna tıklayın ve kırmızı "X" düğmesini kullanarak silin.
Şimdi başvuru listesinin sonuna kaydırın ve Xamarin.iOS derlemesini işaretleyin.
Proje başvurularını kaydetmek için Tamam'a basın.
3. MonoTouch'ı Ad Alanından Kaldırma
Deyimlerdeki veya bir sınıf adının tam olarak nitelendiği using
her yerde ad alanından MonoTouch ön ekini kaldırın (örneğin, MonoTouch.UIKit
yalnızca UIKit
olur).
4. Türleri Yeniden Eşleme
Daha önce kullanılan bazı Türlerin (örneğin, ile örnekleri) System.Drawing.RectangleF
CoreGraphics.CGRect
yerini alan yerel türler kullanıma sunulmuştur. Türlerin tam listesi yerel türler sayfasında bulunabilir.
5. Yöntem Geçersiz Kılmalarını Düzeltme
Bazı UIKit
yöntemlerin imzaları yeni yerel türleri kullanacak şekilde değiştirilmiştir (örneğin nint
). Özel alt sınıflar bu yöntemleri geçersiz kılarsa, imzalar artık eşleşmez ve hatalara neden olur. Yerel türleri kullanarak alt sınıfı yeni imzayla eşleşecek şekilde değiştirerek bu yöntem geçersiz kılmalarını düzeltin.
Döndürülecek şekilde nint
değiştirme public override int NumberOfSections (UITableView tableView)
ve hem dönüş türünü hem de içindeki parametre türlerini public override int RowsInSection (UITableView tableView, int section)
olarak nint
değiştirme örnekleri verilebilir.
Dikkat edilmesi gereken noktalar
Mevcut bir Xamarin.iOS projesi Klasik API'den yeni Birleşik API'ye dönüştürülürken uygulama bir veya daha fazla Bileşen veya NuGet Paketi kullanıyorsa aşağıdaki noktalar dikkate alınmalıdır.
Bileşenler
Uygulamanıza dahil ettiğiniz tüm bileşenlerin de Birleşik API'ye güncelleştirilmiş olması gerekir, aksi takdirde derlemeye çalıştığınızda bir çakışmayla karşılaşırsınız. Dahil edilen bileşenler için geçerli sürümü, Birleşik API'yi destekleyen Xamarin Bileşen Deposu'ndan yeni bir sürümle değiştirin ve temiz bir derleme yapın. Henüz yazar tarafından dönüştürülmemiş tüm bileşenler, bileşen deposunda yalnızca 32 bit uyarı görüntüler.
NuGet Desteği
Birleştirilmiş API desteğiyle çalışmak için NuGet'de değişikliklere katkıda bulunmamıza rağmen, NuGet'in yeni bir sürümü olmadığından NuGet'in yeni API'leri tanımasını sağlamayı değerlendiriyoruz.
Bu zamana kadar, bileşenlerde olduğu gibi, projenize eklediğiniz tüm NuGet Paketini Birleşik API'leri destekleyen bir sürüme geçirmeniz ve daha sonra temiz bir derleme yapmanız gerekir.
Önemli
"Hata 3 Aynı Xamarin.iOS projesine hem 'monotouch.dll' hem de 'Xamarin.iOS.dll' eklenemiyor şeklinde bir hatanız varsa , 'Xamarin.iOS.dll' açıkça başvurulur, 'monotouch.dll', uygulamanızı Birleştirilmiş API'lere dönüştürdükten sonra 'xxx, Version=0.0.000, Culture=neutral, PublicKeyToken=null' tarafından başvurulsa da, bunun nedeni genellikle projede Birleştirilmiş API'ye güncelleştirilmemiş bir bileşenin veya NuGet Paketinin bulunmasıdır. Mevcut bileşeni/NuGet'i kaldırmanız, Birleşik API'leri destekleyen bir sürüme güncelleştirmeniz ve temiz bir derleme yapmanız gerekir.
Xamarin.iOS Uygulamalarının 64 Bit Derlemelerini Etkinleştirme
Birleşik API'ye dönüştürülmüş bir Xamarin.iOS mobil uygulaması için geliştiricinin uygulamanın Seçenekler bölümünden 64 bit makineler için uygulamanın oluşturulmasını etkinleştirmesi gerekir. 64 bit derlemeleri etkinleştirme hakkında ayrıntılı yönergeler için lütfen 32/64 bit PlatformDa Dikkat Edilmesi Gerekenler belgesinin Xamarin.iOS Uygulamalarının 64 Bit Derlemelerini Etkinleştirme belgesine bakın.
Bitiriyor
Xamarin.iOS uygulamanızı Klasik'ten Birleşik API'lere dönüştürmek için otomatik veya el ile yöntemini kullanmayı seçseniz de seçmeseniz de, daha fazla el ile müdahale gerektiren birkaç örnek vardır. Bilinen sorunlar ve geçici çözüm için lütfen Kodu Birleşik API'ye Güncelleştirme İpuçları belgemize bakın.