Setelah memutakhirkan ke Xcode 11.2 dari Xcode 11.1 aplikasi saya mogok:
*** Mengakhiri aplikasi karena pengecualian 'NSInvalidUnarchiveOperationException' tanpa alasan, alasan: 'Tidak dapat membuat instance kelas bernama _UITextLayoutView karena tidak ada kelas bernama _UITextLayoutView yang ditemukan; kelas perlu didefinisikan dalam kode sumber atau dihubungkan dari perpustakaan (memastikan kelas adalah bagian dari target yang benar) '
Mengapa ini terjadi? Bagaimana saya bisa mencegah kecelakaan ini?
Jawaban:
Selamat
Versi baru Xcode (11.2.1) tersedia sekarang yang merupakan cara terbaik untuk menghilangkan masalah ini.
Penanganan masalah
@Mojtaba Hosseini solusi yang saya usulkan adalah dari bantuan dan partisipasi dari pihak saya kepada sesama pengembang di atas StackOverflow. Anda, saya dan semua pengembang di sini sudah tahu bahwa ketika versi baru diumumkan oleh Apple, masalah ini akan hilang.
Tapi Di Samping Segalanya
Solusi yang disebutkan di atas sudah pasti diterima oleh Apple Review karena tidak ada API pribadi yang terlibat sama sekali. Pendekatan ini sangat mirip dengan pembuatan properti seperti
Atau
Jadi ketika Anda membuat properti, Anda langsung menggunakan Komponen Pribadi APPLE dan memodulasi ulang mereka sesuai kebutuhan atau kebutuhan Anda.
Contoh Sederhana adalah kelas AMFNetworking
Semoga saya selesai dengan Tuduhan
Jawaban di bawah ini hanya bantuan dari pihak saya untuk memungkinkan pengembang untuk terus berkembang seperti Anda awalnya kami mengusulkan pengembang untuk memutar kembali Xcode. Ini adalah praktik yang buruk untuk mengunduh 8 GB Xcode lagi karena kita semua tahu bahwa versi baru Xcode akan segera dirilis.
Sementara itu diperbaiki di Xcode 11.2.1, saya punya satu solusi untuk Xcode 11.2 dimana Anda dapat menyingkirkan crash ini:
LARUTAN
Buka pencarian Pengaturan Bangun untuk "DEAD_CODE_STRIPPING" dan atur ke NO
Kemudian
UITextViewWorkaround.h
UITextViewWorkaround.m
Kompilasi kode dan Anda akan memiliki aplikasi yang sedang berjalan :)
sumber
Pembaruan: Diperbaiki! 🎉🎊
Solusi HANYA untuk memperbarui
Ini bug yang diperbaiki dalam Xcode 11.2.1. Jadi Anda dapat mengunduh dan menggunakannya dari sini.
Xcode 11.2 sudah tidak digunakan lagi oleh Apple pada 5 November 2019
jika Anda pernah mencoba mengirimkan aplikasi yang dibuat dengan Xcode 11.2 ke AppStore, Anda akan ditolak:
Peringatan Pengoperasian App Store Connect
Jadi semua solusi yang dilakukan dengan Xcode 11.2 adalah berguna
Ini adalah bug untuk Xcode 11.2, dan diperbaiki di Xcode 11.2.1.
Solusi)
Kembalikan ke versi rilis Xcode sebelumnya dari:Rollback bukan lagi pilihan dan AppStore akan menolak build apa pun dengan Xcode di bawah 11.2.1 lihat iniPerhatikan bahwa Anda harus menggunakan Safari untuk mengunduhnya dan Anda harus terlebih dahulu masuk ke portal pengembang Apple .
Anda dapat menemukan semua versi Xcode lainnya dan tautan sumber daya lain (termasuk versi rilis dan beta) di sini di https://developer.apple.com/download/morePenanganannya
Ini sangat sulit tetapi solusinya berhasil. Ganti semua
UITextView
dalam storyboard dan Xib dengan versi kode murni .Perhatikan bahwa ini bug ditemukan dan tetap oleh Apple
Juga sebelumnya, bug itu dikonfirmasi oleh Staf Apple edford
Bagi mereka yang menggunakan iOS 13.2 dan tidak dapat menggunakan Xcode 11.1 lagi:
Bagi mereka yang memiliki storyboard:
UITextView
UITextView
objekBagi mereka yang nyaman dengan metode swizzling (Objc dan perilaku dinamis)
Kepala ke @aftab muhammed khan jawaban untuk Objective-C dan @MikRo jawaban untuk Swift disesuaikan versiJangan lakukan itu lagi:
Bahkan jika dua solusi penyelesaian terakhir ini tidak menggunakan Apple private API , mereka akan ditolak di AppStore karena Apple tidak akan menerima build dengan versi Xcode di bawah 11.2.1 !
Dan sekali lagi:
Xcode 11.2 sudah tidak digunakan lagi oleh Apple pada 5 November 2019
sumber
CMD + Shift + K
)Masalah ini diperbaiki pada Xcode 11.2.1.
EDIT: Saat perbaikan sekarang dirilis, Anda harus beralih ke versi Xcode dan mengomentari pemecahan masalah ini. Seperti Mojtaba Hosseini dalam jawabannya menyebutkan:
Untuk saat sampai perbaikan dirilis oleh Apple, ini merupakan solusi yang baik untuk terus mengembangkan dan menguji.
Untuk Xcode 11.2, berdasarkan ide Aftab Muhammed Khan dan dengan bantuan John Nimis saya baru saja menguji kode berikut.
Diperlukan tidak ada perubahan pada file storyboard!
Mengedit file AppDelegate.swift saya dan menambahkan kelas ini
dan dalam panggilan delegasi untuk "didFinishLaunchingWithOptions" panggil solusinya
sumber
Saya telah mengadaptasi solusi Obj-C khan untuk Swift :
Sebut saja di akhir
didFinishLaunchingWithOptions
inAppDelegate
.Terima kasih @ftab!
sumber
didFinishLaunchingWithOptions
Perbaikan yang lebih cepat:
Tambahkan kode ini di suatu tempat lalu ganti semua instance storyboard
FixedTextView
.Catatan: Anda akan kehilangan atribut apa pun yang dibuat di storyboard. Ini bisa memiliki implikasi serius (mis. Pengaturan delegasi, ukuran, dll.)
sumber
Solusi Terbaru : Pembaruan ke Xcode 11.2.1 . Ini berfungsi pada perangkat iOS 11, 12 atau 13 untuk saya.
Lihat dokumentasi apple Pembaruan ini memperbaiki masalah kritis yang dapat menyebabkan aplikasi menggunakan UITextView mogok.
Solusi Lama: Mengunduh Xcode 11.1 dari https://developer.apple.com/download/more/ Beralih kembali dari 11.2 ke 11.1 memperbaiki kerusakan.
Juga, bagi saya bahkan dengan Xcode 11.2, ketika saya memutakhirkan iPhone saya menjadi 13.2, itu memperbaiki kerusakan.
sumber
11.2.1 Benih GM mengatasi masalah ini
(dan dapat digunakan untuk menerbitkan ke App Store)
Buka https://developer.apple.com/download/ . Unduh Xcode 11.2.1 Benih GM
Catatan rilis mengkonfirmasi perbaikan kesalahan ini:
sumber
Anda dapat mengunduh unduhan Xcode beta terakhir (11.2.1 GM) dari situs web pengembang Apple.
Di sini tautan langsung
sumber
Memperbaiki jawaban @garafajon. Bagi saya itu berfungsi dalam banyak kasus.
sumber
Sebagai perbaikan "cepat" Anda dapat menambahkan
UITextView
langsung dari kode dan bukan melalui IB. Setidaknya itu berhasil untuk saya. Meskipun dari sudut pandang saya, lebih baik untuk mengembalikan ke Xcode sebelumnya / tunggu yang baru.sumber
Ini adalah bug dengan Xcode 11.2. Tampilan Teks Subklas mogok di semua perangkat yang tidak menginstal iOS versi baru (13.2). Anda mungkin lebih baik tidak membuat rilis dengan build itu.
Sekarang kamu bisa:
sumber
Saya menggunakan solusi yang berhasil, tetapi itu menyakitkan. Ini adalah proses yang saya ikuti:
TextView
. Dalam hal ini:id
(dalam kasus saya:id="782-j1-88c"
)Melakukan ini memperbaiki masalah bagi saya tanpa kehilangan fungsi yang diinginkan. Untungnya saya hanya punya satu
UITextView
untuk mengganti. Kalau tidak, ini menjadi tidak bisa dipertahankan.sumber
Saya memiliki masalah yang sama saya hanya memutakhirkan Xcode 11.2 saya menjadi 11.2.1 itu bekerja dengan baik.
Setelah peningkatan, saya telah menguji hal yang sama pada iOs 13 dan iOS 12 dan itu berfungsi dengan baik.
sumber
1. Masalah:
Ada masalah dengan Xcode 11.2 di mana Storyboard yang mengandung UITextView akan menyebabkan aplikasi mogok pada versi OS lebih awal dari iOS 13.2 jika dikompilasi dengan Xcode 11.2.
Periksa dokumentasi apel ini .
2. Solusi:
Satu-satunya solusi adalah memperbarui Xcode Anda ke 11.2.1 atau 11.3.
Xcode 11.2.1 dirilis khusus untuk memperbaiki masalah kerusakan ini.
Periksa dokumentasi apel ini .
3. Saran:
Saya menyarankan Anda untuk menggunakan Xcode 11.3 versi terbaru karena ini mendukung pengembangan aplikasi untuk iOS 13.3 dan juga ada banyak fitur baru. Periksa dokumentasi apel ini .
sumber
Masalah ini diperbaiki dalam Xcode versi 11.2.1, dan dipanggil dalam catatan rilis:
sumber