it-swarm.com.de

Die Klasse PLBuildVersion ist in beiden Frameworks implementiert

iOS 10/Xcode 8 GM Build erhält das Folgende, hatte es noch nie auf Xcode 7. Irgendwelche Ideen?

objc [25161]: Die Klasse PLBuildVersion ist in beiden .__ implementiert. Dateien (0x12049a910) und /Anwendungen/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202c4210). Einer der beiden wird verwendet. Welches ist undefiniert.

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

224
FlatDog

Hauptidee

Hauptidee ist einfach:

Wenn Ihre App (oder Abhängigkeiten, wie z. B. Pods) ein Framework verwendet, das explizites (oder implizites) PhotoLibraryServices.framework oder AssetsLibraryServices.framework als Abhängigkeit verwendet, warnt Sie Xcode (auch wenn Sie nur eines davon verwenden). Es könnte Photos/PhotosUI.framework oder AssetsLibrary.framework oder ein anderer sein (ich habe keine vollständige Liste der Abhängigkeiten, ist aber möglich).

Worin besteht das Problem?

Die Klasse mit dem Namen PLBuildVersion ist sowohl in PhotoLibraryServices.framework als auch in AssetsLibraryServices.framework definiert. Der Klassenname ist in Objective-C eindeutig (Sie können nicht zwei Klassen mit demselben Namen definieren). Daher ist nicht definiert, welche der Klassen zur Laufzeit verwendet wird.

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

Radar wird bereits gesendet.

143
Roman Ermolov

Laut Antwort von Apple-Mitarbeiter auf Apple Developer Forum :

Sie haben keine Kontrolle über eine der aufgelisteten Klassenquellen, also können Sie nichts tun oder tun - abgesehen von dem Melden eines Fehlers.

52

Ich konnte keine Möglichkeit finden, die Warnung zu beseitigen, aber wenn Sie 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.plist-Datei 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

46
Nick Meehan

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

12
matt

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

Das Löschen abgeleiteter Daten war für mich der Trick. (Alt-Befehl k in XCode verschieben)

Ein Jahr später bearbeiten:

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

In nicht zusammenhängenden Fällen habe ich den Eindruck, dass das Löschen abgeleiteter Daten die Speichercaches der abgeleiteten Daten nicht löscht.

5
Gerd Castan

Das Zurücksetzen des iOS-Simulators hat dieses Problem behoben. Simulator -> Inhalt und Einstellungen zurücksetzen.

2
Eric Mentele

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 wieder geöffnet. Die Warnung verschwand danach. Wenn sich das nicht löst, fahren Sie mit den anderen Antworten fort. Xcode kann manchmal sehr wählerisch sein.

0
Alexander Luna