224 votes

La classe PLBuildVersion est implémentée dans les deux frameworks

iOS 10 / Xcode 8 GM construire l'obtention de la ci-dessous, n'a jamais eu avant sur Xcode 7. Des idées?

objc[25161]: Classe PLBuildVersion est mis en œuvre dans les deux /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x12049a910) et /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202c4210). L'un des deux va être utilisé. Ce qui est indéfini.

(REMARQUE: ne semble se produire dans le simulateur, n'apparaît pas sur le réel de l'appareil).

144voto

Roman Ermolov Points 61

L'Idée Principale

L'idée principale est simple:

Si votre application (ou dépendances, telles que les Gousses) utilise le cadre, qui utilise explicite (ou implicite) PhotoLibraryServices.framework ou AssetsLibraryServices.framework comme la dépendance, Xcode, vous avertit (même si vous utilisez un seul d'entre eux). Il pourrait être Photos/PhotosUI.framework ou AssetsLibrary.framework, ou d'une autre (je n'ai pas de liste complète des dépendances, mais c'est possible).

Quel est le problème?

La classe avec le nom de l' PLBuildVersion est définie dans les deux PhotoLibraryServices.framework et AssetsLibraryServices.framework. Nom de la classe est unique en Objective-C (vous ne pouvez pas définir 2 classes avec le même nom), donc il n'est pas celui qui sera utilisé lors de l'exécution.

Cependant, je pense qu'il ne sera pas un problème, parce que les deux classes ont les mêmes méthodes et des champs (vérifié cela avec désassembleur) et je pense que les deux ont été compilées à partir de la même source.

Le Radar est déjà envoyé.

53voto

Raphael Oliveira Points 1711

Selon la réponse d'un employé Apple sur le forum des développeurs Apple :

Vous ne contrôlez aucune des sources de classe répertoriées, vous ne pouvez donc ni ne devez rien faire à part signaler un bogue.

46voto

Nick Meehan Points 660

J'ai été incapable de trouver un moyen de se débarrasser de l'avertissement, mais si vous voulez empêcher l'application de s'écraser, vous devez fournir une description de pourquoi vous avez accès à la caméra, de la bibliothèque de photos, etc. Ce qui est nouveau dans iOS10.

Saisissez le texte suivant dans votre Info.plist le fichier.

Photo

Clé: Privacy - Photo Library Usage Description Valeur: $(PRODUCT_NAME) photo use

Caméra

Clé: Privacy - Camera Usage Description Valeur: $(PRODUCT_NAME) camera use

Plus d'informations peuvent être trouvées ici: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

12voto

matt Points 60113

Je trouve que vous pouvez obtenir cette erreur simplement en utilisant un UIWebView. Ma solution consistait à remplacer mon utilisation de UIWebView par WKWebView.

5voto

Gerd Castan Points 2999

J'avais ceci après avoir ajouté Answers on Fabric à mon projet.

La suppression des données dérivées a fait l'affaire pour moi. (Maj. commande k en Xcode)

Éditer un an plus tard:

Après avoir supprimé les données dérivées, quittez toujours XCode et redémarrez-le.

Dans des cas sans rapport, j'ai l'impression que la suppression des données dérivées n'efface pas les caches en mémoire de XCode des données dérivées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X