PLBuildVersion类在两个框架中实现

时间:2016-09-15 21:16:23

标签: xcode ios10 xcode8

iOS 10 / Xcode 8 GM构建得到以下内容,从未在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)。将使用两者之一。哪一个未定义。

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

7 个答案:

答案 0 :(得分:143)

主要想法

主要想法很简单:

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

有什么问题?

PLBuildVersionPhotoLibraryServices.framework都定义了名为AssetsLibraryServices.framework的类。类名在Objective-C中是唯一的(您不能定义具有相同名称的2个类),因此未定义哪个类将在运行时使用。

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

Radar已经发送。

答案 1 :(得分:52)

根据Apple员工在Apple's Developer Forum上的回答:

  

您无法控制列出的任何类别来源,因此除了报告错误之外,您无法或应该做任何事情。

答案 2 :(得分:46)

我无法找到摆脱警告的方法,但是如果你想阻止应用程序崩溃,你需要提供一个描述你访问相机,照片库等的原因。这是新的在iOS10中。

Info.plist文件中输入以下内容。

<强>照片

重点:Privacy - Photo Library Usage Description 价值:$(PRODUCT_NAME) photo use

<强>相机

重点:Privacy - Camera Usage Description 价值:$(PRODUCT_NAME) camera use

可以在此处找到更多信息:https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

答案 3 :(得分:12)

我发现只使用UIWebView就可以得到这个错误。我的解决方案是用WKWebView取代我对UIWebView的使用。

答案 4 :(得分:5)

在将Fabric上的Answers添加到我的项目后,我有了这个。

删除衍生数据对我来说很有用。 (在XCode中移动alt命令k)

一年后编辑:

删除派生数据后,请务必退出XCode并重新启动。

在不相关的情况下,我的印象是删除派生数据不会清除派生数据的内存缓存中的XCode。

答案 5 :(得分:2)

重置iOS模拟器为我修复此问题。模拟器 - &gt;重置内容和设置。

答案 6 :(得分:0)

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