iOS (iPhone, iPad, iPodTouch) gerçek zamanlı konsol günlük terminalini görüntüleyin


123

NSLog ve diğer hata ayıklama mesajlarını gerçek zamanlı olarak görüntülemek için gerçek zamanlı konsol günlüğünü görüntülemenin bir yolu var mı, örneğin adb logcat gibi?


1
IOS eşdeğerini istediğinizi mi söylüyorsunuz Utilities/Console.app?
BryanH

Yanıtlar:


155

Apple tarafından Teknik Soru-Cevap QA1747 Hata Ayıklama'da Xcode 6 için Dağıtılmış iOS Uygulamalarında belgelenen çözüm şudur:

  1. Xcode menüsünden Pencere -> Cihazlar'ı seçin.
  2. Sol sütundan cihazı seçin.
  3. Aygıt konsolunu göstermek için sağ taraftaki panelin sol alt kısmındaki yukarı üçgeni tıklayın.

Yukarı üçgen ile ekran görüntüsü


4
Bence bu en kolay çözüm.
Bart van Kuik

Xcode 6.4'te "Aygıt Günlüklerini Görüntüle" yazan bir düğme görüyorum, ancak bu bana kilitlenme günlükleri veriyor. Konsol günlüğünü almanın bir yolunu göremiyorum.
Chris Prince

4
Yukarı üçgen simgeli bir ekran görüntüsü ekledim.
Marián Černý

1
printdeyimleri günlüğe gitmez, yalnızca stdout. NSLogBunun yerine kullanın . Veya stdoutbazı kodlar eklenmiş bir dosyaya yeniden yönlendirmek mümkün olabilir . Kilitlenmeler günlüğe kaydedilir ve "Aygıt Günlüklerini Görüntüle" düğmesi kullanılarak erişilebilir.
Marián Černý

3
Bu düğme xCode 9.3'te kullanımdan kaldırılmıştır. Artık çok daha mantıklı bir "Console.app" düğmesi var.
rustyMagnet

79

DÜZENLEME: Lütfen @cbowns çözümünü kullanın - cihaz konsolu iOS9 ile uyumludur ve kullanımı çok daha kolaydır.

