Después de actualizar a Xcode 7.3, arroja el error Cannot create __weak reference in file using manual reference counting
en los archivos de pod. ¿Alguien ha resuelto este problema?
objective-c
xcode
cocoapods
REALFREE
fuente
fuente
-Wall -Wextra -Wno-unused-parameter
banderas de advertencia habilitadas.Esta es la respuesta oficial de Apple desde el enlace:
Básicamente, si está utilizando Pod para bibliotecas de terceros, debe eliminar __weak en no ARC o esperar la actualización.
Actualización @ 3/23
Debería haber investigado más sobre las banderas que puedo pasar al cumplidor para evitar estas cosas. Pero fundamentalmente no debería utilizarlo
__weak
en modo no ARC a partir de ahora para evitar conflictos inesperados. Para los usuarios de cocoapods, no es necesario que elimine__weak
o espere la actualización, sino que establezca laWeak References in Manual Retain Release
marca en la configuración de compilación en SÍ, como dijo Lean. Espero que esto ayude.fuente
La mejor manera de resolver esto es agregar un
post_install
script a su Podfile que establezca laWeak References in Manual Retain Release
banderayes
en todos sus objetivos de pod. Para hacer eso, simplemente pegue el siguiente código en la parte inferior de su archivoPodfile
.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
A veces, hacer eso da como resultado el error
-fobjc-weak is not supported on the current deployment target
. Puede resolver eso agregando otra opción de configuración, obligando a todos los pods a apuntar a la versión que desea ( según esta respuesta ):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
fuente
Solución alternativa para referencias débiles de Facebook en FBSettings.m
Para Podfile, es posible escribir un script para que se ejecute después de la instalación / actualización del pod, describe lo siguiente allí.
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 cómo encontrar las palabras de la magia que. .
fuente
He encontrado esto.
Supongo que significa eliminar __weak
https://forums.developer.apple.com/thread/38934
fuente
Simplemente vaya a su objetivo en la pestaña "Fases de compilación", busque los archivos de pod en "Compilar fuentes", haga clic en esos archivos y agregue la marca del compilador "-fobjc-arc"
fuente
O cambie
__weak
a__unsafeunretained
. Esto resolverá el problema en la tradición. Dado que MRC (antes de xCode 4 -) __weak no estaba en iOS.fuente