2015-12-18 10 views
7

Vì vậy, điều này đã khiến tôi phát điên nhưng cuối cùng tôi đã phát hiện ra rằng tùy chọn biên dịch bitcode khi tôi xuất ứng dụng của mình để triển khai adhoc đang gây ra tệp biểu tượng gỡ lỗi của tôi (dSYM) và UUID ứng dụng của tôi không khớp với ý nghĩa.Tại sao việc biên dịch lại từ bitcode khiến tôi không thể biểu tượng trong các bản phát hành quảng cáo Xcode và cách khắc phục?

Tắt tùy chọn sửa lỗi này nhưng có cách nào tôi có thể khắc phục sự cố bằng tùy chọn bật không? Tôi đọc mẹo cho tùy chọn đó và nó nói rằng cửa hàng sử dụng phương pháp này. Tôi sẽ không thể đọc nhật ký sự cố từ cửa hàng ứng dụng ngay bây giờ hay đây chỉ là sự cố địa phương?

Đây là những gì tôi nhận được từ một build cũ trước khi phiên bản Xcode này:

dwarfdump --uuid app 
DD25E6C9-... (armv7) 
29F74B2E-... (arm64) 

dwarfdump --uuid app.dsym 
DD25E6C9... (armv7) 
29F74B2E... (arm64) 

Fine. Bây giờ với bitcode trên:

dwarfdump --uuid app 
E7D2BE71-... (armv7) 
5C871FD7-... (arm64) 

dwarfdump --uuid app.dsym 
BC93BCF5-... (armv7) 
3312658C... (arm64) 

Rõ ràng nó sẽ không tượng trưng. Tôi đã thử nó với các tùy chọn tắt và nó phù hợp một lần nữa. Đây có phải là vấn đề với Xcode không tái tạo ký hiệu cho việc xây dựng bitcode mới không? Và tại sao oh tại sao điều này mặc định để ON và không cảnh báo bạn về các bản ghi lỗi của bạn ??

+0

Trong Organizer trong Xcode có một tùy chọn "Tải dSYMs" đó là nghĩa vụ để tải dSYMs cho những chương trình của Apple được xây dựng vào xcarchive. Tuy nhiên, đối với tôi dSYM cho nhị phân vẫn kết thúc mất tích, có thể bạn sẽ có may mắn hơn. – OpenUserX03

Trả lời

0

Khi bitcode được kích hoạt, quá trình XCode lưu trữ sản xuất: 1. arm64 Native hoặc mã ARMv7 2. Bitcode 3. tập tin dSYM (phù hợp với UUID đa mã gốc)

Khi bạn tạo ra một quảng cáo- phân phối hoc và kích hoạt tùy chọn "bitcode compile", XCode cũng biên dịch lại Bitcode thành Native, có thể và thường dẫn đến các UUID khác nhau cho các phần arm64 và armv7. App.dSYM ban đầu không được chạm (và do đó không khớp với các tệp nhị phân mới), thay vào đó các dSYM mới được tạo trong cùng một thư mục xcarchive, chúng có dạng "E2015333-1220-391E-928C-04C32A179EC9.dSYM" và khớp với UUID thực tế của các tệp nhị phân mới được biên dịch.

Câu chuyện không phải lúc nào cũng kết thúc ở đó, các tệp dSYM mới này có thể bị làm mờ (tức là có __hidden # 232434 thay vì tên biểu tượng thực tế). Các ánh xạ để giải mã chúng cũng nằm trong thư mục xcarchive trong một tên thư mục "BCSymbolMaps".

Để de-xáo trộn như một dSYM người ta sẽ sử dụng lệnh sau:

dsymutil --symbol-map <bcSymbol-file> <obfuscated-dsym-file> 
Các vấn đề liên quan