Setelah memperbarui ke Xcode 7.3, itu memunculkan kesalahan Cannot create __weak reference in file using manual reference counting
dalam file pod. Apakah ada yang memecahkan masalah ini?
objective-c
xcode
cocoapods
REALFREE
sumber
sumber
-Wall -Wextra -Wno-unused-parameter
mengaktifkan tanda Peringatan ini .Ini adalah jawaban resmi dari Apple dari tautan:
Jadi pada dasarnya, jika Anda menggunakan Pod untuk library pihak ketiga, Anda harus menghapus __weak di non-ARC atau menunggu update.
Perbarui @ 3/23
Saya harus meneliti lebih banyak tentang bendera yang dapat saya berikan ke pelengkap untuk melewati hal-hal semacam ini. Namun pada dasarnya Anda tidak boleh menggunakan
__weak
mode non-ARC mulai sekarang untuk menghindari konflik yang tidak terduga. Untuk pengguna cocoapods, Anda tidak perlu menghapus__weak
atau menunggu update tetapi mengaturWeak References in Manual Retain Release
flag di pengaturan build ke YES seperti yang dikatakan Lean. Semoga bantuan ini.sumber
Cara terbaik untuk mengatasinya adalah dengan menambahkan
post_install
skrip ke Podfile Anda yang menetapkanWeak References in Manual Retain Release
flag keyes
semua target pod Anda. Untuk melakukan itu cukup tempel kode berikut di bagian bawah filePodfile
.post_install do |installer_representation| installer_representation.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['CLANG_ENABLE_OBJC_WEAK'] ||= 'YES' end end end
Terkadang, melakukan itu menghasilkan kesalahan
-fobjc-weak is not supported on the current deployment target
. Anda dapat mengatasinya dengan menambahkan opsi konfigurasi lain, memaksa semua pod untuk menargetkan versi yang Anda inginkan ( berdasarkan jawaban ini ):post_install do |installer_representation| installer_representation.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['CLANG_ENABLE_OBJC_WEAK'] ||= 'YES' config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.3' end end end
sumber
Solusi untuk referensi lemah Facebook di FBSettings.m
Untuk Podfile, dimungkinkan untuk menulis skrip untuk dijalankan setelah pod install / update, menjelaskan hal berikut di sana.
post_install do | installer | classy_pods_target = installer.pods_project.targets.find {| target | target.name == 'Facebook-iOS-SDK'} classy_pods_target.build_configurations.each do | config | config.build_settings['CLANG_ENABLE_OBJC_WEAK'] ||= 'YES' end end
CLANG_ENABLE_OBJC_WEAK bagaimana menemukan kata-kata ajaib itu. .
sumber
Saya telah menemukan ini.
Saya kira itu berarti menghapus __weak
https://forums.developer.apple.com/thread/38934
sumber
Cukup goto target Anda di tab "Build Phases", cari file pod di "Compile Sources", klik file tersebut dan tambahkan bendera compiler "-fobjc-arc"
sumber
Atau ubah
__weak
menjadi__unsafeunretained
. Ini akan menyelesaikan masalah dalam tradisi. Sejak MRC (sebelum xCode 4 -) __weak tidak ada di iOS.sumber