iOS (iPhone, iPad, iPodTouch) रियल-टाइम कंसोल लॉग टर्मिनल देखें


123

क्या NSLog और अन्य डीबग संदेशों को वास्तविक समय में देखने के लिए रीयल-टाइम कंसोल लॉग देखने का कोई तरीका है, जैसे कि adb logcat?


1
क्या आप कह रहे हैं कि आप कुछ IOS के बराबर चाहते हैं Utilities/Console.app?
ब्रायनएच

जवाबों:


155

Apple द्वारा तकनीकी Q & A QA1747 डिबगिंग में डॉक्यूमेंट किए गए समाधान Xcode 6 के लिए iOS ऐप्स तैनात हैं :

  1. विंडो चुनें -> Xcode मेनू से डिवाइस।
  2. बाएं कॉलम में डिवाइस चुनें।
  3. डिवाइस कंसोल को दिखाने के लिए दाएं हाथ पैनल के नीचे बाईं ओर ऊपर-त्रिकोण पर क्लिक करें।

ऊपर त्रिकोण के साथ स्क्रीनशॉट


4
मेरी राय में, यह सबसे आसान उपाय है।
बार्ट वैन कुइक

Xcode 6.4 में, मुझे "डिवाइस लॉग्स देखें" एक बटन दिखाई देता है, लेकिन जो मुझे क्रैश लॉग देता है। मुझे कंसोल लॉग पाने का कोई तरीका नहीं दिखता है।
क्रिस प्रिंस

4
मैंने ऊपर-त्रिकोण आइकन के साथ एक स्क्रीनशॉट जोड़ा है।
मारीआन Marierný

1
printबयान केवल लॉग करने के लिए नहीं जाते हैं stdoutNSLogइसके बजाय उपयोग करें । या stdoutकुछ जोड़े गए कोड के साथ किसी फ़ाइल में रीडायरेक्ट करना संभव हो सकता है । क्रैश लॉग किए जाते हैं और "डिवाइस लॉग देखें" बटन का उपयोग करके पहुँचा जा सकता है।
मारीआन Marierný

3
यह बटन xCode 9.3 में सेवानिवृत्त किया गया है। अब इसमें एक "Console.app" बटन है, जो अधिक समझ में आता है।
rustyMagnet

79

संपादित करें: कृपया @cbowns समाधान का उपयोग करें - deviceconsole iOS9 के साथ संगत है और उपयोग करने में बहुत आसान है।

यह एक ओपन-सोर्स प्रोग्राम है जो टर्मिनल में iDevice के सिस्टम लॉग (टेल-एफ के समान तरीके से) को प्रदर्शित करता है। कोई भागने की आवश्यकता नहीं है, और आउटपुट पूरी तरह से grep'able है, इसलिए आप केवल अपने प्रोग्राम से आउटपुट देखने के लिए फ़िल्टर कर सकते हैं। इस समाधान के बारे में विशेष रूप से अच्छा है कि आप लॉग को देख सकते हैं कि क्या ऐप को XCode से डीबग मोड में लॉन्च किया गया था या नहीं।

ऐसे:

मेरे github खाते से Mac OS X के लिए libimobiledevice बाइनरी को पकड़ो Https://github.com/benvium/libimobiledevice-macosx/zipball/master

यहां दिए गए निर्देशों का पालन करें: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md

अपने डिवाइस से कनेक्ट करें, टर्मिनल खोलें। टाइप करें:

idevicesyslog

अप डिवाइस के सिस्टम लॉग का एक वास्तविक समय प्रदर्शन दिखाता है।

इसके साथ एक कंसोल ऐप है, आप यूनिक्स कमांड्स जैसे कि grep का उपयोग करके लॉग को फ़िल्टर कर सकते हैं

उदाहरण के लिए, किसी विशेष ऐप के सभी लॉग संदेश देखें:

idevicesyslog | grep myappname

Http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html पर मेरे ब्लॉग से लिया गया


4
ऐसा लगता है कि यह आईओएस सिम्युलेटर के साथ काम नहीं करता है। ओह। No device found, is it plugged in?
ashes999

यह iOS10 पर काम नहीं कर सकता है। "usbmuxd_send: त्रुटि -1 भेजते समय: टूटा हुआ पाइप" इसे कैसे हल करें?
विक्टर चोय

2
जब मैं सुडो के बिना विचारधारा चलाता हूं, तो मुझे "सेवा com.apple.syslog_relay शुरू नहीं कर सका" के बारे में एक गुप्त त्रुटि मिलती है। शायद यह इस बात पर निर्भर करता है कि आप इसे या कुछ और कैसे स्थापित करते हैं।
ब्योर्न रोशे

