Lớp PLBuildVersion được triển khai trong cả hai khung


225

Bản dựng GM 10 / Xcode 8 GM nhận được dưới đây, chưa từng có trước đây trên Xcode 7. Bạn có ý tưởng nào không?

objc [25161]: Lớp PLBuildVersion được triển khai trong cả hai /Applif và / Ứng dụng / mã hóa. Ứng dụng Một trong hai người sẽ được sử dụng. Cái nào không xác định.

(LƯU Ý: Dường như chỉ xảy ra trong trình giả lập, không xuất hiện trên thiết bị thực).


1
Bạn đang sử dụng Fabric hoặc thư viện thứ 3 Twitter khác trong dự án của bạn?
Kevin

3
Tôi không sử dụng twitter. Có lẽ Firebase cũng có thể gây ra điều này?
Yitzchak

1
@noellee như Zac Tôi đang sử dụng vải trong dự án của mình và tôi cũng gặp lỗi tương tự
user1019042

1
@Yitschak tôi sử dụng firebase và cũng nhận được điều này.
n3wbie

1
có, tôi đang sử dụng Fabric và Crashlytics (v3.8.2)
FlatDog

Câu trả lời:


144

Ý chính

Ý chính là đơn giản:

Nếu ứng dụng của bạn (hoặc phụ thuộc, chẳng hạn như Pods) sử dụng khung, sử dụng rõ ràng (hoặc ẩn) PhotoLibraryServices.frameworkhoặc AssetsLibraryServices.frameworklàm phụ thuộc, Xcode sẽ cảnh báo bạn (ngay cả khi bạn chỉ sử dụng một trong số chúng). Nó có thể Photos/PhotosUI.frameworkhoặc AssetsLibrary.frameworkhoặc khác (tôi không có danh sách đầy đủ các phụ thuộc, nhưng có thể).

Vấn đề là gì?

Lớp có tên PLBuildVersionđược định nghĩa trong cả hai PhotoLibraryServices.frameworkAssetsLibraryServices.framework. Tên lớp là duy nhất trong Objective-C (bạn không thể định nghĩa 2 lớp có cùng tên), vì vậy không xác định được lớp nào sẽ được sử dụng trong thời gian chạy.

Tuy nhiên, tôi nghĩ rằng nó sẽ không phải là vấn đề, bởi vì cả hai lớp đều có cùng phương thức và trường (đã kiểm tra điều này với trình dịch ngược) và tôi đoán rằng cả hai đều được biên dịch từ cùng một nguồn.

Radar đã được gửi đi.


2
thông điệp cảnh báo vẫn còn đó.
Faiz Fareed

9
Tôi thấy rằng nếu tôi sử dụng Webview trong một VC, tôi đã nhận được loại thông báo cảnh báo này trong cửa sổ gỡ lỗi khi VC được hiển thị. Tôi sử dụng Xcode 8.1, swift 3.
David.Chu.ca

1
Tôi đang sử dụng xcode 8.2 và tôi không có bất kỳ việc sử dụng quang điện nào trong dự án của mình và tôi vẫn nhận được cảnh báo này.
Himanshu Moradiya 17/03/2017

1
Có phải chỉ tôi hoặc trình bày trình điều khiển xem trở nên chậm, đang được trình bày và có thông báo cảnh báo này ???
nr5

2
Tôi cũng nhận được cảnh báo này khi tôi đặt .attributedText. Tôi không truy cập máy ảnh hoặc hình ảnh. Cảnh báo này cũng gây ra độ trễ nghiêm trọng cho Trình điều khiển xem tải, mặc dù không có các tác vụ đòi hỏi nhiều thời gian (không truy cập mạng, không có tệp i / o, v.v.).
R Moyer

53

Theo câu trả lời từ nhân viên Apple trên Diễn đàn nhà phát triển của Apple :

Bạn không kiểm soát một trong hai nguồn lớp được liệt kê, do đó, không có bất cứ điều gì bạn có thể hoặc nên làm - ngoài Báo cáo lỗi.


