2014-11-01 13 views
17

Sau khi tôi nâng cấp lên Xcode 6.1, nó tiếp tục ném ngoại lệ này khi tôi cố gắng xây dựng ứng dụng hiện có của mình. Tôi đã cố gắng loại bỏ 'MyController' và thêm lại. Nhưng nó sẽ ném cùng một ngoại lệ với bộ điều khiển khác nhau.Xcode 6.1 giữ cho tôi biết một số PartialInfo.plist không thể mở được

could not read data from '/Users/macbookpro/Library/Developer/Xcode/DerivedData/MyApp- 
dmhwkhbfbxprhycwjeunwtbbtsxj/Build/Intermediates/MyApp.build/DEV-iphoneos/MyApp.build/MyController- 
PartialInfo.plist': The file “MyController-PartialInfo.plist” couldn’t be opened because there is no 
such file. 

Trả lời

23

Tôi tìm thấy câu trả lời. Tôi phải thay thế tất cả các tập tin xib 'IBCocoaTouchPlugin thành phiên bản mới hơn.

<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/> 
+10

điều này có thể được thực hiện bằng cách chỉ cần chọn xib và cho phép xcode mở nó trong trình tạo giao diện. – odyth

+1

Tương tự với xcode 6.2. Chúng ta cần phải chọn tất cả xib và để xcode mở nó trong trình xây dựng giao diện. Sau đó lưu tất cả các tệp. – SHS

+0

Vì điều này * giữ * xảy ra với tôi và chỉ cần mở ngòi dường như không dính, đây là dòng lệnh một lớp để làm điều đó - hãy nhớ cam kết trước khi bạn thử và thay thế '7520' bằng bất kỳ phiên bản nào bạn muốn sử dụng: 'tìm. -name '* .xib' | xargs perl -pi -e 's/plugIn định danh. * $/plugIn định danh \ = \ "com.apple.InterfaceBuilder.IBCocoaTouchPlugin \" phiên bản \ = \ "7520 \" \/\>/g'' – jankins

10

Bạn có thể giải quyết vấn đề bằng cách xóa nội dung trong thư mục DerivedData. Nếu bạn lo lắng về việc xóa quá nhiều thư mục, thì chỉ xóa các thư mục bắt đầu bằng tên của dự án hiện tại mà bạn đang cố giải quyết sự cố. Hãy nhớ đóng XCode trước khi bạn xóa các dữ liệu

Library/Developer/Xcode/DerivedData/

+1

Điều này làm việc cho tôi. Tôi chỉ phải xóa thư mục ** Build ** trong thư mục DerivedData của dự án. Điều này cho phép tôi duy trì thư mục ** Index ** có thể khá tốn thời gian và tốn nhiều tài nguyên cho Xcode để tạo lại. –

+0

Cũng làm việc cho tôi! cảm ơn bạn! – Gabriel

+0

Cách an toàn hơn để xóa Dữ liệu có nguồn gốc, là thực hiện thông qua Xcode -> Window -> Projects: Chọn dự án của bạn (ở khung bên trái) và nhấp vào nút "Delete" bên cạnh Derived Data trong khung bên phải. –

0

tôi gặp phải vấn đề này khi tôi chuyển tập tin plist của tôi vào một thư mục mới. Bạn phải vào danh sách Targets (chọn thanh trên cùng bên trái menu Xcode bên trái, cái có tên dự án của bạn, và sau đó chọn Targets trên menu dọc thứ hai từ bên trái) và tìm phần Identity. Từ đó, chọn nút cho phép bạn chỉ định đường dẫn mới của tệp .plist.

Nếu cách này không hiệu quả, hãy thử xóa thư mục dự án của bạn trong ~/Library/Developer/Xcode/DerivedData/và xây dựng lại.

3

Đối với tôi (với Xcode 6.3) điều này đã xảy ra với một tệp đã xảy ra để kết thúc bằng ~ iPhone.xib. Tôi thay đổi nó kết thúc trong tất cả các trường hợp ~ iphone.xib thấp hơn, và vấn đề được giải quyết.

+0

Đã làm việc cho tôi :) – 100rabh

0

Một số bạn đã đưa ra câu trả lời một phần.

Tôi tin rằng vấn đề này liên quan đến "khắc phục" của Apple khi XIB tải chậm khi họ tham chiếu phông chữ tùy chỉnh. Bây giờ, họ lưu trữ thông tin phông chữ tùy chỉnh trong tệp xibnamePartialInfo.plist trong thư mục derivedData của bạn.

Bây giờ nếu ứng dụng của bạn chứa xibname ~ iPhone.xib AND xibname.xib, chỉ tệp PartialInfo.plist cho xibname ~ iPhone.xib được tạo và bạn thấy lỗi. Mở xib trong InterfaceBuilder có tác dụng phụ của việc tạo tập tin này, đó là lý do tại sao vấn đề xuất hiện để biến mất (cho đến khi làm sạch tiếp theo).

Vì vậy, giải pháp là đổi tên tất cả ~ tệp iPhone thành tệp khác (dấu gạch ngang hoạt động như một thay thế cho dấu ngã). Dường như dấu ngã của nó đang cản trở việc tạo tệp PartialInfo.plist cho thư mục gốc XIB

2

Điều này thường xảy ra khi bạn mở phiên bản cũ xibs không có gì để thực hiện chỉ cần nhấp vào xib trong bảng điều khiển phiên bản của nó sẽ tự động thay đổi/cập nhật với phiên bản mới hơn.

vì vậy bạn cũng không cần phải nhớ điều đó.

0

Câu trả lời chung cho hầu hết câu hỏi ... Khởi động lại Xcode. Nó làm việc cho tôi.

Các vấn đề liên quan