PLBuildVersion类是在两个框架中实现的

iOS 10 / Xcode 8 GM build得到下面,从来没有在Xcode 7之前。任何想法?

objc [25161]:类PLBuildVersion在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices(0x12049a910)和/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices(0x1202c4210)。 其中一个将被使用。 哪一个是未定义的

(注意:似乎只发生在模拟器中,不会出现在真实的设备上)。

大意

主要想法很简单:

如果您的应用程序(或者依赖项,比如豆荚)使用框架,使用显式的(或者隐式的) PhotoLibraryServices.framework或者AssetsLibraryServices.framework作为依赖,Xcode会警告您(即使您只使用其中的一个)。 它可能是Photos/PhotosUI.frameworkAssetsLibrary.framework ,或另一个(我没有完整的依赖列表,但它是可能的)。

问题是什么?

名称为PLBuildVersion类在PhotoLibraryServices.frameworkAssetsLibraryServices.framework定义。 在Objective-C中,类名是唯一的(你不能定义2个同名的类),所以在运行时没有定义哪一个。

不过,我认为这不会是一个问题,因为这两个类有相同的方法和字段(用反汇编器检查这个),我猜这两个都是从同一个源编译的。

雷达已经发送。

根据苹果公司员工在苹果开发者论坛上的回答:

你不能控制列出的任何一个类的来源,所以除了报告一个Bug外,没有什么可以或者应该做的。

我无法find摆脱警告的方法,但是如果您想防止应用程序崩溃,则需要提供关于访问摄像机,照片库等的原因的说明。这是iOS10中的新function。

Info.plist文件中input以下内容。

照片

密钥: Privacy - Photo Library Usage Description值: $(PRODUCT_NAME) photo use

相机

密钥: Privacy - Camera Usage Description值: $(PRODUCT_NAME) camera use

更多信息可以在这里find: https : //iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

我发现你可以通过使用UIWebView来获得这个错误。 我的解决scheme是用WKWebViewreplace我使用的UIWebView。

在添加Fabric上的答案到我的项目后,我有这个。

删除派生数据对我来说是个诀窍。 (在XCode中移动alt命令k)

重置iOS模拟器为我解决这个问题。 模拟器 – >重置内容和设置。

在我的情况下,这个警告在打开第二个xcode项目并在模拟器上运行第二个应用程序后开始出现。 改回第一个应用程序后,警告开始出现。 我刚刚退出模拟器和Xcode并重新打开我的项目。 之后警告消失了。 如果这不能解决问题,请继续处理其他答案。 Xcode有时候可能真的很挑剔。