2009-06-11 51 views
14

Có thể thực sự sử dụng trình gỡ lỗi Xcode khi chạy một ứng dụng iPhone trên thiết bị thay vì trình mô phỏng không? tức là, tôi có thể để thiết bị dừng tại điểm ngắt mà tôi đã đặt trong mã của mình và bước qua mã khi nó chạy trên thiết bị không?Gỡ lỗi thiết bị iPhone

EDIT: Tôi nên đề cập rằng tôi là nhà phát triển đã đăng ký với Apple và có chứng chỉ hợp lệ. Trong thực tế, tôi có thể xây dựng và chạy các ứng dụng iPhone trên thiết bị của tôi tốt. Tuy nhiên, ngay cả trong chế độ Debug, ứng dụng của tôi sẽ không dừng lại trên các điểm ngắt hoặc đầu ra cho bàn điều khiển khi tôi chạy nó trên thiết bị của mình. Nếu nó giúp, ứng dụng của tôi sẽ hoạt động bình thường trong chế độ gỡ lỗi (ví dụ: dừng tại điểm ngắt) khi tôi chạy trong trình mô phỏng.

CHỈNH SỬA 2: Tôi đã thử đặt lại điện thoại, xóa hoàn toàn và cài đặt lại Xcode, tạo dự án mới, thay đổi tất cả các cài đặt được đề cập trong câu trả lời trên trang này (cũng như những người khác), làm sạch và xây dựng dự án của tôi Xây dựng và gỡ lỗi ... Nếu tôi nhấp vào Tạm dừng, nó nói "Lỗi từ trình gỡ lỗi: Thoát". :(Có thể tôi sẽ cố gỡ lỗi trên thiết bị này bằng Xcode trên máy tính khác và xem điều gì xảy ra.

EDIT 3: Vâng, tôi đã thử sử dụng một máy tính khác bằng cách cài đặt Xcode mới trong dự án mới Tôi có thể nghi ngờ rằng đó là iPhone hoặc cáp của tôi có lẽ? Tôi muốn nghĩ rằng tôi không phải là không đủ năng lực mà tôi đã bỏ lỡ một cái gì đó rất xấu hổ rõ ràng, nhưng tôi đã tăng gấp đôi và kiểm tra lại tất cả các đề xuất được đề cập ở đây

CHỈNH SỬA 4: CUỐI CÙNG đã gỡ lỗi thiết bị để hoạt động Tôi cảm thấy một thứ gì đó cấp thấp trên thiết bị của tôi đang gây ra sự cố ... không có gì tôi đã làm việc trên hệ thống của mình Tuy nhiên, tôi đã cài đặt Xcode trên một hệ thống khác và gỡ lỗi thiết bị trên cùng một thiết bị (với cùng một cáp) đã hoạt động hoàn hảo. ectly sau đó, thiết bị gỡ lỗi bắt đầu làm việc trên máy tính ban đầu của tôi, dẫn tôi tin rằng một số lá cờ phần cứng lạ đã được hơi say lên và bằng cách nào đó "thiết lập lại" trên máy thứ hai. Trong mọi trường hợp, nó hoạt động ngay bây giờ ... Cảm ơn tất cả sự giúp đỡ. :)

Ngoài ra, tôi không chắc chắn nếu nó tốt hơn để rời khỏi câu hỏi này được trả lời hoặc chọn câu trả lời "hữu ích" nhất ...

+1

Lucas, tôi tin rằng điều chính xác cần làm là chỉnh sửa câu hỏi của bạn để giải thích rõ vấn đề của bạn và bạn tự trả lời câu hỏi mà bạn chấp nhận. Vì vậy, tôi có lẽ sẽ di chuyển ít nhất một số chỉnh sửa cho câu trả lời đó. – cregox

+0

Tôi không thực sự thấy câu hỏi của mình, với các chỉnh sửa của nó, không hoàn toàn rõ ràng. – LucasTizma

+0

xin lỗi, tôi có nghĩa là ngắn hơn. Ngắn hơn rất nhiều. : P - Tiêu đề câu hỏi của bạn được trả lời bởi Lou Franco, nhưng câu hỏi thực sự của bạn là một câu tổng thể và bạn có thể tự trả lời câu trả lời thay vì chỉnh sửa. – cregox

Trả lời