Tôi đoán đó là điều đó.
Fattie

2
Ngay cả khi đó không phải là vấn đề, nó vẫn tạo ra đầu ra khó chịu và mất tập trung, tiếng hét "lỗi" này ...
Jakub Truhlář

46

Tôi không thể tìm cách loại bỏ cảnh báo, nhưng nếu bạn muốn ngăn ứng dụng bị sập, bạn cần cung cấp một mô tả về lý do bạn truy cập vào máy ảnh, thư viện ảnh, v.v. Đây là tính năng mới trong iOS10.

Nhập nội dung sau vào Info.plisttập tin của bạn .

ảnh

Khóa: Privacy - Photo Library Usage Description Giá trị: $(PRODUCT_NAME) photo use

Máy ảnh

Khóa: Privacy - Camera Usage Description Giá trị: $(PRODUCT_NAME) camera use

Thông tin thêm có thể được tìm thấy ở đây: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-sinstall-in-ios-10.html


33
Các thông điệp cảnh báo vẫn còn đó.
Kevin

6
Ứng dụng của tôi hoàn toàn không sử dụng máy ảnh và tôi nhận được tin nhắn. Tuy nhiên, tôi đã cố gắng thêm những thứ này vào danh sách như bạn đề xuất và điều đó vẫn không giải quyết được ..
FlatDog

5
Bất cứ ai cũng tìm ra điều này? Tôi không sử dụng thư viện ảnh cũng không phải tôi đang sử dụng máy ảnh, tuy nhiên tôi vẫn nhận được cảnh báo và sự cố
MikeG

2
@MikeG Tôi cũng không sử dụng một trong hai thư viện và vẫn gặp sự cố, tôi đã thoát khỏi các cảnh báo bằng cách thêm chi tiết cấu hình khóa / chuỗi vào info.plisttệp. Rõ ràng nó cần thiết trong iOS 10.x
David Morton

2
Tôi đã nhận được cảnh báo này sau khi đặt textView.attributionText thành NSAttributionString
mik.ro

12

Tôi thấy bạn có thể gặp lỗi này chỉ bằng cách sử dụng UIWebView. Giải pháp của tôi là thay thế việc sử dụng UIWebView của tôi bằng WKWebView.


5
Tôi đã thử WKWebView nhưng cảnh báo vẫn xuất hiện
muz rìu

5

Tôi đã có điều này sau khi thêm Câu trả lời trên Vải vào dự án của tôi.

Xóa dữ liệu dẫn xuất đã lừa tôi. (thay đổi lệnh alt k trong XCode)

Chỉnh sửa một năm sau:

Sau khi xóa dữ liệu dẫn xuất, luôn thoát XCode và bắt đầu lại.

Trong các trường hợp không liên quan, tôi có ấn tượng rằng việc xóa dữ liệu dẫn xuất không xóa XCode trong bộ nhớ đệm của dữ liệu dẫn xuất.


cảnh báo vẫn còn đó, nhưng ứng dụng NHƯNG không bị sập nữa. Tôi đang sử dụng xcode8.2.1
Dashrath

2

Đặt lại trình giả lập iOS đã sửa lỗi này cho tôi. Trình mô phỏng -> Đặt lại Nội dung và Cài đặt.


Chỉ cần đi đến kết luận tương tự và nó cũng làm việc cho tôi.
Franz

0

Trong trường hợp của tôi, cảnh báo này bắt đầu xuất hiện sau khi mở dự án xcode thứ hai và chạy ứng dụng thứ hai trên trình giả lập. Sau khi thay đổi trở lại ứng dụng đầu tiên, cảnh báo bắt đầu xuất hiện. Tôi vừa thoát khỏi Trình mô phỏng và Xcode và mở lại dự án của mình. Cảnh báo biến mất sau đó. Nếu điều đó không giải quyết được, hãy tiếp tục với các câu trả lời khác. Xcode đôi khi có thể rất kén chọn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.