Kelas PLBuildVersion diimplementasikan dalam kedua kerangka kerja

225

iOS 10 / Xcode 8 GM build mendapatkan yang di bawah ini, belum pernah ada sebelumnya di Xcode 7. Ada ide?

objc [25161]: Kelas PLBuildVersion diimplementasikan di kedua /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworksssetoursserverservices9serveretetethttpwpnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnhahhhhhhhh? dan /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1201) Salah satu dari keduanya akan digunakan. Yang mana yang tidak ditentukan.

(CATATAN: Tampaknya hanya terjadi dalam simulator, tidak muncul pada perangkat nyata).

FlatDog
sumber
1
Apakah Anda menggunakan Fabric atau perpustakaan Twitter ke-3 lainnya di proyek Anda?
Kevin
3
Saya tidak menggunakan twitter. mungkin Firebase dapat menyebabkan ini juga?
Yitzchak
1
@noellee seperti Zac Saya menggunakan kain di proyek saya dan saya juga memiliki kesalahan yang sama
user1019042
1
@Yitschak saya menggunakan firebase dan mendapatkan ini juga.
n3wbie
1
ya, saya menggunakan Fabric dan Crashlytics (v3.8.2)
FlatDog

Jawaban:

144

Ide utama

Gagasan utamanya sederhana:

Jika aplikasi Anda (atau dependensi, seperti Pod) menggunakan framework, yang menggunakan eksplisit (atau implisit) PhotoLibraryServices.frameworkatau AssetsLibraryServices.frameworksebagai dependensi, Xcode memperingatkan Anda (bahkan jika Anda hanya menggunakan salah satunya). Mungkin Photos/PhotosUI.frameworkatau AssetsLibrary.framework, atau yang lain (saya tidak punya daftar dependensi lengkap, tapi itu mungkin).

Apa masalahnya?

Kelas dengan nama PLBuildVersiondidefinisikan dalam keduanya PhotoLibraryServices.frameworkdan AssetsLibraryServices.framework. Nama kelas adalah unik di Objective-C (Anda tidak dapat menentukan 2 kelas dengan nama yang sama), jadi tidak ditentukan yang mana yang akan digunakan dalam runtime.

Namun, saya pikir itu tidak akan menjadi masalah, karena kedua kelas memiliki metode dan bidang yang sama (diperiksa dengan disassembler) dan saya kira keduanya dikompilasi dari sumber yang sama.

Radar sudah terkirim.

Roman Ermolov
sumber
2
pesan peringatan masih ada di sana.
Faiz Fareed
9
Saya menemukan bahwa jika saya menggunakan Webview dalam satu VC, saya mendapatkan pesan peringatan jenis ini di jendela debug ketika VC ditampilkan. Saya menggunakan Xcode 8.1, cepat 3.
David.Chu.ca
1
Saya menggunakan xcode 8.2 dan saya tidak memiliki penggunaan photolibary dalam proyek saya dan saya masih mendapatkan peringatan ini.
Himanshu Moradiya
1
Apakah hanya saya atau presentasi viewcontroller menjadi lambat, yang sedang disajikan dan memiliki pesan peringatan ini ???
nr5
2
Saya juga mendapatkan peringatan ini ketika saya mengatur .attributedText. Saya tidak mengakses kamera atau foto. Peringatan ini juga menyebabkan kelambanan serius bagi Pengontrol Tampilan untuk memuat, meskipun tidak ada tugas intensif waktu yang terlibat (tidak ada akses jaringan, tidak ada file i / o, dll.).
R Moyer
53

Sesuai jawaban dari karyawan Apple di Forum Pengembang Apple :

Anda tidak mengontrol salah satu sumber kelas yang tercantum, jadi tidak ada yang dapat atau harus Anda lakukan - selain dari Melaporkan Bug.

Raphael Oliveira
sumber
Saya kira begitu.
Fattie
2
Bahkan jika itu bukan masalah, masih menghasilkan output yang mengganggu dan mengganggu, ini berteriak "bug" ...
Jakub Truhlář
46

Saya tidak dapat menemukan cara untuk menghilangkan peringatan, tetapi jika Anda ingin mencegah aplikasi mogok, Anda perlu memberikan deskripsi mengapa Anda mengakses kamera, perpustakaan foto, dll. Ini baru di iOS10.

Masukkan yang berikut ke dalam Info.plistfile Anda .

Foto

Kunci: Privacy - Photo Library Usage Description Nilai: $(PRODUCT_NAME) photo use

Kamera

Kunci: Privacy - Camera Usage Description Nilai: $(PRODUCT_NAME) camera use

Info lebih lanjut dapat ditemukan di sini: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

Nick Meehan
sumber
33
Pesan peringatan masih ada di sana.
Kevin
6
aplikasi saya tidak menggunakan kamera sama sekali dan saya menerima pesannya. Namun, saya mencoba menambahkan ini ke plist seperti yang Anda sarankan dan itu masih tidak menyelesaikannya ..
FlatDog
5
Adakah yang tahu ini? Saya tidak menggunakan perpustakaan foto atau saya menggunakan kamera, namun saya masih mendapatkan peringatan dan kerusakan
MikeG
2
@ MikeG Saya juga tidak menggunakan perpustakaan dan masih mendapatkan crash, saya menyingkirkan peringatan dengan menambahkan kunci / detail konfigurasi string ke info.plistfile. Rupanya itu diperlukan di iOS 10.x
David Morton
2
Saya mendapat peringatan ini setelah mengatur textView.attributedText ke NSAttributedString
mik.ro
12

Saya menemukan Anda bisa mendapatkan kesalahan ini hanya dengan menggunakan UIWebView. Solusi saya adalah mengganti penggunaan UIWebView dengan WKWebView.

matt
sumber
5
Saya mencoba WKWebView tetapi peringatan itu masih muncul
muz the ax
5

Saya mendapatkan ini setelah menambahkan Answers on Fabric ke proyek saya.

Menghapus data turunan bermanfaat bagi saya. (menggeser perintah alt k di XCode)

Edit setahun kemudian:

Setelah menghapus data yang diturunkan, selalu keluar dari XCode dan mulai lagi.

Dalam kasus-kasus yang tidak berhubungan saya memiliki kesan bahwa menghapus data yang diturunkan tidak menghapus XCode dalam cache memori dari data yang diturunkan.

Gerd Castan
sumber
peringatan masih ada tapi TAPI aplikasi tidak menabrak lagi. Saya menggunakan xcode8.2.1
Dashrath
2

Mengatur ulang simulator iOS memperbaikinya untuk saya. Simulator -> Reset Konten Dan Pengaturan.

Eric Mentele
sumber
Baru saja sampai pada kesimpulan yang sama dan itu berhasil juga untuk saya.
Franz
0

Dalam kasus saya, peringatan ini mulai muncul setelah membuka proyek xcode kedua dan menjalankan aplikasi kedua pada simulator. Setelah berubah kembali ke aplikasi pertama, peringatan mulai muncul. Saya baru saja keluar dari Simulator dan Xcode dan membuka kembali proyek saya. Peringatan itu hilang setelah itu. Jika itu tidak menyelesaikannya, lanjutkan dengan jawaban lain. Xcode terkadang sangat pemilih.

Alexander Luna
sumber