क्या NSLog और अन्य डीबग संदेशों को वास्तविक समय में देखने के लिए रीयल-टाइम कंसोल लॉग देखने का कोई तरीका है, जैसे कि adb logcat?
क्या NSLog और अन्य डीबग संदेशों को वास्तविक समय में देखने के लिए रीयल-टाइम कंसोल लॉग देखने का कोई तरीका है, जैसे कि adb logcat?
जवाबों:
Apple द्वारा तकनीकी Q & A QA1747 डिबगिंग में डॉक्यूमेंट किए गए समाधान Xcode 6 के लिए iOS ऐप्स तैनात हैं :
printबयान केवल लॉग करने के लिए नहीं जाते हैं stdout। NSLogइसके बजाय उपयोग करें । या stdoutकुछ जोड़े गए कोड के साथ किसी फ़ाइल में रीडायरेक्ट करना संभव हो सकता है । क्रैश लॉग किए जाते हैं और "डिवाइस लॉग देखें" बटन का उपयोग करके पहुँचा जा सकता है।
संपादित करें: कृपया @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 पर मेरे ब्लॉग से लिया गया
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
दो विकल्प:
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>"
libimobiledevice। (वायर्ड और वायरलेस लॉग देखना मेरे मैक के साथ 10.11 और iOS 10.2 पर मेरे iPhone पर काम कर रहा है)
brew install --HEAD libimobiledevice। मेरे लिए काम किया।
बस Console.appमैक ओएसएक्स पर एप्लिकेशन खोलें ।
आप इसे नीचे पा सकते हैं Applications> Utilities> Console।
एप्लिकेशन के बाईं ओर आपके सभी कनेक्टेड डिवाइस सूचीबद्ध हैं।
फ्रीवेयर iOS कंसोल की कोशिश करें । बस डाउनलोड करें, लॉन्च करें, अपने डिवाइस को कनेक्ट करें - एट वॉयला!
Console.app[जो macOS पर मूल रूप से जहाज करता है]?
यह वह हो सकता है जो आप खोज रहे हैं: Xcode आयोजक
डिवाइस> टर्मिनल आउटपुट iPhone कॉन्फ़िगरेशन ऐप पर है
आपके पास तीन विकल्प हैं:
तो, 2º एक को प्राप्त करने के लिए आपको सिसिडिया से Syslogd और OpenSSH को स्थापित करने की आवश्यकता है, syslogd जाने के बाद आवश्यक पुनरारंभ करें; अब बस अपने डिवाइस पर एक ssh सत्र खोलें (विंडोज़ पर टर्मिनल या पोटीन के माध्यम से), और "tail -f / var / log / syslog" टाइप करें। और वहां आप जाते हैं, वायरलेस रियल टाइम सिस्टम लॉग।
यदि आप 3º को केवल "डुप 2" के लिए ऑनलाइन खोजना चाहते हैं, तो यह एक सिस्टम कॉल है।
अपने मैक पर सफारी में अपने iOS डिवाइस के कंसोल को देखने के लिए (केवल जाहिरा तौर पर मैक):
सफारी के इंस्पेक्टर आपके iOS डिवाइस के लिए एक कंसोल दिखाते हुए दिखाई देंगे।
Utilities/Console.app?