Bagikan melalui


Dapatkah saya menggunakan versi Xcode atau Xamarin.iOS yang lebih lama?

Dokumentasi Xamarin mengasumsikan penggunaan Xamarin.iOS dan Xcode terbaru, yang direkomendasikan. Namun, beberapa pelanggan lebih suka menggunakan Xamarin.iOS dan/atau Xcode yang lebih lama, dan ingin detail tentang konsekuensinya.

Catatan rilis berisi peringatan berikut:

Peringatan

Menggunakan versi Xcode yang lebih lama

Menggunakan versi Xcode yang lebih lama (daripada yang disebutkan dalam persyaratan di atas) sering dimungkinkan, tetapi beberapa fitur mungkin tidak tersedia. Juga beberapa batasan mungkin memerlukan solusi, misalnya:

  • Statis registrar memerlukan file header Xcode untuk membangun aplikasi, yang mengarah ke MT0091 atau MT4109 kesalahan jika API hilang. Dalam kebanyakan kasus, mengaktifkan tautan terkelola akan membantu (dengan menghapus API).
  • Build bitcode (untuk tvOS dan watchOS) dapat gagal pengiriman ke App Store kecuali toolchain Xcode 9.0+ digunakan.

Informasi lebih lanjut

Microsoft sangat merekomendasikan penggunaan Xcode terbaru dan rilis Xamarin.iOS terbaru saat mengembangkan dan mengirimkan aplikasi. Apple memerlukan penggunaan Xcode terbaru saat mengirimkan aplikasi.

Perhatikan bahwa menggunakan Xcode terbaru tidak mencegah aplikasi Anda menargetkan versi iOS yang lebih lama. Versi iOS yang Anda dukung didasarkan pada entri Info.plist dan API yang digunakan aplikasi Anda.

Dimungkinkan untuk menginstal beberapa versi Xcode berdampingan, dengan nama yang berbeda seperti Xcode101.app dan Xcode102.app. Jika Anda menggunakan beberapa versi, pastikan untuk mengatur Xcode aktif di Pengaturan Visual Studio untuk Mac dan dengan xcode-select alat baris perintah.

Namun, keadaan yang jarang terjadi mungkin memerlukan penggunaan komponen yang lebih lama. Dokumentasi ini akan menjelaskan tantangan umum yang mungkin Anda hadapi saat menggunakan versi yang lebih lama dari yang terbaru.

Namun, setiap rilis dari Apple unik, dan Anda mungkin menemukan perangkap lain yang tidak didokumenkan di sini.

Tantangan ini terkadang tidak sepele untuk dipecahkan, jadi jika memungkinkan tetap pada konfigurasi Xcode terbaru yang didukung dan Xamarin.iOS terbaru.

Penggunaan Xamarin.iOS lama dengan Xcode lama

Tidak memperbarui Xamarin.iOS dan Xcode dimungkinkan, setidaknya untuk beberapa waktu. Batasnya adalah bahwa, pada titik tertentu, Apple akan memerlukan versi minimum Xcode untuk mengirimkan aplikasi Anda. Pada titik ini Anda harus memperbarui semua komponen Anda (macOS, Xcode, dan Xamarin.iOS) ke versi terbaru (atau versi Xcode minimal baru yang diperlukan oleh Apple dan rilis Xamarin.iOS yang cocok).

Umumnya lebih mudah untuk memperbarui dan mengikuti perubahan kecil secara bertahap. Untuk proyek besar di mana pembaruan bisa lebih sulit untuk diimbangi, tetap dengan set kerja yang diketahui dapat menjadi kompromi yang baik.

Penggunaan Xamarin.iOS baru dengan Xcode yang lebih lama

Xamarin.iOS secara umum mendukung rilis Xcode yang lebih lama jika memungkinkan secara wajar. Beberapa potensi tantangan meliputi:

  • Xamarin.iOS yang lebih baru dapat mendukung beberapa fitur dan API yang tidak ada di Xcode yang dipilih.
  • Statis registrar memerlukan file header Xcode untuk membangun aplikasi, yang mengarah ke MT0091 atau MT4109 kesalahan jika API hilang.
    • Dalam kebanyakan kasus mengaktifkan linker terkelola akan membantu (dengan menghapus pengikatan terkelola untuk API baru) jika tidak digunakan.
  • Build bitcode (untuk tvOS dan watchOS) dapat gagal pengiriman ke App Store kecuali toolchain Xcode 9.0+ digunakan.

Penggunaan Xcode baru dengan Xamarin.iOS yang lebih lama

Kasus penggunaan ini secara signifikan lebih sulit, karena Xamarin.iOS tidak dapat memprediksi perubahan persyaratan Xcode baru. Pembaruan macOS juga dapat menimbulkan masalah, dan tanpa patch kompatibilitas banyak bagian Xamarin.iOS dapat terpengaruh.

Ada sejumlah area potensial di mana hal-hal dapat salah termasuk:

  • Ketidaksesuaian dengan mlaunch:
    • Dukungan simulator mungkin tidak berfungsi dengan baik (atau sama sekali)
    • Dukungan perangkat mungkin tidak berfungsi dengan baik (atau sama sekali)
  • Dukungan tidak diketahui untuk mtouch
    • Tidak ada dukungan untuk kerangka kerja baru
    • Tidak ada dukungan untuk pemberian izin baru
    • Tidak ada dukungan untuk alat baru atau yang diperbarui
      • Ini juga dapat memengaruhi penandatanganan kode

Aturan pengiriman AppStore baru

Apple berhak memperbarui aturan pengiriman AppStore kapan saja. Perubahan aturan ini hanya terkadang diumumkan terlebih dahulu. Beberapa perubahan ini memerlukan perubahan alat untuk mendukung, yang akan memerlukan komponen Xamarin.iOS yang diperbarui.

Selain perubahan aturan, Apple sering menambahkan validasi tambahan ke app yang dikirimkan atau mengencangkan yang sudah ada. Beberapa di antaranya memerlukan perubahan pada alat kami (misalnya simbol daftar blokir baru). Banyak dari ini pertama kali ditemui oleh pelanggan yang mengirimkan, karena tidak ada pengumuman (atau daftar) aturan.

Ringkasan

Jika memungkinkan, mainkan dengan aman dengan mengikuti panduan Apple dan mengembangkan dan mengirimkan dengan Xcode terbaru yang dirilis di App Store.

Pada gilirannya, gunakan Xamarin.iOS terbaru yang dirilis. Ini akan melacak perbaikan terbaru yang dapat memengaruhi aplikasi yang dikirimkan dan mematuhi perubahan aturan terbaru.

Jika tidak memungkinkan, pertimbangkan untuk menggunakan rilis Xcode dan Xamarin.iOS yang lebih lama yang cocok. Ini dapat bekerja untuk satu waktu, tetapi pada titik tertentu Apple akan bersikeras pada alat yang lebih baru sehingga merencanakan yang sesuai.