यदि आपके लिए यह काम नहीं कर रहा है तो ऐसा करें ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
अक्षय

77

दो विकल्प:

libimobiledevice homebrew के माध्यम से इंस्टॉल करने योग्य है और बढ़िया काम करता है। इसका idevicesyslogउपकरण इसी तरह काम करता हैdeviceconsole (नीचे) , और यह आपके डिवाइस के syslog (!) को देखने के लिए वायरलेस रूप से समर्थन करता है।

मैंने उस बारे में Tumblr tl पर अधिक लिखा है ;

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

डिवाइस के साथ यूएसबी के माध्यम से जुड़ा हुआ है या स्थानीय वायरलेस नेटवर्क पर उपलब्ध है।

2013 से: deviceconsole rpetrich से ऊपर ideviceconsole की तुलना में काफी कम wacked बाहर समाधान है। मेरा यह कांटा Xcode 5 को बॉक्स से बाहर बनाता और चलाता है, और बिल्ड एक्शन /usr/local/binउपयोग में आसानी के लिए बाइनरी स्थापित करेगा ।

जानकारी के एक अतिरिक्त सहायक बिट के रूप में, मैं इसे निम्नलिखित शैली में उपयोग करता हूं, जिससे मुझे अपने शेल इतिहास में वांछित डिवाइस को ढूंढना आसान हो जाता है और अनावश्यक >लाइनों को हटा देता है जो deviceconsoleप्रिंट करता है।

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

इस पोस्ट के लिए धन्यवाद। यह वास्तव में वही है जिसकी मुझे तलाश थी। मैं अपने GUI मोबाइल LogCat टूल में iOS जोड़ने का इंतजार नहीं कर सकता: github.com/yepher/LogCat
Yepher

2
यह भयानक है - संकलन और चलाने के लिए 2 मिनट का समय लगा। यह स्वीकृत उत्तर होना चाहिए।
निक फरिना

यह एक प्यारा उपाय है। और बस यह जोड़ना चाहता था कि संग्रह अभी भी iOS8 के लिए काम करता है (जैसा कि इसे!)
केली

1
@BugaBuga सुनिश्चित करें कि आप नवीनतम का उपयोग कर रहे हैं libimobiledevice। (वायर्ड और वायरलेस लॉग देखना मेरे मैक के साथ 10.11 और iOS 10.2 पर मेरे iPhone पर काम कर रहा है)
cbowns

1
github.com/libimobiledevice/libimobiledevice/issues/356 । का उपयोग करें: brew install --HEAD libimobiledevice। मेरे लिए काम किया।
rustyMagnet

21

बस Console.appमैक ओएसएक्स पर एप्लिकेशन खोलें ।

आप इसे नीचे पा सकते हैं Applications> Utilities> Console

एप्लिकेशन के बाईं ओर आपके सभी कनेक्टेड डिवाइस सूचीबद्ध हैं।


2
यह एक बेहतरीन उपाय है। मैं मूल रूप से अपने डिवाइस के लिए लाइव / "नाउ" लॉग को "grep" करने के लिए खोज सुविधा का उपयोग कर सकता हूं।
राब

14

फ्रीवेयर iOS कंसोल की कोशिश करें । बस डाउनलोड करें, लॉन्च करें, अपने डिवाइस को कनेक्ट करें - एट वॉयला!


1
यह दिलचस्प है, लेकिन यह मुझे सांत्वना लॉग देखने के लिए कौन सा उपकरण चुनने की अनुमति नहीं देगा अगर मेरे पास मैक से कई जुड़े हैं।
लीलोबेटो

इतना सरल और iOS 12 पर बहुत अच्छा काम करता है, मैं यह जानकर निराश हो जाता हूं कि एक देवता के लिए कितनी सरल लॉगिंग होनी चाहिए और अंत में यहां होना चाहिए। धन्यवाद पीटर
FreeAppl3

क्यों नहीं Console.app[जो macOS पर मूल रूप से जहाज करता है]?
rustyMagnet

6

यह वह हो सकता है जो आप खोज रहे हैं: Xcode आयोजक


हां ... लेकिन किसी कारण से, Xcode आयोजक पर कंसोल कम वास्तविक समय है क्योंकि यह GUI विंडो के अंदर है। मैं डिवाइस पर शेल को सीधे पूंछ के लिए आह्वान करने के तरीके के लिए उम्मीद कर रहा था -f <logfilename>
अरुणाभ दास