Bu, iDevice'in sistem günlüğünü Terminal'de görüntüleyen açık kaynaklı bir programdır (tail -F'ye benzer bir şekilde). Jailbreak gerekmez ve çıktı tamamen grep edilebilir olduğundan, yalnızca programınızdan çıktıyı görmek için filtre uygulayabilirsiniz. Bu çözümle ilgili özellikle iyi olan şey, uygulamanın XCode'dan hata ayıklama modunda başlatılıp başlatılmadığını günlüğü görüntüleyebilmenizdir.

Bunu nasıl yapacağınız aşağıda açıklanmıştır:

Mac OS X için libimobiledevice ikili dosyasını https://github.com/benvium/libimobiledevice-macosx/zipball/master adresindeki github hesabımdan edinin.

Buradaki yükleme talimatlarını izleyin: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md

Cihazınızı bağlayın, Terminal.app'yi açın ve şunu yazın:

idevicesyslog

Yukarı, aygıtın sistem günlüğünün gerçek zamanlı bir görüntüsünü açar.

Bir konsol uygulaması olduğundan, grep gibi unix komutlarını kullanarak günlüğü filtreleyebilirsiniz.

Örneğin, belirli bir uygulamadan gelen tüm günlük mesajlarına bakın:

idevicesyslog | grep myappname

Benim blogdan Alınan http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html


4
Görünüşe göre bu iOS simülatörü ile çalışmıyor. Aylak. No device found, is it plugged in?
ashes999

İOS10'da çalışamaz. "usbmuxd_send: Gönderirken -1 hatası: Kırık boru" Nasıl çözülür?
Victor Choy

2
İdevicesys'i sudo olmadan çalıştırdığımda, "com.apple.syslog_relay hizmeti başlatılamadı" ile ilgili şifreli bir hata alıyorum. Belki nasıl kurduğunuza veya başka bir şeye bağlıdır.
Bjorn Roche

brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
İşe yaramazsa

77

İki seçenek:

libimobiledevice homebrew aracılığıyla kurulabilir ve harika çalışıyor. Onun idevicesyslogaracı benzer şekilde çalışır deviceconsole(aşağıda) ve cihazınızın syslog'u inceleyen kablosuz olarak destekler (!)

Tumblr'da bununla ilgili daha fazla yazdım tl; dr:

brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>

USB ile bağlı veya yerel kablosuz ağda bulunan cihaz ile.

2013'ten itibaren: rpetrich'in cihaz konsolu, yukarıdaki idevice konsolundan çok daha az kaçık bir çözümdür. Benim bunun çatal inşa eder ve kutunun dışında Xcode 5 çalışır ve Yapı eylem için ikili kuracaktır /usr/local/binkullanım kolaylığı için.

Ek bir yardımcı bilgi parçası olarak, aşağıdaki stilde kullanıyorum, bu da kabuk geçmişimde istediğim cihazı bulmayı kolaylaştırıyor ve yazdırılan gereksiz >satırları kaldırıyor deviceconsole.

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

Bu gönderi için teşekkürler. Tam olarak aradığım şey buydu. GUI mobil LogCat aracıma iOS eklemek için sabırsızlanıyorum: github.com/yepher/LogCat
Yepher

2
Bu harika - derlemek ve çalıştırmak 2 dakika sürdü. Kabul edilen cevap bu olmalıdır.
Nick Farina

Bu harika bir çözüm. Ve koleksiyonun hala iOS8 için çalıştığını eklemek istedim (olması gerektiği gibi!)
Kelly

1
@BugaBuga En son sürümü kullandığınızdan emin olun libimobiledevice. (Kablolu ve kablosuz günlük görüntüleme,
Mac'imde 10.11'de

1
github.com/libimobiledevice/libimobiledevice/issues/356 . Kullanın: brew install --HEAD libimobiledevice. Benim için çalıştı.
rustyMagnet

21

Console.appMac osX'te Uygulamayı açmanız yeterlidir.

Sen altında bulabilirsiniz Applications> Utilities> Console.

Uygulamanın sol tarafında tüm bağlı cihazlarınız listelenir.


2
Bu harika bir çözüm. Cihazım için canlı / "Şimdi" günlüklerini temelde "grep" etmek için Arama özelliğini kullanabilirim.
Rob

14

Ücretsiz iOS Konsolunu deneyin . Sadece indirin, başlatın, cihazınızı bağlayın - vesaire!


1
ilginç, ancak Mac'e birden fazla bağladıysam konsol günlüğünü hangi cihazın görüntüleyeceğimi seçmeme izin vermiyor.
leolobato

o kadar basit ve iOS 12'de harika çalışıyor, bir geliştirici için günlük tutmanın ne kadar basit olması gerektiğini bilmek beni hayal kırıklığına uğrattı ve burada sona erdi. Teşekkürler Peter
FreeAppl3

neden Console.app[macOS'ta yerel olarak gönderilir ]?
rustyMagnet

6

Aradığınız şey bu olabilir: Xcode Organizer


Evet ... ama bazı nedenlerden dolayı, Xcode Organizer'daki Konsol, bir GUI penceresinin içinde olduğu için daha az gerçek zamanlı. Cihazdaki kabuğu doğrudan kuyruğa çağırmanın bir yolunu umuyordum -f <logfilename>
Arunabh Das

Sadece jailbreak yapılmışsa cihaza bir kabuk alabilirsiniz.
progrmr

Teşekkürler progrmr. Cevabınızı doğru cevap olarak kabul etmek istiyorum. Ayrıca lütfen jailbreak'li bir cihazda bir kabuk almak için HowTo için herhangi bir bağlantı gönderebilir misiniz? Teşekkürler!!
Arunabh Das

@ArunabhDas Lütfen Ben Clayton'ın idevicesyslog yanıtına verilen kabul edilen yanıtı değiştirmeyi düşünün. CoronaSDK platformunu kullanarak bir iOS uygulamasıyla Uygulama İçi Satın Alımlarda hata ayıklamak için aradığım çözüm tam olarak buydu. Xcode Organizer, günlük bilgilerini görüntülemek için yavaş ve kullanışsızdı.
Anthony F

5

cihaz> terminal çıkışı iPhone yapılandırma uygulamasında

burada: http://support.apple.com/kb/DL1465


1
Bu bağlantı artık geçerli değil. Uygulamanın güncellenmiş adının Apple Configurator olduğuna ve burada mevcut olduğuna inanıyorum: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 Ancak, OS X 10.10+.
ThomasW

1
@ThomasW: Maalesef Apple Configurator, iPhone Yapılandırma Yardımcı Programının yaptığı / yaptığı gibi aygıt günlüklerini görüntüleme yeteneğine sahip görünmüyor.
newenglander

1
Olur. Menüden otomasyon araçlarını kurmanız yeterlidir. krypted.com/iphone/…
Sune Kjærgård

2

Üç seçeneğiniz var:

  • Xcode Düzenleyici
  • Syslogd + openSSH ile jailbreak'li cihaz
  • Tüm STDERR ve STDOUT'u bir dosyaya ve ardından o dosyayı "tail -f" ye yeniden yönlendirmek için dup2 kullanın (bu sonuncusu daha çok bir simülatör meselesidir, çünkü cihazda bir dosyanın kuyruğunu takip etmekle aynı problemle karşılaşıyorsunuz).

Bu yüzden, 2º birini almak için, sadece Cydia'dan syslogd ve OpenSSH'yi yüklemeniz gerekir, syslogd'yi çalıştırmak için yeniden başlatmanız gerekir; şimdi cihazınıza bir ssh oturumu açın (Windows üzerinde terminal veya macun yoluyla) ve "tail -f / var / log / syslog" yazın. Ve işte, kablosuz gerçek zamanlı sistem günlüğü.

3º'yi denemek isterseniz sadece çevrimiçi olarak "dup2" araması yapın, bu bir sistem çağrısıdır.


0

İOS aygıtınızın konsolunu Mac'inizdeki Safari'de görüntülemek için (yalnızca Mac görünürde):

  1. İOS cihazınızda Ayarlar> Safari> Gelişmiş'e gidin ve Web Inspector'ı açın.
  2. İOS cihazınızda, web sayfanızı Safari'ye yükleyin
  3. Cihazınızı doğrudan Mac'inize bağlayın
  4. Mac'inizde, Safari'nin Geliştirici menüsünü henüz etkinleştirmediyseniz, Tercihler> Gelişmiş'e gidin ve "Menü çubuğunda Geliştirme menüsünü göster" seçeneğini seçin.
  5. Mac'inizde Geliştirme> [iOS cihazınızın adı]> [web sayfanız] seçeneğine gidin

Safari Denetçisi, iOS cihazınız için bir konsol gösteren görünecektir.


3
safari konsolu günlüğünü görebiliriz, uygulamanın günlüğünü değil.
Gamma-Point

Bu emülatör için çalışıyor ... Gerçek bir cihazla denemedim.
eskiz

0

Alternatif olarak, konsola (uygun) erişime sahip olmadan günlükleri görüntülemek için ticker-log gibi bir ekran günlüğü aracı kullanabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.