2012-04-12 34 views
8

Bất cứ khi nào xảy ra sự cố trên ứng dụng của tôi, nhật ký sự cố được hiển thị dưới dạng biểu tượng bên trong trình tổ chức. Bây giờ vấn đề là tất cả các địa chỉ bộ nhớ trỏ đến các lớp iOS đang nhận được biểu tượng tốt nhưng địa chỉ bộ nhớ của các lớp ứng dụng của tôi không nhận được biểu tượng. Tôi cần thiết lập thuộc tính dự án XCode nào để bật chúng.Tượng trưng các nhật ký sự cố trong XCode 4.3.2

Đây là các cài đặt bản dựng hiện tại đã bật biểu tượng cho các lớp iOS. Tôi đang sử dụng XCode 4.3.2.

Current build settings

+0

Bằng cách này, làm bạn tình cờ đã cài đặt Xcode 3.x trên cùng một hệ thống? – lukasz

+0

@ lukasz tại sao bạn lại yêu cầu điều đó? – Till

+0

Nó được sử dụng để gây ra một số vấn đề với biểu tượng, từ những gì tôi nghe. Và các vấn đề của tôi cũng biến mất cùng một lúc, khi tôi cuối cùng đã thoát khỏi 3.x. Có thể là một sự trùng hợp ngẫu nhiên. – lukasz

Trả lời

1

Bạn đã tắt đèn chiếu sáng chưa? symbolicatecrash sử dụng ánh đèn sân khấu để tìm các tệp nhị phân và tệp dsym, vì vậy nếu bạn đã tắt chú ý thì nó sẽ không thể tìm thấy chúng. Dù sao, đây là cách để chuyển đổi một địa chỉ stacktrace hex thành một số dòng:

[1] Tìm tệp .dSym bằng cách đi tới XCode-> Organizer, nhấp vào lưu trữ, sau đó nhấp chuột phải vào lưu trữ và cd vào thư mục này (bạn có thể chỉ cần kéo thư mục vào một cửa sổ shell).

[2] cd vào thư mục dSYMs.

[3] chạy lệnh dwarfdump để dịch địa chỉ hex vào một số dòng trong mã của bạn:

dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table' 
0

Thử đặt Triển khai xử lý sau thành NO.

DEPLOYMENT_POSTPROCESSING. Kích hoạt cài đặt này cho biết rằng các tệp nhị phân phải bị tước và chế độ tệp, chủ sở hữu và nhóm thông tin phải được đặt thành giá trị chuẩn.

+0

Thiết lập DEPLOYMENT_POSTPROCESSING thành NO không giải quyết được vấn đề. – Abhinav

1

Strip Debug Symbols During Copy: Nên YES vào cấu hình debug không được xây dựng, vì nó sẽ thổi lên ứng dụng của bạn nhị phân 30-50%

Debug Information Format: Nên DWARF with dSYM File cho tất cả các cấu hình, để có thể symbolicate biểu tượng của bạn từ bất kỳ nhị phân nào.

Bây giờ tôi đoán rằng bạn đang thử điều này trên các bản dựng gỡ lỗi, trên các bản dựng không phải là kết quả mới nhất của lệnh xây dựng trong Xcode. Bạn phải nhớ rằng mỗi lần bạn chạy lệnh xây dựng, một tệp thực thi mới và một gói dSYM mới đang được tạo và gói trước đó bị ghi đè! (Trừ khi bạn sử dụng tính năng Lưu trữ)

Tập lệnh biểu tượng phân tích cú pháp UUID từ báo cáo sự cố của ứng dụng và tìm kiếm gói .app AND .app.dSYM tương ứng thông qua đèn chiếu. Vì vậy, nếu một trong hai tiêu điểm không lập chỉ mục đường dẫn đích hoặc các tệp nhị phân được thay thế bằng một lần chạy xây dựng khác, nó sẽ không thể tượng trưng cho các biểu tượng ứng dụng.

+0

Tôi làm cách nào để thêm một tập hợp các ký hiệu vào XCode, để biểu tượng các nhật ký lỗi tương ứng? –

+0

DSYM của bản dựng đó phải có sẵn và được lập chỉ mục bởi Tiêu điểm. Sau đó, nó sẽ được tìm thấy. Vì thế. ví dụ. bằng cách lưu trữ các phiên bản beta và bản phát hành cửa hàng ứng dụng, bạn nên ổn. Các bản dựng gỡ lỗi không được lưu trữ và mọi bản dựng mới sẽ ghi đè lên dSYM trước đó. Và điều đó sẽ khác, mặc dù bạn không thay đổi một dòng mã. – Kerni

0

Dường như xcode sử dụng tệp .dsym xây dựng lưu trữ cuối cùng để tượng trưng cho nhật ký của bạn (ngay cả khi gỡ lỗi), vì vậy hãy thử lưu trữ ứng dụng của bạn.

Sau khi lưu trữ ứng dụng của bạn Tái biểu tượng báo cáo sự cố của bạn.

Nó làm việc cho tôi.

+0

Điều này không đúng! Quá trình biểu tượng sử dụng Spotlight để tìm kiếm phù hợp với dSYM theo UUID ứng dụng đã tạo báo cáo sự cố. Mỗi bản dựng sẽ dẫn đến UUID mới. Việc lưu trữ đảm bảo rằng bạn sẽ có dSYM chính xác cho các bản dựng đó. Nhưng ví dụ: khi tạo bản dựng gỡ lỗi, mỗi bản dựng mới sẽ ghi đè lên biểu tượng trước đó và biểu tượng của sự cố từ các bản dựng trước đó không thể thực hiện được nữa. – Kerni

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