आप केवल डिवाइस पर एक शेल प्राप्त कर सकते हैं यदि यह जेलब्रेक है।
प्रोगामर

धन्यवाद progrmr मैं आपके उत्तर को सही उत्तर के रूप में स्वीकार करना चाहूंगा। क्या आप भी जेलब्रेक डिवाइस पर शेल पाने के लिए HowTo के लिए कोई लिंक पोस्ट कर सकते हैं? धन्यवाद!!
अरुणाभ दास

@ArunabhDas कृपया बेन क्लेटन से विचारधारा के उत्तर को स्वीकार किए गए उत्तर को बदलने पर विचार करें। उनका समाधान ठीक वही था जो मैं कोरोनाएसडीके प्लेटफॉर्म का उपयोग करके आईओएस ऐप के साथ इन-ऐप खरीदारी को डिबग करने के लिए देख रहा था। लॉग जानकारी देखने के लिए Xcode आयोजक धीमा और बोझिल था।
एंथनी एफ

5

डिवाइस> टर्मिनल आउटपुट iPhone कॉन्फ़िगरेशन ऐप पर है

यहाँ: http://support.apple.com/kb/DL1465


1
वह लिंक अब मान्य नहीं है। मेरा मानना ​​है कि ऐप का अपडेटेड नाम Apple कन्फ़िगरेटर है और यहाँ उपलब्ध है: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 हालाँकि, यह OS X 10.10+ है।
थॉमसडब्ल्यू

1
@ThomasW: दुर्भाग्य से Apple विन्यासक को डिवाइस लॉग देखने की क्षमता नहीं है क्योंकि iPhone विन्यास उपयोगिता / करता है।
newenglander

1
ऐसा होता है। बस मेनू से स्वचालन उपकरण स्थापित करें। krypted.com/iphone/…
Sune Kjgrgård

2

आपके पास तीन विकल्प हैं:

  • Xcode आयोजक
  • Jailbroken डिवाइस syslogd + openSSH के साथ
  • किसी फ़ाइल में सभी STDERR और STDOUT को रीडायरेक्ट करने के लिए dup2 का उपयोग करें और फिर उस फ़ाइल को "टेल-ऑफ़" (यह अंतिम एक अधिक सिम्युलेटर चीज़ है, क्योंकि आप डिवाइस पर फ़ाइल को पूँछने की एक ही समस्या से चिपके हुए हैं)।

तो, 2º एक को प्राप्त करने के लिए आपको सिसिडिया से Syslogd और OpenSSH को स्थापित करने की आवश्यकता है, syslogd जाने के बाद आवश्यक पुनरारंभ करें; अब बस अपने डिवाइस पर एक ssh सत्र खोलें (विंडोज़ पर टर्मिनल या पोटीन के माध्यम से), और "tail -f / var / log / syslog" टाइप करें। और वहां आप जाते हैं, वायरलेस रियल टाइम सिस्टम लॉग।

यदि आप 3º को केवल "डुप 2" के लिए ऑनलाइन खोजना चाहते हैं, तो यह एक सिस्टम कॉल है।


0

अपने मैक पर सफारी में अपने iOS डिवाइस के कंसोल को देखने के लिए (केवल जाहिरा तौर पर मैक):

  1. अपने iOS डिवाइस पर, सेटिंग> सफारी> एडवांस पर जाएं और वेब इंस्पेक्टर पर स्विच करें
  2. अपने iOS डिवाइस पर, अपने वेब पेज को Safari में लोड करें
  3. अपने डिवाइस को सीधे अपने मैक से कनेक्ट करें
  4. अपने मैक पर, यदि आपको पहले से सफारी का डेवलपर मेनू सक्रिय नहीं मिला है, तो वरीयताएँ> उन्नत पर जाएं, और "मेन्यू बार में मेनू दिखाएँ शो" चुनें।
  5. अपने मैक पर, विकासशील> [अपने iOS डिवाइस का नाम]> [[आपका वेब पेज] पर जाएं

सफारी के इंस्पेक्टर आपके iOS डिवाइस के लिए एक कंसोल दिखाते हुए दिखाई देंगे।


3
हम सफारी कंसोल लॉग देख सकते हैं ऐप का लॉग नहीं।
गामा-प्वाइंट

यह एमुलेटर के लिए काम करता है ... यह एक वास्तविक डिवाइस के साथ कोशिश नहीं की है।
स्केचटैट

0

एक विकल्प के रूप में, आप कंसोल पर पहुंच (सुविधाजनक) के बिना लॉग को देखने के लिए टिकर-लॉग जैसे ऑन-स्क्रीन लॉगिंग टूल का उपयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.