la version iOS 10/Xcode 8 GM qui contient le texte ci-dessous n’a jamais été utilisée auparavant sur Xcode 7. Des idées?
objc [25161]: La classe PLBuildVersion est implémentée 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). Un des deux sera utilisé. Lequel n'est pas défini.
(NOTE: Seulement semble se produire dans le simulateur, n'apparaît pas sur le périphérique réel).
L'idée principale est simple:
Si votre application (ou vos dépendances, telles que Pods) utilise un framework qui utilise explicitement (ou implicitement) PhotoLibraryServices.framework
ou AssetsLibraryServices.framework
en tant que dépendance, Xcode vous avertit (même si vous n'en utilisez qu'un seul). Il peut s'agir de Photos/PhotosUI.framework
ou AssetsLibrary.framework
, ou d'un autre (je n'ai pas la liste complète des dépendances, mais c'est possible).
La classe nommée PLBuildVersion
est définie à la fois dans PhotoLibraryServices.framework
et AssetsLibraryServices.framework
. Le nom de classe est unique dans Objective-C (vous ne pouvez pas définir 2 classes avec le même nom). Par conséquent, il n'est pas défini celle qui sera utilisée au moment de l'exécution.
Cependant, je pense que ce ne sera pas un problème, car les deux classes ont les mêmes méthodes et champs (vérifié avec désassembleur) et je suppose que les deux ont été compilées à partir de la même source.
Radar est déjà envoyé.
Selon la réponse d'un employé d'Apple sur Forum des développeurs Apple :
Vous ne contrôlez aucune des sources de classe répertoriées, vous ne pouvez donc ni ne devriez rien faire à part signaler un bogue.
Je ne parvenais pas à supprimer cet avertissement, mais si vous souhaitez éviter le blocage de l'application, vous devez fournir une description de la raison de votre accès à l'appareil photo, à la bibliothèque de photos, etc. Ceci est nouveau dans iOS10.
Entrez ce qui suit dans votre fichier Info.plist
.
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
Je trouve que vous pouvez obtenir cette erreur simplement en utilisant un UIWebView. Ma solution consistait à remplacer mon utilisation de UIWebView par WKWebView.
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.
Réinitialiser le simulateur iOS a résolu ce problème pour moi. Simulateur -> Réinitialiser le contenu et les paramètres.
Dans mon cas, cet avertissement a commencé à apparaître après l'ouverture d'un deuxième projet xcode et l'exécution de la deuxième application sur le simulateur. Après être revenu à la première application, l'avertissement a commencé à apparaître. Je viens de quitter le simulateur et Xcode et de rouvrir mon projet. L'avertissement a disparu après cela. Si cela ne résout pas le problème, passez aux autres réponses. Xcode peut être vraiment difficile parfois.