2012-06-26 30 views
9

Làm cách nào để gỡ lỗi javascript trong Xcode?Gỡ lỗi cho iOS PhoneGap Workflow

Một điều tôi có thể làm là mở trang trong trình duyệt Chrome OS X, nhưng tự nhiên điều này sẽ không hoạt động đối với luồng ứng dụng liên quan đến mã gốc. Có một thủ thuật Xcode thông minh mà tôi đang thiếu.

+0

Điều duy nhất tôi có thể nghĩ đến là gửi thông điệp ghi nhật ký từ Javascript qua Phonegap tới bảng điều khiển Xcode. Khác hơn này, tôi không nghĩ rằng có cách nào khác để gỡ lỗi Javascript trên thiết bị. – nhahtdh

+0

Có, console.log là bạn của bạn :-). Sử dụng Chrome là đặt cược tốt nhất để có được JS của bạn làm việc và sau đó thêm vào các chức năng bản địa – codemonkey

+0

Apple gần đây đã thêm từ xa thiết bị di động gỡ lỗi để kiểm tra web Safari. Đây là một bước tiến lớn trong việc gỡ lỗi ứng dụng iOS PhoneGap. (xem câu trả lời của tôi dưới đây) –

Trả lời

1

Hãy thử sử dụng chúng tôi là một công cụ thực sự tốt để gỡ lỗi các ứng dụng javascript trên thiết bị di động.

http://people.apache.org/~pmuellr/weinre/docs/latest/

Mặc dù bạn sẽ vẫn không thể gỡ lỗi kịch bản từng bước như nó mang lại trên desktop nhưng cung cấp cho rất nhiều chi tiết hơn xcode (~ cho javascript).

16

Với việc phát hành iOS 6, Apple đã phát hành Thanh tra web từ xa cho Safari di động của họ cùng với Mac Safari 6 và điều này là rất lớn. Về cơ bản, bạn có tất cả các tính năng và sức mạnh của Thanh tra Web trong Safari thông thường, cho các ứng dụng dành cho thiết bị di động của bạn, bao gồm cả ứng dụng Phonegap. Tôi đã sử dụng weinre và điều này làm cho nó lỗi thời cho các phiên bản iOS mới hơn (nhưng không phải cho các phiên bản iOS cũ, thiết bị không phải iOS như android hoặc nếu bạn đang sử dụng Windows).

Sau đây là cách nó hoạt động (đòi hỏi một máy Mac, hoặc Xcode 4.5+ chạy iOS 6+ mô phỏng hoặc một thiết bị iOS 6+, và Safari 6+ trên máy Mac của bạn):

trong ios mô phỏng hoặc ios thiết bị của bạn , mở cài đặt -> Safari -> Nâng cao -> Thanh tra Web -> (bật Bật). (điều này được bật theo mặc định trong trình mô phỏng, nhưng kiểm tra giá trị của nó)

Trong Safari, sau khi bạn đã khởi động ứng dụngGap/cordova và được tải & đang chạy, truy cập Trình mô phỏng iPhone hoặc thiết bị của bạn từ menu Phát triển. Bạn có thể bật menu Phát triển trong Tùy chọn nâng cao của Safari nếu chưa có.

Thảo luận nhiều hơn ở phía dưới: http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers

(cũng có thể, nếu bạn đọc về một "giao diện tin bí mật" ở đâu đó, điều này không có tác dụng nữa.)

+1

Tôi làm cách nào để gỡ lỗi quá trình tải? Khi tôi quản lý để mở thanh tra, ứng dụng đã được tải, vì vậy không có cơ hội để thiết lập các điểm ngắt trong mã tải. Bất kỳ ý tưởng? – blurrcat

+1

@blurrcat Xin lỗi tôi đã rời SO một thời gian. Những gì bạn mô tả là một hạn chế của nó, và tôi đã có thử thách này trước đây. Đối với tôi, có vẻ như hai thứ có thể đã hoạt động: Tôi có thể thêm một cảnh báo() trước mã khởi tạo của tôi, về cơ bản tạm dừng thực hiện cho đến khi tôi nhấp OK. Hoặc bằng cách thêm một wrapper setTimeout (...) xung quanh chức năng khởi tạo của tôi trong khi tôi đã gỡ lỗi. Hy vọng rằng sẽ giúp –

+0

Có cảnh báo()! Bạn là thiên tài! – blurrcat

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