在两个框架中都实现了PLBuildVersion类


225

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(0x120)中都实现和/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices(0x1202c4210)。将使用两者之一。哪一个未定义。

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


1
您是否在项目中使用Fabric或其他Twitter 3rd库?
凯文

3
我不使用推特。也许Firebase也会造成这种情况?
Yitzchak

1
@noellee像Zac一样,我在我的项目中使用结构,并且我也
遇到

1
@Yitschak我使用firebase,也得到了这个。
n3wbie

1
是的,我正在使用Fabric和Crashlytics(v3.8.2)
FlatDog

Answers:


144

大意

主要思想很简单:

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

问题是什么?

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

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

雷达已发送。


2
警告消息仍然存在。
法伊兹(Faiz)在2016年

9
我发现,如果我在一个VC中使用Webview,则在显示VC时,会在调试窗口中收到这种类型的警告消息。我使用的Xcode 8.1,快捷3
David.Chu.ca

1
我正在使用xcode 8.2,我在我的项目中没有任何photolibary使用,我仍然收到此警告。
Himanshu Moradiya '17

1
是我一个人还是ViewController演示变得缓慢,正在被演示并显示此警告消息???
nr5

2
设置时也会收到此警告.attributedText。我没有访问相机或照片。即使不涉及时间密集型任务(无网络访问,无文件I / O等),此警告也会导致View Controller加载严重滞后。
R Moyer


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


33
警告消息仍然存在。
凯文

6
我的应用程序根本不使用相机,我收到了消息。不过,我尝试添加这些到PList如你所说,并且仍然没有解决它..
FlatDog

5
有人知道吗?我没有使用照片库,也没有使用相机,但是仍然收到警告和崩溃
MikeG

2
@MikeG我也不使用任何一个库,仍然崩溃,我通过将键/字符串配置详细信息添加到info.plist文件中来摆脱警告。显然,它需要在IOS 10.x中
大卫·莫顿

2
在将textView.attributedText设置为NSAttributedString之后,我得到了这个警告
mik.ro

12

我发现您仅通过使用UIWebView就能得到此错误。我的解决方案是用WKWebView代替对UIWebView的使用。


5
我尝试了WKWebView,但警告仍在出现
斧头斧

5

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

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

一年后编辑:

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

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


警告仍然存在,但应用程序不再崩溃。我正在使用xcode8.2.1
Dashrath


0

就我而言,在打开第二个xcode项目并在模拟器上运行第二个应用程序后,此警告开始出现。回到第一个应用程序后,警告开始出现。我只是退出了Simulator和Xcode,然后重新打开了我的项目。此后警告消失了。如果那不能解决问题,请继续其他答案。Xcode有时可能真的很挑剔。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.