Bagikan melalui


Memperbarui Aplikasi iOS yang Ada

Ikuti langkah-langkah ini untuk memperbarui aplikasi Xamarin.iOS yang ada untuk menggunakan API Terpadu.

Memperbarui aplikasi yang ada untuk menggunakan API Terpadu memerlukan perubahan pada file proyek itu sendiri serta ke namespace layanan dan API yang digunakan dalam kode aplikasi.

Jalan menuju 64 Bit

API Terpadu baru diperlukan untuk mendukung arsitektur perangkat 64 bit dari aplikasi seluler Xamarin.iOS. Mulai 1 Februari 2015, Apple mengharuskan semua pengiriman aplikasi baru ke iTunes App Store mendukung arsitektur 64 bit.

Xamarin menyediakan alat untuk Visual Studio untuk Mac dan Visual Studio untuk mengotomatiskan proses migrasi dari API Klasik ke API Terpadu atau Anda dapat mengonversi file proyek secara manual. Meskipun penggunaan alat otomatis sangat disarankan, artikel ini akan membahas kedua metode.

Sebelum Anda Mulai...

Sebelum Anda memperbarui kode yang ada ke API Terpadu, sangat disarankan agar Anda menghilangkan semua peringatan kompilasi. Banyak peringatan di API Klasik akan menjadi kesalahan setelah Anda bermigrasi ke Terpadu. Memperbaikinya sebelum Memulai lebih mudah karena pesan pengkompilasi dari API Klasik sering memberikan petunjuk tentang apa yang harus diperbarui.

Pembaruan Otomatis

Setelah peringatan diperbaiki, pilih proyek iOS yang ada di Visual Studio untuk Mac atau Visual Studio dan pilih Migrasi ke Xamarin.iOS Unified API dari menu Proyek . Contohnya:

Choose Migrate to Xamarin.iOS Unified API from the Project menu

Anda harus menyetujui peringatan ini sebelum migrasi otomatis akan berjalan (jelas Anda harus memastikan Anda memiliki kontrol cadangan/sumber sebelum memulai petualangan ini):

Agree to this warning before the automated migration will run

Alat ini pada dasarnya mengotomatiskan semua langkah yang diuraikan di bagian Perbarui Secara Manual yang disajikan di bawah ini dan merupakan metode yang disarankan untuk mengonversi proyek Xamarin.iOS yang ada ke API Terpadu.

Langkah-langkah untuk Memperbarui Secara Manual

Sekali lagi, setelah peringatan diperbaiki, ikuti langkah-langkah ini untuk memperbarui aplikasi Xamarin.iOS secara manual untuk menggunakan API Terpadu baru:

1. Perbarui Jenis Proyek & Target Build

Ubah rasa proyek dalam file csproj Anda dari 6BC8ED88-2882-458C-8E55-DFD12B67127B ke FEACFBD2-3405-455C-9665-78FE426C6842. Edit file csproj di editor teks, menggantikan item pertama dalam elemen seperti yang <ProjectTypeGuids> ditunjukkan:

Edit the csproj file in a text editor, replacing the first item in the ProjectTypeGuids element as shown

Ubah elemen Impor yang berisi Xamarin.MonoTouch.CSharp.targets ke Xamarin.iOS.CSharp.targets seperti yang ditunjukkan:

Change the Import element that contains Xamarin.MonoTouch.CSharp.targets to Xamarin.iOS.CSharp.targets as shown

2. Perbarui Referensi Proyek

Perluas node Referensi proyek aplikasi iOS. Ini awalnya akan menunjukkan referensi *rusak- monotouch yang mirip dengan cuplikan layar ini (karena kami baru saja mengubah jenis proyek):

It will initially show a broken- monotouch reference similar to this screenshot because the project type changed

Klik kanan pada proyek aplikasi iOS untuk Mengedit Referensi, lalu klik referensi monotouch dan hapus menggunakan tombol "X" merah.

Right-click on the iOS application project to Edit References, then click on the monotouch reference and delete it using the red X button

Sekarang gulir ke akhir daftar referensi dan centang rakitan Xamarin.iOS .

Now scroll to the end of the references list and tick the Xamarin.iOS assembly

Tekan OK untuk menyimpan perubahan referensi proyek.

