iOS (iPhone, iPad, iPodTouch) xem thiết bị đầu cuối nhật ký giao diện điều khiển thời gian thực


123

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?


1
Bạn đang nói rằng bạn muốn một số iOS tương đương Utilities/Console.app?
BryanH

Câu trả lời:


155

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à:

  1. Chọn Window -> Thiết bị từ menu Xcode.
  2. Chọn thiết bị ở cột bên trái.
  3. Nhấp vào hình tam giác ở phía dưới bên trái của bảng điều khiển bên phải để hiển thị bảng điều khiển thiết bị.

Ảnh chụp màn hình với hình tam giác


4
Theo tôi, đây là giải pháp dễ nhất.
Bart van Kuik

Trong Xcode 6.4, tôi thấy một nút có nội dung "Xem nhật ký thiết bị", nhưng nó mang lại cho tôi nhật ký sự cố. Tôi không thấy một cách để có được nhật ký giao diện điều khiển.
Hoàng tử Chris

4
Tôi đã thêm một ảnh chụp màn hình với biểu tượng tam giác lên.
Marián Černý

1
printbáo cáo không đi đến đăng nhập, chỉ để stdout. Sử dụng NSLogthay 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ị".
Marián Černý

3
Nút này đã bị loại bỏ trong xCode 9.3. Bây giờ nó có nút "Console.app", điều này có ý nghĩa hơn.
rustyMagnet

79

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


4
Có vẻ như điều này không hoạt động với trình giả lập iOS. Bummer. No device found, is it plugged in?
tro999

Nó không thể hoạt động trên iOS10. "usbmuxd_send: Lỗi -1 khi gửi: Đường ống bị hỏng" Làm thế nào để giải quyết nó?
Victor Choy

2
Khi tôi chạy idevicesys mà không có sudo, tôi gặp một lỗi khó hiểu về "Không thể khởi động dịch vụ com.apple.syslog_relay". Có lẽ nó phụ thuộc vào cách bạn cài đặt nó hoặc một cái gì đó.
Bjorn Roche

Làm điều này nếu nó không hiệu quả với bạn ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet

77

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 idevicesyslogcụ 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/bincho 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 deviceconsolein ra.

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"

Cảm ơn cho bài viết này. Nó chính xác là những gì tôi đang tìm kiếm. Tôi không thể chờ để thêm iOS vào công cụ LogCat di động GUI của mình: github.com/yepher/LogCat
Yepher

2
Điều này thật tuyệt vời - mất 2 phút để biên dịch và chạy. Đây phải là câu trả lời được chấp nhận.
Nick Farina

Đây là một giải pháp đáng yêu. Và chỉ muốn thêm rằng bộ sưu tập vẫn hoạt động cho iOS8 (như thường lệ!)
Kelly

1
@BugaBuga Hãy chắc chắn rằng bạn đang sử dụng mới nhất 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)
cbowns

1
github.com/libimobiledevice/libimobiledevice/issues/356 . Sử dụng : brew install --HEAD libimobiledevice. Đã làm cho tôi.
rustyMagnet

21

Chỉ cần mở Ứng dụng Console.apptrê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ê.


2
Đây là một giải pháp tuyệt vời. Tôi có thể sử dụng tính năng Tìm kiếm để cơ bản "grep" nhật ký trực tiếp / "Hiện tại" cho thiết bị của mình.
Rob

14

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!


1
thật thú vị, nhưng nó sẽ không cho phép tôi chọn thiết bị nào để xem nhật ký giao diện điều khiển nếu tôi có nhiều kết nối với máy Mac.
leolobato

Rất đơn giản và hoạt động tuyệt vời trên iOS 12, tôi trở nên thất vọng khi biết cách đăng nhập đơn giản cho một nhà phát triển và kết thúc tại đây. Cảm ơn Peter
FreeAppl3

Tại sao không Console.app[tàu nào tự nhiên trên macOS]?
rustyMagnet

6

Đây có thể là những gì bạn đang tìm kiếm: Xcode Organizer


Có ... nhưng vì một số lý do, Bảng điều khiển trên Xcode Organizer ít thời gian thực hơn vì nó nằm trong cửa sổ GUI. Tôi đã hy vọng tìm cách gọi trực tiếp vỏ trên thiết bị vào đuôi -f <logfilename>
Arunabh Das

Bạn chỉ có thể nhận được một vỏ trên thiết bị nếu nó đã được jailbreak.
progrmr

Cảm ơn progrmr. Tôi muốn chấp nhận câu trả lời của bạn là câu trả lời chính xác. Bạn cũng có thể vui lòng đăng bất kỳ liên kết nào cho HowTo về việc lấy vỏ trên thiết bị đã bẻ khóa không? Cảm ơn!!
Arunabh Das

@ArunabhDas Vui lòng xem xét việc thay đổi câu trả lời được chấp nhận thành câu trả lời idevicesyslog từ Ben Clayton. Giải pháp của anh ấy chính xác là những gì tôi đang tìm kiếm để gỡ lỗi Mua trong ứng dụng với ứng dụng iOS sử dụng nền tảng CoronaSDK. Trình tổ chức Xcode rất chậm và cồng kềnh khi xem thông tin nhật ký.
Anthony F

5

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


1
Liên kết đó không còn hiệu lực. Tôi tin rằng tên cập nhật của ứng dụng là Apple Configurator và có sẵn ở đây: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 Tuy nhiên, đó là OS X 10.10+.
ThomasW

1
@ThomasW: Thật không may, Bộ cấu hình Apple dường như không có khả năng xem nhật ký thiết bị như Tiện ích cấu hình iPhone thực hiện / đã làm.
newenglander 10/03/2015

1
Nó làm. Chỉ cần cài đặt các công cụ tự động từ menu. krypted.com/iphone/ từ
Sune Kjærgård

2

Bạn có ba lựa chọn:

  • Trình tổ chức Xcode
  • Thiết bị bẻ khóa với syslogd + openSSH
  • Sử dụng dup2 để chuyển hướng tất cả STDERR và STDOUT sang một tệp và sau đó "tail -f" tệp đó (cái cuối cùng này là một thứ giả lập, vì bạn bị mắc kẹt với cùng một vấn đề về đuôi tệp trên thiết bị).

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.


0

Để 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):

  1. Trên thiết bị iOS của bạn, truy cập Cài đặt> Safari> Nâng cao và bật Trình kiểm tra web
  2. Trên thiết bị iOS của bạn, tải trang web của bạn trong Safari
  3. Kết nối thiết bị của bạn trực tiếp với máy Mac của bạn
  4. Trên máy Mac của bạn, nếu bạn chưa kích hoạt menu Nhà phát triển của Safari, hãy đi tới Tùy chọn> Nâng cao và chọn "Hiển thị menu Phát triển trong thanh menu"
  5. Trên máy Mac của bạn, hãy đi tới Phát triển> [tên thiết bị iOS của bạn]> [trang web của bạn]

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.


3
chúng ta có thể thấy nhật ký bảng điều khiển safari chứ không phải nhật ký của ứng dụng.
Điểm Gamma

Điều này không hoạt động cho trình giả lập ... Không thử nó với một thiết bị thực tế.
phác thảo

0

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.