Die Klasse PLBuildVersion ist in beiden Frameworks implementiert

225

iOS 10 / Xcode 8 GM Build hat das Folgende bekommen, hatte es noch nie zuvor auf Xcode 7. Irgendwelche Ideen?

objc [25161]: Die Klasse PLBuildVersion ist in beiden /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworkS/Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.10Set.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Servs.Serv. und /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices42. Einer der beiden wird verwendet. Welches ist undefiniert.

(HINWEIS: Scheint nur im Simulator zu passieren, erscheint nicht auf dem realen Gerät).

FlatDog
quelle
1
Verwenden Sie Fabric oder eine andere Twitter 3rd-Bibliothek in Ihrem Projekt?
Kevin
3
Ich benutze kein Twitter. Vielleicht kann Firebase dies auch verursachen?
Yitzchak
1
@noellee wie Zac Ich verwende Stoff in meinem Projekt und ich habe auch den gleichen Fehler
user1019042
1
@ Yitschak Ich benutze Firebase und habe das auch.
n3wbie
1
Ja, ich benutze Fabric und Crashlytics (v3.8.2)
FlatDog

Antworten:

144

Hauptidee

Hauptidee ist einfach:

Wenn Ihre App (oder Abhängigkeiten wie Pods) ein Framework verwendet, das explizit (oder implizit) PhotoLibraryServices.frameworkoder AssetsLibraryServices.frameworkals Abhängigkeit verwendet, warnt Sie Xcode (auch wenn Sie nur eines davon verwenden). Es könnte Photos/PhotosUI.frameworkoder AssetsLibrary.frameworkoder eine andere sein (ich habe keine vollständige Liste der Abhängigkeiten, aber es ist möglich).

Was ist das Problem?

Klasse mit Namen PLBuildVersionist in PhotoLibraryServices.frameworkund definiert AssetsLibraryServices.framework. Der Klassenname ist in Objective-C eindeutig (Sie können nicht zwei Klassen mit demselben Namen definieren), daher ist nicht definiert, welche zur Laufzeit verwendet wird.

Ich denke jedoch, dass dies kein Problem sein wird, da beide Klassen dieselben Methoden und Felder haben (dies wurde mit Disassembler überprüft) und ich denke, dass beide aus derselben Quelle kompiliert wurden.

Radar ist bereits gesendet.

Roman Ermolov
quelle
2
Die Warnmeldung ist noch da.
Faiz Fareed
9
Ich habe festgestellt, dass bei Verwendung von Webview in einer VC diese Art von Warnmeldung im Debug-Fenster angezeigt wird, wenn die VC angezeigt wird. Ich benutze Xcode 8.1, Swift 3.
David.Chu.ca
1
Ich benutze Xcode 8.2 und ich habe keine Fotolibary-Verwendung in meinem Projekt und ich bekomme immer noch diese Warnung.
Himanshu Moradiya
1
Bin ich es nur oder wird die Viewcontroller-Präsentation langsam, die präsentiert wird und diese Warnmeldung hat ???
Nr. 5
2
Ich erhalte auch diese Warnung, wenn ich einstelle .attributedText. Ich greife nicht auf Kamera oder Fotos zu. Diese Warnung führt auch zu einer schwerwiegenden Verzögerung beim Laden des View Controllers, obwohl keine zeitintensiven Aufgaben erforderlich sind (kein Netzwerkzugriff, keine Datei-E / A usw.).
R Moyer
53

Laut Antwort eines Apple-Mitarbeiters im Apple Developer Forum :

Sie kontrollieren keine der aufgelisteten Klassenquellen, daher können oder sollten Sie nichts tun - außer einen Fehler zu melden.

Raphael Oliveira
quelle
Ich denke das ist das.
Fattie
2
Auch wenn es kein Problem ist, erzeugt es dennoch die nervige und ablenkende Ausgabe, die "Bug" schreit ...
Jakub Truhlář
46

Ich konnte keine Möglichkeit finden, die Warnung zu entfernen. Wenn Sie jedoch verhindern möchten, dass die App abstürzt, müssen Sie eine Beschreibung angeben, warum Sie auf die Kamera, die Fotobibliothek usw. zugreifen. Dies ist neu in iOS10.

Geben Sie Folgendes in Ihre Info.plistDatei ein.

Foto

Schlüssel: Privacy - Photo Library Usage Description Wert: $(PRODUCT_NAME) photo use

Kamera

Schlüssel: Privacy - Camera Usage Description Wert: $(PRODUCT_NAME) camera use

Weitere Informationen finden Sie hier: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

Nick Meehan
quelle
33
Die Warnmeldungen sind noch vorhanden.
Kevin
6
Meine App verwendet die Kamera überhaupt nicht und ich erhalte die Nachricht. Trotzdem habe ich versucht, diese zur Liste hinzuzufügen, wie Sie vorgeschlagen haben, und das hat es immer noch nicht gelöst.
FlatDog
5
Hat jemand das herausgefunden? Ich benutze weder eine
Fotobibliothek
2
@MikeG Ich verwende auch keine der beiden Bibliotheken und bekomme immer noch den Absturz. Ich habe die Warnungen beseitigt, indem ich der info.plistDatei die Konfigurationsdetails für Schlüssel / Zeichenfolge hinzugefügt habe . Anscheinend wird es in IOS 10.x benötigt
David Morton
2
Ich habe diese Warnung erhalten, nachdem ich textView.attributedText auf NSAttributedString gesetzt habe
mik.ro
12

Ich finde, Sie können diesen Fehler nur mit einem UIWebView erhalten. Meine Lösung bestand darin, meine Verwendung von UIWebView durch WKWebView zu ersetzen.

matt
quelle
5
Ich habe WKWebView ausprobiert, aber die Warnung erscheint immer noch
muz die Axt
5

Ich hatte dies, nachdem ich meinem Projekt Answers on Fabric hinzugefügt hatte.

Das Löschen abgeleiteter Daten hat mir geholfen. (Shift Alt Befehl k in XCode)

Ein Jahr später bearbeiten:

Beenden Sie nach dem Löschen abgeleiteter Daten immer XCode und starten Sie es erneut.

In nicht verwandten Fällen habe ich den Eindruck, dass durch das Löschen abgeleiteter Daten die XCodes in den Speichercaches der abgeleiteten Daten nicht gelöscht werden.

Gerd Castan
quelle
Warnung ist immer noch da, ABER App stürzt nicht mehr ab. Ich verwende xcode8.2.1
Dashrath
2

Das Zurücksetzen des iOS-Simulators hat dies für mich behoben. Simulator -> Inhalt und Einstellungen zurücksetzen.

Eric Mentele
quelle
Ich bin gerade zu dem gleichen Schluss gekommen und es hat auch bei mir funktioniert.
Franz
0

In meinem Fall wurde diese Warnung angezeigt, nachdem ein zweites xcode-Projekt geöffnet und die zweite App auf dem Simulator ausgeführt wurde. Nach dem Wechsel zur ersten App wurde die Warnung angezeigt. Ich habe gerade den Simulator und Xcode beendet und mein Projekt erneut geöffnet. Die Warnung verschwand danach. Wenn dies das Problem nicht löst, fahren Sie mit den anderen Antworten fort. Xcode kann manchmal sehr wählerisch sein.

Alexander Luna
quelle