Bagikan melalui


Mengkompilasi untuk perangkat yang berbeda di Xamarin.iOS

Properti build dari executable Anda dapat dikonfigurasi dari halaman properti Build iOS Project, yang ditemukan dengan mengklik kanan nama Proyek dan menjelajah ke Opsi > Build iOS di Visual Studio untuk Mac, dan Properti di Visual Studio:

Selain opsi konfigurasi yang tersedia di UI, Anda juga dapat meneruskan serangkaian opsi baris perintah Anda sendiri ke alat build Xamarin.iOS (mtouch).

Opsi SDK

Visual Studio untuk Mac memungkinkan Anda mengonfigurasi dua properti penting yang terkait dengan SDK: versi iOS SDK yang digunakan untuk membangun perangkat lunak Anda dan Target Penyebaran (atau versi iOS minimum yang diperlukan).

Opsi versi iOS SDK memungkinkan Anda menggunakan berbagai versi SDK yang diterbitkan Apple, ini mengarahkan Xamarin.iOS ke kompilator, linker, dan pustaka yang harus direferensikannya selama build Anda. Klik kanan pada proyek dan pilih Opsi, lalu Build iOS di jendela opsi:

Choose the SDK version on the options window

Pengaturan Target Penyebaran digunakan untuk memilih versi minimum yang diperlukan dari sistem operasi tempat aplikasi Anda akan berjalan. Ini diatur dalam file Info.plist proyek Anda. Anda harus memilih versi minimum yang memiliki semua API yang Anda butuhkan untuk menjalankan aplikasi Anda.

Set the deployment target in the Info.plist file

Secara umum, API Xamarin.iOS mengekspos semua metode yang tersedia dalam versi terbaru SDK, dan jika perlu, kami menyediakan properti kenyamanan yang memungkinkan Anda mendeteksi apakah fungsionalitas tersedia pada runtime (misalnya, UIDevice.UserInterfaceIdiom dan UIDevice.IsMultitaskingSupported selalu berfungsi di Xamarin.iOS, kami melakukan semua pekerjaan di belakang layar).

Menghubungkan

Lihat halaman khusus kami di Linker untuk mempelajari selengkapnya tentang bagaimana linker membantu Anda mengurangi ukuran executable Anda dan untuk mengetahui cara menggunakannya secara efektif.

Mesin pembuatan kode

Dimulai dengan Xamarin.iOS 4.0, ada dua backend pembuatan kode ke Xamarin.iOS. Mesin pembuatan kode Mono reguler dan satu berdasarkan LLVM Optimizing Compiler. Setiap mesin memiliki pro dan kontra.

Biasanya, selama proses pengembangan, Anda kemungkinan akan menggunakan mesin pembuatan kode Mono karena akan memungkinkan Anda melakukan iterasi dengan cepat. Untuk build rilis dan penyebaran AppStore, Anda ingin beralih ke mesin pembuatan kode LLVM.

LLVM mengoptimalkan mesin backend menghasilkan kode yang lebih cepat dan lebih ketat daripada yang dilakukan mesin Mono, dengan biaya waktu kompilasi yang lama.

Anda dapat mengaktifkannya dari opsi Build iOS di Visual Studio untuk Mac atau Visual Studio.

Enabling L L V M in Visual Studio for Mac.

Enabling L L V M in Visual Studio.

Dukungan arsitektur

ARMv6 (Xamarin.iOS menghentikan dukungan untuk ARMv6 dengan v8.10)

  • i Telepon (asli), 3G
  • iPod 1, generasi ke-2

ARMv7

  • i Telepon 3GS, 4, 4S
  • iPad 1, 2, 3, Mini
  • iPod 3, 4, generasi ke-5

ARMv7s

  • iPhone 5
  • i Telepon 5c
  • iPad 4

Jika Anda hanya menargetkan prosesor ARMv7s, kode yang dihasilkan akan sedikit lebih cepat, tetapi tidak akan lagi berjalan pada sistem ARMv7 atau ARMv6 kecuali Anda mengompilasi biner lemak yang berisi beberapa executable dalam paket Anda.

ARM64 (Xamarin.iOS mulai mendukung ARM64 di v8.6)

  • iPhone 5s
  • iPhone SE
  • i Telepon 6, 6 Plus
  • i Telepon 6s, 6s Plus
  • i Telepon 7, 7 Plus
  • i Telepon 8, 8 Plus
  • i Telepon X
  • iPad Air
  • iPad Air 2
  • iPad Mini 2, 3, 4
  • iPad Pro (semua)

Perhatikan bahwa setiap build yang dikirimkan ke App Store harus berisi dukungan 64 bit, ini adalah persyaratan yang ditetapkan oleh Apple. Selain itu, iOS 11 hanya mendukung aplikasi 64-bit.

Dukungan ARM Thumb-2

Thumb adalah set instruksi yang lebih ringkas yang digunakan oleh prosesor ARM. Dengan mengaktifkan dukungan Thumb, Anda dapat mengurangi ukuran yang dapat dieksekusi, dengan mengorbankan waktu eksekusi yang lebih lambat. Thumb didukung pada ARMv7 dan ARMv7s.

Penggunaan kerangka kerja bersyarah

Jika proyek Anda ingin memanfaatkan beberapa fitur dalam rilis iOS yang lebih baru, Anda mungkin perlu mengandalkan kerangka kerja baru tertentu secara kondisional. Contoh utamanya adalah ingin menggunakan iAd saat berjalan di iOS 4.0 atau yang lebih tinggi, tetapi masih mendukung perangkat 3.x. Untuk mencapai hal ini, Anda perlu memberi tahu Xamarin.iOS bahwa Anda perlu menautkan terhadap kerangka kerja iAd "lemah". Pengikatan yang lemah memastikan bahwa kerangka kerja hanya dimuat sesuai permintaan saat pertama kali kelas dari kerangka kerja diperlukan.

Untuk melakukan ini, Anda harus mengambil langkah-langkah berikut:

  • Buka Opsi Proyek Anda dan navigasikan ke panel Build iOS.
  • Tambahkan '-gcc_flags "-weak_framework iAd"' ke Opsi Tambahan untuk setiap konfigurasi yang ingin Anda tautkan dengan lemah pada:

Additional Options

Selain itu, Anda harus menjaga penggunaan jenis agar tidak berjalan pada versi iOS yang lebih lama di mana jenis tersebut mungkin tidak ada. Ada beberapa metode untuk mencapai ini, tetapi salah satunya adalah mengurai UIDevice.CurrentDevice.SystemVersion.