[xcode] PLBuildVersion 클래스는 두 프레임 워크 모두에서 구현됩니다.
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). 둘 중 하나가 사용됩니다. 어느 것이 정의되지 않았습니다.
(참고 : 시뮬레이터에서만 발생하고 실제 장치에는 나타나지 않습니다).
답변
주요 아이디어
주요 아이디어는 간단합니다.
앱 (또는 포드와 같은 종속성)이 명시 적 (또는 암시 적) PhotoLibraryServices.framework
또는 AssetsLibraryServices.framework
종속성 을 사용하는 프레임 워크를 사용 하는 경우 Xcode가 경고를 표시합니다 (둘 중 하나만 사용하더라도). Photos/PhotosUI.framework
또는 AssetsLibrary.framework
또는 다른 것일 수 있습니다 (종속 종속성의 전체 목록이 없지만 가능합니다).
무엇이 문제입니까?
이름 PLBuildVersion
이있는 클래스 는 PhotoLibraryServices.framework
및 에 모두 정의되어 있습니다 AssetsLibraryServices.framework
. 클래스 이름은 Objective-C에서 고유하므로 (같은 이름으로 2 개의 클래스를 정의 할 수 없음) 런타임에 어떤 클래스를 사용할지 정의되지 않습니다.
그러나 두 클래스 모두 동일한 메소드와 필드를 가지고 있기 때문에 문제가되지 않을 것이라고 생각합니다 (디스어셈블러로 확인). 두 클래스가 동일한 소스에서 컴파일 된 것 같습니다.
레이더 가 이미 전송되었습니다.
답변
Apple 개발자 포럼의 Apple 직원의 답변에 따라 :
나열된 클래스 소스 중 하나를 제어 할 수 없으므로 버그보고 외에는 할 수 있거나해야 할 일은 없습니다.
답변
경고를 제거하는 방법을 찾을 수 없었지만 앱이 충돌하는 것을 방지하려면 카메라, 사진 라이브러리 등에 액세스하는 이유에 대한 설명을 제공해야합니다. 이것은 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
답변
UIWebView를 사용하면이 오류가 발생할 수 있습니다. 내 솔루션은 UIWebView 사용을 WKWebView로 바꾸는 것이 었습니다.
답변
내 프로젝트에 Answer on Fabric을 추가 한 후에 이것을했습니다.
파생 데이터를 삭제하면 속임수가되었습니다. (XCode에서 shift alt 명령 k)
1 년 후 편집 :
파생 된 데이터를 삭제 한 후에는 항상 XCode를 종료하고 다시 시작하십시오.
관련이없는 경우 파생 데이터를 삭제해도 파생 데이터의 메모리 캐시에서 XCode가 지워지지 않습니다.
답변
iOS 시뮬레이터를 재설정하면이 문제가 해결되었습니다. 시뮬레이터-> 내용 및 설정 재설정.
답변
필자의 경우이 경고는 두 번째 xcode 프로젝트를 열고 시뮬레이터에서 두 번째 앱을 실행 한 후에 나타납니다. 첫 번째 앱으로 다시 변경 한 후 경고가 표시되기 시작했습니다. 방금 Simulator와 Xcode를 종료하고 프로젝트를 다시 열었습니다. 그 후 경고가 사라졌습니다. 그래도 해결되지 않으면 다른 답변을 진행하십시오. Xcode는 때때로 까다로울 수 있습니다.