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(0x12049a910) 모두에서 구현됩니다. 및 /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
자크 I 같은 @noellee 내 프로젝트에 원단을 사용하고 내가 같은 오류가
user1019042

1
@Yitschak 나는 firebase를 사용하고 이것을 얻었습니다.
n3wbie

1
예, 저는 Fabric and Crashlytics (v3.8.2)를 사용하고 있습니다
FlatDog

답변:


144

주요 아이디어

주요 아이디어는 간단합니다.

앱 (또는 포드와 같은 종속성)이 명시 적 (또는 암시 적) PhotoLibraryServices.framework또는 AssetsLibraryServices.framework종속성 을 사용하는 프레임 워크를 사용 하는 경우 Xcode가 경고를 표시합니다 (둘 중 하나만 사용하더라도). Photos/PhotosUI.framework또는 AssetsLibrary.framework또는 다른 것일 수 있습니다 (종속 종속성의 전체 목록이 없지만 가능합니다).

무엇이 문제입니까?

이름 PLBuildVersion이있는 클래스 는 PhotoLibraryServices.framework및 에 모두 정의되어 있습니다 AssetsLibraryServices.framework. 클래스 이름은 Objective-C에서 고유하므로 (같은 이름으로 2 개의 클래스를 정의 할 수 없음) 런타임에 어떤 클래스를 사용할지 정의되지 않습니다.

그러나 두 클래스 모두 동일한 메소드와 필드를 가지고 있기 때문에 문제가되지 않을 것이라고 생각합니다 (디스어셈블러로 확인). 두 클래스가 동일한 소스에서 컴파일 된 것 같습니다.

레이더 가 이미 전송되었습니다.


2
경고 메시지가 여전히 있습니다.
Faiz Fareed

9
하나의 VC에서 Webview를 사용하면 VC가 표시 될 때 디버그 창에 이러한 유형의 경고 메시지가 나타납니다. 나는 Xcode 8.1, 빠른 3을 사용합니다.
David.Chu.ca

1
xcode 8.2를 사용하는 im이며 프로젝트에서 photolibary를 사용하지 않고 여전히이 경고가 표시됩니다.
Himanshu Moradiya

1
나만입니까, 아니면 뷰 컨트롤러 프리젠 테이션이 느려져 표시 되고이 경고 메시지가 나타 납니까 ???
nr5

2
또한 설정할 때이 경고가 표시됩니다 .attributedText. 카메라 나 사진에 액세스하고 있지 않습니다. 이 경고는 또한 시간이 많이 걸리는 작업 (네트워크 액세스, 파일 I / O 등)이 없더라도 View Controller가로드되는 데 심각한 지연을 초래합니다.
R Moyer

53

Apple 개발자 포럼의 Apple 직원의 답변에 따라 :

나열된 클래스 소스 중 하나를 제어 할 수 없으므로 버그보고 외에는 할 수 있거나해야 할 일은 없습니다.


그런 것 같아요.
Fattie

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


33
경고 메시지가 여전히 있습니다.
Kevin

6
내 앱에서 카메라를 전혀 사용하지 않고 메시지가 나타납니다. 아직도, 나는 당신이 제안한대로 plist에 추가하려고 시도했지만 여전히 해결되지 않았습니다.
FlatDog

5
아무도 이것을 알아낼 수 있습니까? 사진 라이브러리를 사용하지 않거나 카메라를 사용하고 있지는 않지만 여전히 경고와 충돌이 발생합니다.
MikeG

2
@MikeG 나는 또한 어느 라이브러리를 사용하지 않고 여전히 충돌이 발생합니다. 키 / 문자열 구성 세부 정보를 info.plist파일 에 추가하여 경고를 제거했습니다 . 분명히 그 IOS 10.x를 필요
데이비드 모튼

2
나는 NSAttributedString은에 textView.attributedText을 설정 한 후이 경고를 가지고
mik.ro

12

UIWebView를 사용하면이 오류가 발생할 수 있습니다. 내 솔루션은 UIWebView 사용을 WKWebView로 바꾸는 것이 었습니다.


5
나는 WKWebView을 시도했지만 경고는 여전히 나타나고있다
도끼 MUZ

5

내 프로젝트에 Answer on Fabric을 추가 한 후에 이것을했습니다.

파생 데이터를 삭제하면 속임수가되었습니다. (XCode에서 shift alt 명령 k)

1 년 후 편집 :

파생 된 데이터를 삭제 한 후에는 항상 XCode를 종료하고 다시 시작하십시오.

관련이없는 경우 파생 데이터를 삭제해도 파생 데이터의 메모리 캐시에서 XCode가 지워지지 않습니다.


경고가 여전히 있지만 더 이상 응용 프로그램이 충돌하지 않습니다. 나는 xcode8.2.1을 사용하고 있습니다
Dashrath

2

iOS 시뮬레이터를 재설정하면이 문제가 해결되었습니다. 시뮬레이터-> 내용 및 설정 재설정.


방금 같은 결론을 얻었고 나에게도 효과가있었습니다.
Franz

0

필자의 경우이 경고는 두 번째 xcode 프로젝트를 열고 시뮬레이터에서 두 번째 앱을 실행 한 후에 나타납니다. 첫 번째 앱으로 다시 변경 한 후 경고가 표시되기 시작했습니다. 방금 Simulator와 Xcode를 종료하고 프로젝트를 다시 열었습니다. 그 후 경고가 사라졌습니다. 그래도 해결되지 않으면 다른 답변을 진행하십시오. Xcode는 때때로 까다로울 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.