3. Hapus MonoTouch dari Namespace

Hapus awalan MonoTouch dari namespace dalam using pernyataan atau di mana pun nama kelas telah sepenuhnya memenuhi syarat (misalnya. MonoTouch.UIKit menjadi hanya UIKit).

4. Jenis Remap

Jenis asli telah diperkenalkan yang menggantikan beberapa Jenis yang sebelumnya digunakan, seperti instans System.Drawing.RectangleF dengan CoreGraphics.CGRect (misalnya). Daftar lengkap jenis dapat ditemukan di halaman jenis asli.

5. Perbaiki Penimpaan Metode

Beberapa UIKit metode telah mengubah tanda tangan mereka untuk menggunakan jenis asli baru (seperti nint). Jika subkelas kustom mengambil alih metode ini, tanda tangan tidak akan lagi cocok dan akan mengakibatkan kesalahan. Perbaiki metode ini mengambil alih dengan mengubah subkelas agar sesuai dengan tanda tangan baru menggunakan jenis asli.

Contohnya termasuk mengubah public override int NumberOfSections (UITableView tableView) untuk mengembalikan nint dan mengubah jenis pengembalian dan jenis parameter ke public override int RowsInSection (UITableView tableView, int section)nint.

Pertimbangan

Pertimbangan berikut harus diperhitungkan saat mengonversi proyek Xamarin.iOS yang ada dari API Klasik ke API Terpadu baru jika aplikasi tersebut bergantung pada satu atau beberapa Paket Komponen atau NuGet.

Komponen

Komponen apa pun yang telah Anda sertakan dalam aplikasi Anda juga perlu diperbarui ke API Terpadu atau Anda akan mendapatkan konflik saat mencoba mengkompilasi. Untuk komponen apa pun yang disertakan, ganti versi saat ini dengan versi baru dari Xamarin Component Store yang mendukung API Terpadu dan lakukan build bersih. Komponen apa pun yang belum dikonversi oleh penulis, akan menampilkan peringatan 32 bit saja di penyimpanan komponen.

Dukungan NuGet

Meskipun kami berkontribusi pada perubahan pada NuGet untuk bekerja dengan dukungan API Terpadu, belum ada rilis baru NuGet, jadi kami mengevaluasi cara mendapatkan NuGet untuk mengenali API baru.

Sampai saat itu, sama seperti komponen, Anda harus mengalihkan Paket NuGet apa pun yang telah Anda sertakan dalam proyek Anda ke versi yang mendukung API Terpadu dan melakukan build bersih setelahnya.

Penting

Jika Anda memiliki kesalahan dalam formulir "Kesalahan 3 Tidak dapat menyertakan 'monotouch.dll' dan 'Xamarin.iOS.dll' dalam proyek Xamarin.iOS yang sama - 'Xamarin.iOS.dll' dirujuk secara eksplisit, sementara 'monotouch.dll' dirujuk oleh 'xxx, Version=0.0.000, Culture=netral, PublicKeyToken=null'" setelah mengonversi aplikasi Anda ke API Terpadu, biasanya karena memiliki komponen atau Paket NuGet dalam proyek yang belum diperbarui ke API Terpadu. Anda harus menghapus komponen/NuGet yang ada, memperbarui ke versi yang mendukung API Terpadu dan melakukan build bersih.

Mengaktifkan Build Aplikasi Xamarin.iOS 64 Bit

Untuk aplikasi seluler Xamarin.iOS yang telah dikonversi ke API Terpadu, pengembang masih perlu mengaktifkan pembuatan aplikasi untuk komputer 64 bit dari Opsi aplikasi. Silakan lihat dokumen Mengaktifkan Build 64 Bit dari Aplikasi Xamarin.iOS dari Pertimbangan Platform 32/64 bit untuk instruksi terperinci tentang mengaktifkan build 64 bit.

Selesai

Apakah Anda memilih untuk menggunakan metode otomatis atau manual untuk mengonversi aplikasi Xamarin.iOS Anda dari API Klasik ke Terpadu, ada beberapa instans yang akan memerlukan intervensi manual lebih lanjut. Silakan lihat Tips kami untuk Memperbarui Kode ke dokumen API Terpadu untuk masalah yang diketahui dan mengatasinya.