10

Có - chỉ cần sử dụng một thiết bị xây dựng. Bạn phải nhận được giấy chứng nhận và cung cấp nó.

Đây là một mô tả tốt:

http://boga.wordpress.com/2008/07/16/debugging-ipod-provision-profilescertificates/

+0

Tôi nhận ra đó là một điều nhỏ nhặt. Tôi có giấy chứng nhận và hồ sơ cung cấp. Ứng dụng sẽ chạy trên thiết bị của tôi, nhưng nó sẽ không dừng lại ở điểm ngắt hoặc đầu ra cho bàn điều khiển. Và có, tôi đang sử dụng một thiết bị xây dựng trong chế độ gỡ lỗi. Tôi tự hỏi tôi đã làm gì. : - \ Tôi sẽ xem xét liên kết đó và liên hệ lại với bạn. – LucasTizma

+0

Liên kết bạn cung cấp, trong khi thông tin, không áp dụng cho vấn đề cụ thể của tôi. Vui lòng xem câu hỏi ban đầu, mới được chỉnh sửa ở trên. Cảm ơn! – LucasTizma

+1

Có một số lượng lớn các cách mà XCode có thể quyết định bỏ qua các điểm ngắt. Tôi nghĩ rằng tôi đã trải qua ít nhất 3 người trong số họ. http: // stackoverflow.com/questions/64790/why-arent-my-breakpoints-working-in-xcode – Nosredna

1

Vâng, chỉ cần thiết lập dự án của bạn để xây dựng cho các thiết bị.

0

Có. Trình gỡ lỗi và công cụ hiệu suất hoạt động tốt trên thiết bị. Đó là nơi tôi làm hầu hết việc gỡ lỗi của tôi.

1

Nếu bạn cần phải thiết lập gỡ lỗi cho iPhone jailbroken (lên đến 2.2.1) (không trả 99 cho Apple chưa) làm theo các bước sau:

  • Install MobileInstallationPatch cho iPhone của bạn thông qua Cydia (Tab sử dụng Tìm kiếm)

  • Tắt PROVISIONING_PROFILE tại XCode: Đi tới /Developer/Platforms/iPhoneOS.platform/Info.plist, thêm phím tiếp theo:

<key>PROVISIONING_PROFILE_ALLOWED</key> 
<string>NO</string> 
<key>PROVISIONING_PROFILE_REQUIRED</key> 
<string>NO</string> 

Bạn cũng có thể thêm các phím này để dự án bất kỳ đặc biệt tại XCode, Dự án Cài đặt Xây dựng, User-Defined biến.

Quan trọng! Bạn có thể cần phải cài đặt và khởi chạy ít nhất một ứng dụng pháp lý (bất kỳ ứng dụng miễn phí nào) từ App Store trước (trước bước "Xây dựng và Đi"). Nếu không, ứng dụng của bạn sẽ được XCode cài đặt thành công cho thiết bị của bạn nhưng có thể không được khởi chạy. Hãy thử khắc phục sự cố này trước tiên trong trường hợp có sự cố khi khởi chạy ứng dụng.

0

Tùy chọn Xcode> gỡ lỗi bỏ chọn biểu tượng tải lazily

cố định các điểm ngắt không giữ trong vấn đề thiết bị cho tôi.

3

Hãy chắc chắn để bắt đầu gỡ rối bằng cách nhấn "Cmd-Y" ... và không phải là "Cmd-R" :-)

2

Bạn có thể thử mẹo cuối cùng trong trường hợp không có gì có thể giúp đỡ.

Nếu ứng dụng của bạn khởi chạy thành công trên thiết bị của bạn từ XCode nhưng không dừng lại ở điểm ngắt - hãy thử nhấn nút "pause" sau khi bắt đầu ở chế độ gỡ lỗi. Nếu bạn sẽ thấy ứng dụng bị tạm dừng đúng cách (không phản ứng với hành động của người dùng) thêm điểm ngắt mới rồi nhấn "chạy" để tiếp tục thực hiện ứng dụng. Trong một số trường hợp, nó có thể giúp dừng lại ở điểm ngắt mới.

+0

Có vấn đề tương tự với XCode không dừng ở điểm ngắt sau khi nâng cấp từ 4.2 lên 4.3. Điều này làm việc cho tôi. –

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