Có cách nào để xem nhật ký bảng điều khiển thời gian thực để xem NSLog và các thông báo gỡ lỗi khác theo cách thức thời gian thực, chẳng hạn như logcat adb không?
Có cách nào để xem nhật ký bảng điều khiển thời gian thực để xem NSLog và các thông báo gỡ lỗi khác theo cách thức thời gian thực, chẳng hạn như logcat adb không?
Câu trả lời:
Giải pháp được Apple ghi lại trong Hỏi đáp kỹ thuật QA1747 Gỡ lỗi Ứng dụng iOS đã triển khai cho Xcode 6 là:
print
báo cáo không đi đến đăng nhập, chỉ để stdout
. Sử dụng NSLog
thay thế. Hoặc có thể chuyển hướng stdout
đến một tệp có thêm một số mã. Sự cố được ghi lại và có thể được truy cập bằng nút "Xem nhật ký thiết bị".
EDIT: Vui lòng sử dụng giải pháp @cbowns - deviceconsole tương thích với iOS9 và dễ sử dụng hơn nhiều.
Đây là một chương trình nguồn mở hiển thị nhật ký hệ thống của iDevice trong Terminal (theo cách tương tự như đuôi -F). Không cần bẻ khóa và đầu ra hoàn toàn có thể sửa được để bạn chỉ có thể lọc để xem đầu ra từ chương trình của mình. Điều đặc biệt tốt về giải pháp này là bạn có thể xem nhật ký cho dù ứng dụng có được khởi chạy ở chế độ gỡ lỗi từ XCode hay không.
Đây là cách thực hiện:
Lấy nhị phân libimobiledevice cho Mac OS X từ tài khoản github của tôi tại https://github.com/benvium/libimobiledevice-macosx/zipball/master
Thực hiện theo các hướng dẫn cài đặt tại đây: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md
Kết nối thiết bị của bạn, mở Terminal.app và gõ:
idevicesyslog
Xuất hiện một màn hình thời gian thực của nhật ký hệ thống của thiết bị.
Với việc nó là một ứng dụng giao diện điều khiển, bạn có thể lọc nhật ký bằng các lệnh unix, chẳng hạn như grep
Chẳng hạn, xem tất cả các thông điệp tường trình từ một ứng dụng cụ thể:
idevicesyslog | grep myappname
Lấy từ blog của tôi tại http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Hai lựa chọn:
libimobiledevice có thể cài đặt thông qua homebrew và hoạt động rất tốt. Công idevicesyslog
cụ của nó hoạt động tương tự như deviceconsole
(bên dưới) và nó hỗ trợ xem không dây syslog của thiết bị của bạn (!)
Tôi đã viết thêm về điều đó trên Tumblr tl; dr:
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
với thiết bị được kết nối qua USB hoặc có sẵn trên mạng không dây cục bộ.
Từ năm 2013: deviceconsole từ rpetrich là một giải pháp ít bị loại bỏ hơn nhiều so với ideviceconsole ở trên. My ngã ba của nó được xây dựng và chạy trong Xcode 5 out of the box, và hành động xây dựng sẽ cài đặt nhị phân để /usr/local/bin
cho dễ sử dụng.
Là một thông tin hữu ích bổ sung, tôi sử dụng nó theo kiểu sau giúp dễ dàng tìm thấy thiết bị tôi muốn trong lịch sử vỏ của mình và loại bỏ >
các dòng không cần thiết deviceconsole
in ra.
deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
libimobiledevice
. (Xem nhật ký có dây và không dây đang hoạt động với máy Mac của tôi vào ngày 10.11 và iPhone của tôi trên iOS 10.2)
brew install --HEAD libimobiledevice
. Đã làm cho tôi.
Chỉ cần mở Ứng dụng Console.app
trên mac osX.
Bạn có thể tìm thấy nó dưới Applications
> Utilities
> Console
.
Ở phía bên trái của ứng dụng, tất cả các thiết bị được kết nối của bạn được liệt kê.
Hãy dùng thử Bảng điều khiển iOS miễn phí . Chỉ cần tải xuống, khởi chạy, kết nối thiết bị của bạn - et voila!
Console.app
[tàu nào tự nhiên trên macOS]?
Đây có thể là những gì bạn đang tìm kiếm: Xcode Organizer
thiết bị> đầu ra thiết bị đầu cuối là trên ứng dụng cấu hình iPhone
tại đây: http://support.apple.com/kb/DL1465
Bạn có ba lựa chọn:
Vì vậy, để có được 2º bạn chỉ cần cài đặt syslogd và OpenSSH từ Cydia, hãy khởi động lại sau khi yêu cầu syslogd; bây giờ chỉ cần mở một phiên ssh cho thiết bị của bạn (thông qua thiết bị đầu cuối hoặc putty trên windows) và gõ "tail -f / var / log / syslog". Và ở đó bạn đi, nhật ký hệ thống không dây thời gian thực.
Nếu bạn muốn thử 3º chỉ cần tìm kiếm "dup2" trực tuyến, đó là một cuộc gọi hệ thống.
Để xem bảng điều khiển của thiết bị iOS của bạn trong Safari trên máy Mac (chỉ hiển thị trên máy Mac):
Trình kiểm tra của Safari sẽ xuất hiện hiển thị bảng điều khiển cho thiết bị iOS của bạn.
Thay vào đó, bạn có thể sử dụng một công cụ ghi nhật ký trên màn hình như log-log để xem nhật ký mà không cần truy cập (thuận tiện) vào bảng điều khiển.
Utilities/Console.app
?