2012-02-19 38 views
10

Tôi vừa cập nhật Xcode lên phiên bản 4.3 qua Mac App Store tuần trước và phát hiện ra rằng tôi không còn có thể gỡ lỗi trên thiết bị iOS 3.x nữa. Tôi có iPhone 3G chạy iOS 3.1.3 và iPad thế hệ thứ nhất chạy iOS 3.2.Xcode 4.3 và gỡ lỗi trên thiết bị iOS 3.x

Trên cả hai thiết bị, có vẻ như Xcode 4.3 cài đặt ứng dụng và cố gắng khởi chạy ứng dụng. Ứng dụng hiển thị màn hình giật gân nhưng không bao giờ hoàn thành quá trình khởi động. Không có thông báo lỗi hoặc tin nhắn thuộc bất kỳ loại nào trong cửa sổ đầu ra của trình gỡ lỗi. Đầu mối duy nhất của tôi là khi tôi nhấn nút tạm dừng, tôi có thể thấy rằng thiết bị/Xcode bị kẹt trong hàm sau: addimagesToAllImages dường như liên quan đến DYLD của Apple.

Gỡ lỗi hoạt động tốt trên các thiết bị iOS 5 và đã thực hiện cài đặt Xcode 4.2 trước đó. Tôi đã khởi động lại thiết bị Mac, iOS 3.x của mình mà không có thay đổi về hành vi bao gồm xóa tất cả bộ nhớ cache.

Bất kỳ ai có ý tưởng gì về những gì đang xảy ra? Cảm ơn đã giúp đỡ.

+0

có vẻ như XCode 4.3 buộc Trình biên dịch thành LLVM 3.1 và trình gỡ rối tới lldb không được hỗ trợ trên iOS 3. Bạn đã kiểm tra dự án vẫn đang biên dịch với LLVM GCC chưa? – bontoJR

+0

Cảm ơn Junior B. Tôi đã thay đổi tùy chọn Build "Compiler for C/C++/Objective-C" thành "LLVM GCC 4.2" và vẫn thấy cùng một vấn đề. Có một cài đặt khác mà tôi cần thay đổi để nhận xcode bằng GCC và/hoặc trình gỡ lỗi GDB không? –

+1

Ok, tôi đã tìm ra gợi ý của Junior B về trình gỡ rối. Tôi đã đi đến "Quản lý Đề án" và chọn Đề án tôi đang làm việc trên và nhấp vào "Chỉnh sửa". Trong phần "Chạy", tôi đã thay đổi Trình gỡ lỗi từ LLDB thành GDB. Bây giờ, việc gỡ lỗi trên thiết bị iOS 3.x và 5.x hoạt động tốt. Ngoài ra, tôi rời trình biên dịch sang cài đặt ưa thích của xcode 4.3 của LLVM 3.1. –

Trả lời

13

Ok, tôi đã tìm ra gợi ý của Junior B về trình gỡ rối. Tôi đã đi đến "Quản lý Đề án" và chọn Đề án tôi đang làm việc trên và nhấp vào "Chỉnh sửa". Trong phần "Chạy", tôi đã thay đổi Debugger từ LLVM thành GDB. Bây giờ, việc gỡ lỗi trên thiết bị iOS 3.x và 5.x hoạt động tốt. Ngoài ra, tôi rời trình biên dịch để thiết lập ưa thích của xcode của LLVM 3.1.

Hy vọng điều này sẽ giúp người khác chấp nhận các cài đặt được khuyến nghị của người cố vấn nâng cấp xcode và lỗi gỡ lỗi iOS 3.x của họ.

+0

Unbelievable - Tôi lãng phí một ngày trên lưới này thông qua mã của tôi để tìm ra nơi mà tôi đã làm điều gì đó sai trái. Tôi cảm thấy mệt mỏi vì phải theo dõi tất cả những chiếc gotchas nhỏ này - máy tính phải làm điều này cho bạn! Chắc chắn táo có thể đã đặt trong một kiểm tra và popped lên một cảnh báo nếu biên dịch cho một thiết bị ios3 tư vấn rằng gdb là cần thiết. Cảm ơn Wesley vì giải pháp. – amergin

1

Bạn đã cài đặt thành phần "Hỗ trợ gỡ lỗi thiết bị iOS 3.0 - 3.2.2" chưa?

Từ thanh trình đơn, chọn Xcode> Tùy chọn…, sau đó trong cửa sổ Tùy chọn, hãy chọn Tải xuống> Thành phần. Tìm dòng hỗ trợ iOS 3.0 và nhấp vào nút Cài đặt.

+0

Xin chào Rob, cảm ơn bạn đã phản hồi. Có, iOS 3.0 - 3.2.2 Hỗ trợ gỡ lỗi thiết bị được cài đặt. Chỉ cần cho đá tôi đã cài đặt hỗ trợ gỡ lỗi thiết bị 4.0 cũng như không có thay đổi trong hành vi. –

-2

Hải MyDear Friends,

I am having one simple solution as follows: 

"Xcode -> Preferences -> Debugger -> kiểm tra tự động rõ ràng gỡ lỗi giao diện điều khiển" kết quả xóa giao diện điều khiển mỗi khi bạn chạy ứng dụng Chỉ

0

chuyển từ LLDB sang GDB không đủ cho tôi khi gặp phải vấn đề tương tự. Như tôi đã có một cam kết làm việc lớn hơn trong git, tôi đã tìm ra những thay đổi trong thiết lập dự án Xcode cho phép trong trường hợp của tôi để lỗi. Như vậy tôi có thể giải quyết vấn đề bằng cách loại bỏ tất cả các lần xuất hiện của các dòng sau từ của tôi $ PROJECT.xcodeproj/project.pbxproj

GCC_THUMB_SUPPORT = NO; 

Ngoài ra, tôi hoàn nguyên giá trị từ

LastUpgradeCheck = 0430; 

trở lại

LastUpgradeCheck = 0420; 

Vì tôi đã định cấu hình là 'Được chia sẻ', các cài đặt này cũng được lưu trữ trong thư mục dự án (thư mục con 'xcshareddata' trong thư mục dự án .xcodeproj) và do đó cũng thay đổi v trong git. Một sự thay đổi tôi hoàn nguyên được loại bỏ hai dòng sau trong '$ PROJECT.xcodeproj/xcshareddata/xcschemes/$ PROJECT.xcscheme':

LastUpgradeVersion = "0430" 
ignoresPersistentStateOnLaunch = "NO" 

Một sự thay đổi trong file .xcsheme là rằng các giá trị của 'selectedDebuggerIdentifier' và ' selectedLauncherIdentifier 'đã kết thúc bằng' .GDB 'thay vì'.LLDB ', nhưng điều này thực sự giống như bạn sẽ nhận được bằng cách làm theo câu trả lời được chấp nhận từ Wesley.

Những thay đổi đó đã giải quyết được cho tôi sự cố và tôi có thể gỡ lỗi lại trên iPhone cổ điển đang chạy trên iOS 3.1.3.

Tuy nhiên, tôi đặc biệt khuyên bạn nên sử dụng hệ thống phiên bản như Git (hoặc ít nhất là bản sao lưu cục bộ!) Trước khi áp dụng các chỉnh sửa này với trình chỉnh sửa văn bản yêu thích của bạn.

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