La clase PLBuildVersion se implementa en ambos marcos

225

iOS 10 / Xcode 8 GM build obteniendo lo siguiente, nunca lo había tenido antes en Xcode 7. ¿Alguna idea?

objc [25161]: la clase PLBuildVersion se implementa en ambas /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.azuntes de servicios y /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202 Uno de los dos será usado. Cuál no está definido.

(NOTA: solo parece suceder en el simulador, no aparece en el dispositivo real).

FlatDog
fuente
1
¿Está utilizando Fabric u otra biblioteca de Twitter 3rd en su proyecto?
Kevin
3
No estoy usando twitter. ¿Quizás Firebase puede causar esto también?
Itzjak
1
@noellee como Zac Estoy usando tela en mi proyecto y también tengo el mismo error
user1019042
1
@Yitschak, uso Firebase y obtuve esto también.
n3wbie
1
Sí, estoy usando Fabric and Crashlytics (v3.8.2)
FlatDog

Respuestas:

144

Idea principal

La idea principal es simple:

Si su aplicación (o dependencias, como Pods) usa framework, que usa explícito (o implícito) PhotoLibraryServices.frameworko AssetsLibraryServices.frameworkcomo dependencia, Xcode le advierte (incluso si está usando solo uno de ellos). Puede ser Photos/PhotosUI.frameworku AssetsLibrary.framework, u otro (no tengo una lista completa de dependencias, pero es posible).

¿Cuál es el problema?

La clase con nombre PLBuildVersionse define en ambos PhotoLibraryServices.frameworky AssetsLibraryServices.framework. El nombre de la clase es único en Objective-C (no puede definir 2 clases con el mismo nombre), por lo que no está definido cuál se usará en tiempo de ejecución.

Sin embargo, creo que no será un problema, porque ambas clases tienen los mismos métodos y campos (lo comprobé con desensamblador) y supongo que ambos fueron compilados de la misma fuente.

El radar ya está enviado.

Roman Ermolov
fuente
2
El mensaje de advertencia sigue ahí.
Faiz Fareed
99
Descubrí que si uso Webview en un VC, recibo este tipo de mensaje de advertencia en la ventana de depuración cuando se muestra el VC. Yo uso Xcode 8.1, rápida 3.
David.Chu.ca
1
Estoy usando xcode 8.2 y no tengo ningún uso fotolibario en mi proyecto y todavía recibo esta advertencia.
Himanshu Moradiya
1
¿Soy solo yo o la presentación de viewcontroller se vuelve lenta, que se presenta y tiene este mensaje de advertencia?
nr5
2
También recibo esta advertencia cuando configuro .attributedText. No estoy accediendo a la cámara ni a las fotos. Esta advertencia también causa un retraso considerable para que se cargue el controlador de vista, a pesar de que no hay tareas que requieran mucho tiempo (sin acceso a la red, sin E / S de archivos, etc.).
R Moyer
53

Según la respuesta del empleado de Apple en el Foro de desarrolladores de Apple :

Usted no controla ninguna de las fuentes de clase enumeradas, por lo que no hay nada que pueda o deba hacer, aparte de Informar un error.

Raphael Oliveira
fuente
Supongo que es eso.
Fattie
2
Incluso si no es un problema, todavía genera la salida molesta y distractora, esto grita "error" ...
Jakub Truhlář
46

No pude encontrar una manera de deshacerme de la advertencia, pero si desea evitar que la aplicación se bloquee, debe proporcionar una descripción de por qué está accediendo a la cámara, la biblioteca de fotos, etc. Esto es nuevo en iOS10.

Ingrese lo siguiente en su Info.plistarchivo.

Foto

Clave: Privacy - Photo Library Usage Description Valor: $(PRODUCT_NAME) photo use

Cámara

Clave: Privacy - Camera Usage Description Valor: $(PRODUCT_NAME) camera use

Puede encontrar más información aquí: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

Nick Meehan
fuente
33
Los mensajes de advertencia siguen ahí.
Kevin
66
mi aplicación no usa la cámara en absoluto y recibo el mensaje. Aún así, traté de agregar estos para plist como lo sugirió y eso todavía no lo resolvió ..
FlatDog
55
¿Alguien se da cuenta de esto? No estoy usando la biblioteca de fotos ni estoy usando la cámara, sin embargo, todavía recibo la advertencia y el bloqueo
MikeG
2
@MikeG Tampoco estoy usando ninguna de las bibliotecas y sigo teniendo el bloqueo, me deshice de las advertencias agregando los detalles de configuración de clave / cadena al info.plistarchivo. Aparentemente es necesario en iOS 10.x
David Morton
2
Tengo esta advertencia después de configurar textView.attributedText en NSAttributedString
mik.ro
12

Creo que puede obtener este error simplemente usando un UIWebView. Mi solución fue reemplazar mi uso de UIWebView con WKWebView.

mate
fuente
55
Intenté WKWebView pero la advertencia sigue apareciendo
muz the axe
5

Tuve esto después de agregar Respuestas en Fabric a mi proyecto.

Eliminar datos derivados me sirvió. (shift alt comando k en XCode)

Editar un año después:

Después de eliminar los datos derivados, siempre salga de XCode e inícielo nuevamente.

En casos no relacionados, tengo la impresión de que eliminar datos derivados no borra los XCode's en la memoria caché de los datos derivados.

Gerd Castan
fuente
la advertencia sigue ahí PERO la aplicación ya no se bloquea. Estoy usando xcode8.2.1
Dashrath
2

Restablecer el simulador de iOS me solucionó esto. Simulador -> Restablecer contenido y configuración.

Eric Mentele
fuente
Llegué a la misma conclusión y también funcionó para mí.
Franz
0

En mi caso, esta advertencia comenzó a aparecer después de abrir un segundo proyecto xcode y ejecutar la segunda aplicación en el simulador. Después de volver a la primera aplicación, la advertencia comenzó a aparecer. Acabo de salir del Simulador y Xcode y reabrí mi proyecto. La advertencia desapareció después de eso. Si eso no lo resuelve, continúe con las otras respuestas. Xcode puede ser muy exigente a veces.

Alexander Luna
fuente