ऐप सिम्युलेटर में ऐप चलने के दौरान कोई व्यक्ति रिएक्ट नेटिव के साथ अपने रिएक्ट कोड को कैसे डिबग करता है?
ऐप सिम्युलेटर में ऐप चलने के दौरान कोई व्यक्ति रिएक्ट नेटिव के साथ अपने रिएक्ट कोड को कैसे डिबग करता है?
जवाबों:
Cmd+Dसिम्युलेटर के भीतर से। यह Chrome को पॉपअप करेगा और वहां से आप डेवलपर टूल का उपयोग कर सकते हैं।
संपादित करें:
यह अब हेल्प डॉक्स में जुड़ा हुआ है ।
Cmd+M
ओएस एक्स और एंड्रॉइड पर होगा
अपनी प्रतिक्रिया एप्लिकेशन के जावास्क्रिप्ट कोड को डीबग करने के लिए निम्न कार्य करें:
Command + D
और एक वेबपेज http: // localhost: 8081 / debugger-ui पर खुलना चाहिए । (अभी के लिए Chrome) या का उपयोग करेंShake Gesture
Command + Option + I
Chrome डेवलपर टूल खोलने के लिए दबाएं , या इसे View
-> Developer
-> के माध्यम से खोलें Developer Tools
।Google Chrome के लिए रिएक्टर डेवलपर टूल एक्सटेंशन इंस्टॉल करें । यदि आप React
डेवलपर टूल के खुले होने पर टैब का चयन करते हैं तो यह आपको पदानुक्रम को नेविगेट करने की अनुमति देगा ।
लाइव रीलोड को सक्रिय करने के लिए निम्नलिखित कार्य करें:
Control + Command + Z
।Enable/Disable Live Reload
, Reload
और Enable/Disable Debugging
विकल्प।एंड्रॉइड ऐप के लिए, यदि आप Genymotion का उपयोग कर रहे हैं, तो आप मेनू को दबाकर टॉगल कर सकते हैं CMD + m
, लेकिन आपको ऐसा करके मेनू में सक्षम करना पड़ सकता है।
CMD + m
पर क्लिक करके इसे सक्षम करेंdebug in chrome
साथ बदल दिया गया है start debug remotely
।
cmd + m
ctrl + m
start debug remotely
अन्य उत्तरों के अलावा। आप डीबगर कथन का उपयोग करके प्रतिक्रिया-मूलक डीबग कर सकते हैं
उदाहरण:
debugger; //breaks execution
काम करने के लिए आपके क्रोम देव उपकरण खुले होने चाहिए
यदि आप विंडोज पर एंड्रॉइड डिवाइस का उपयोग करके डिबग करना चाहते हैं, तो बस एक कमांड प्रॉम्प्ट खोलें फिर टाइप करें (सुनिश्चित करें कि आपका एडीबी ठीक से काम कर रहा है)
adb shell input keyevent 82
यह छवि की तरह एक स्क्रीन संकेत देगा
फिर सेलेक्ट करें
debug JS Remotely
यह स्वचालित रूप से एक नई विंडो खोल देगा। खुले निरीक्षण तत्व को खोलें या कंसोल के लिए F12 दबाएं।
इस कार्यक्रम का प्रयास करें: https://github.com/jhen0409/react-native-debugger
पर काम करता है: windows
, osx
और linux
।
यह समर्थन करता है: react native
औरredux
आप वर्चुअल घटक ट्री का भी निरीक्षण कर सकते हैं और उन शैलियों को संशोधित कर सकते हैं जो ऐप में परिलक्षित होती हैं।
console.log(url)
, लेकिन मुझे पता नहीं है कि आउटपुट कहाँ है।
cmd ⌘+ Dअजीब तरह से मेरे लिए काम नहीं किया। IOS सिम्युलेटर में ctrl+ cmd ⌘+ दबाने से Zमेरे लिए डीबगिंग ब्राउज़र विंडो बंद हो गई।
यह वह स्क्रीन है जो पॉप अप करता है:
डेबियन 8 (जेसी) पर डीबगिंग प्रतिक्रिया-देशी 0.40.0 http: // localhost: 8081 / debugger-ui क्रोमियम या फायरबग में नेविगेट करके किया जा सकता है, जबकि आपका ऐप एंड्रॉइड सिम्युलेटर में चल रहा है। इन-ऐप डेवलपर मेनू तक पहुंचने के लिए, निम्न टर्मिनल को किसी अन्य टर्मिनल विंडो में चलाएं, जैसा कि यहां बताया गया है :
adb shell input keyevent 82
मेरे पास पिछले उत्तरों पर टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है जो महान हैं। :) यहाँ कुछ तरीके हैं कि मैं कैसे प्रतिक्रिया-मूल एप्लिकेशन विकसित करते समय डिबगिंग कर रहा हूं।
लाइव लोडिंग
प्रतिक्रिया-मूलक R + R कुंजियों के साथ आपके परिवर्तनों को देखना आसान बनाता है या यहां तक कि लाइव पुनः लोड करने में सक्षम बनाता है और चौकीदार नवीनतम परिवर्तनों के साथ सिम्युलेटर को "ताज़ा" करेगा। यदि आपको कोई त्रुटि मिलती है, तो आप उस लाल स्क्रीन से लाइन नंबर से एक सुराग प्राप्त कर सकते हैं। पूर्ववत की एक जोड़ी आपको काम करने की स्थिति में वापस लाएगी और फिर से शुरू करेगी।
console.log('yeah, seriously.')
मैं खुद को इस कार्यक्रम को चलाने देना पसंद करता हूं और debugger
ब्रेक प्वाइंट को जोड़ने की तुलना में कुछ संकेत देता हूं । (कठिन डिबगर तब उपयोगी होता है जब बाहरी पैकेज / लाइब्रेरीज़ के साथ काम करने की कोशिश की जाती है और यह स्वतः पूर्णता के साथ आता है, इसलिए आप जानते हैं कि आप अन्य किन तरीकों का उपयोग कर सकते हैं।)
Enable Chrome Debugging
debugger;
अपने कार्यक्रम में विराम बिंदु के साथ ।
वैसे यह आपके द्वारा की गई त्रुटियों के प्रकार और डिबग करने की आपकी प्राथमिकताओं पर निर्भर करता है। अधिकांश के लिए undefined is not an object (evaluating 'something.something')
, विधि 1 और 2 मेरे लिए काफी अच्छी होगी।
जबकि अन्य डेवलपर्स द्वारा लिखित बाहरी पुस्तकालयों या पैकेजों से निपटने के लिए डिबग करने के लिए अधिक प्रयास की आवश्यकता होगी, इसलिए एक अच्छा उपकरण Chrome Debugging
कभी-कभी यह प्रतिक्रिया-देशी प्लेटफॉर्म से ही आ रहा है इसलिए प्रतिक्रिया-मूल मुद्दों के लिए गुगली करना निश्चित रूप से मदद करेगा।
उम्मीद है कि इससे वहां किसी को मदद मिलेगी।
adb logcat *:S ReactNative:V ReactNativeJS:V
Android लॉग के लिए टर्मिनल में इसे चलाएं।
Android के लिए: मेनू को प्रकट करने के लिए Ctrl + M (एमुलेटर) या फोन (इन डिवाइस) को हिलाएं।
IOS के लिए: Cmd + D या फोन को मेन्यू प्रकट करने के लिए हिलाएं
सुनिश्चित करें कि आपके पास क्रोम है।
सामने आए मेनू में डीबग जेएस रिमोटली ऑप्शन चुनें।
Chrome को स्वचालित रूप से लोकलहोस्ट पर खोला जाएगा: 8081 / डिबगर-यूआई। आप इस लिंक के साथ मैन्युअल रूप से डीबगर पर भी जा सकते हैं।
कंसोल को प्रकट करता है और आप लॉग को नोट किया जा सकता है।
मेरे लिए React-Native पर डिबग करने का सबसे अच्छा तरीका "Reactotron" का उपयोग करना है ।
Reactotron स्थापित करें और फिर उन्हें अपने पैकेज में जोड़ें। Json:
"reactotron-apisauce": "^1.1.2",
"reactotron-react-native-under-37": "^1.1.2",
"reactotron-redux": "^1.1.2",
अब, यह आपके कोड में लॉग इन करने की बात है। उदाहरण के लिए:console.tron.log('debug')
शीर्ष मेनू के स्रोतों पर जाएं और दाहिने हाथ की ओर फ़ाइल एक्सप्लोरर में अपने जेएस वर्ग फ़ाइल को ढूंढें
आप व्यूप्वाइंट पर ब्रेकपॉइंट लगा सकते हैं और कोड को डिबग कर सकते हैं जैसा कि आप इमेज में देख सकते हैं।
एंड्रॉइड ऐप के लिए। Ctrl + M का चयन करें डिबग जेएस दूरस्थ रूप से यह क्रोम http: // localhost: 8081 / debugger-ui के साथ क्रोम में एक नई विंडो खोलेगा । अब आप क्रोम ब्राउज़र में ऐप को डीबग कर सकते हैं
यदि आप डिबगिंग को डिफ़ॉल्ट रूप से सक्षम करना चाहते हैं:
import { NativeModules } from 'react-native';
if (__DEV__) {
NativeModules.DevSettings.setIsDebuggingRemotely(true)
}
Android पर यह काम करने के लिए:
npm install --save react-native-devsettings-android
react-native link react-native-devsettings-android
संदर्भ: डिफ़ॉल्ट रूप से सक्षम "डीबग जेएस दूर" के साथ एक प्रतिक्रियाशील मूल एप्लिकेशन लॉन्च करें
बहुत सरल बस दो आज्ञा
For IOS $ react-native log-ios
For Android $ react-native log-android
मान लें कि आप इस मेनू को एंड्रॉइड एमुलेटर पर दिखाना चाहते हैं
फिर, ⌘+m
मैक पर एंड्रॉइड एमुलेटर पर इस देव सेटिंग्स डायलॉग को पॉप अप करने का प्रयास करें।
यदि यह दिखाई नहीं देता है तो जाएं AVD > (click the pen to edit your emulator configuration) > advanced settings > check the enable keyboard input box
।
और फिर पुनः प्रयास करें ⌘+m
।
यदि यह अभी भी नहीं दिखता है, तो चल रहे एमुलेटर सेटिंग्स पर जाएं और Send keyboard shortcuts to
कॉम्बोक्स / ड्रॉपडाउन पर फिर Emulator controls (default)
विकल्प चुनें।
और फिर पुनः प्रयास करें ⌘+m
।
मुझे आशा है कि यह मदद करता है, इसने मेरे लिए काम किया।
यदि आप Redux का उपयोग कर रहे हैं, तो मैं अत्यधिक प्रतिक्रियाशील डिबगर की सलाह देता हूं। इसमें क्रोम devtools शामिल हैं, लेकिन इसमें Redux devtools और React devtools भी हैं।
Redux Devtools : इससे आप अपने कार्यों को देख सकते हैं, और उनके माध्यम से आगे और पीछे कदम रख सकते हैं। यह आपको अपने Redux स्टोर को देखने की भी अनुमति देता है और प्रत्येक क्रिया के लिए अद्यतन स्थिति के साथ पिछली स्थिति को स्वचालित रूप से अलग करने की सुविधा है, इसलिए आप देख सकते हैं कि जैसे ही आप क्रियाओं की एक श्रृंखला के माध्यम से आगे और पीछे बढ़ते हैं।
रिएक्ट देवटूल : यह आपको एक निश्चित घटक का निरीक्षण करने की अनुमति देता है, अर्थात् यह सभी के रूप में अच्छी तरह से यह घटक राज्य है। यदि आपके पास घटक राज्य का एक टुकड़ा है जो एक बूलियन है, तो यह आपको इसे चालू करने के लिए क्लिक करने देता है और देखता है कि जब यह बदलता है तो आपका ऐप कैसे प्रतिक्रिया करता है। महान विशेषता।
Chrome Devtools आपको अपने सभी कंसोल आउटपुट को देखने, ब्रेकपॉइंट का उपयोग करने, डीबगर पर रोकने की अनुमति देता है; आदि मानक डिबगिंग सुविधाएँ। यदि आप उस क्षेत्र पर राइट क्लिक करते हैं जहां आपके कार्य Redux Devtools में सूचीबद्ध हैं और 'नेटवर्क निरीक्षण की अनुमति दें' का चयन करें, तो आप Chrome Devtools के नेटवर्क टैब में अपने API कॉल का निरीक्षण कर सकते हैं जो मीठा है।
निष्कर्ष में इन सभी एक जगह में शानदार है! यदि आपको उनमें से एक की आवश्यकता नहीं है, तो आप इसे चालू / बंद कर सकते हैं। रिएक्टिव नेटिव डीबगर प्राप्त करें और जीवन का आनंद लें।
यह देशी डिबगर एप्लिकेशन का उपयोग करने का वैकल्पिक तरीका है।
आप नीचे दिए गए लिंक का उपयोग करके एप्लिकेशन डाउनलोड कर सकते हैं यह स्रोत कोड के साथ-साथ Redux स्टोर के प्रबंधन के लिए बहुत अच्छा अनुप्रयोग है।
साथ ही अब एक दिन आप नीचे दिए गए लिंक का सीधे इस्तेमाल कर सकते हैं।
यदि आप एमुलेटर उपयोग Ctrl+ Mऔर सिम्युलेटर Cmd+ का उपयोग कर रहे हैंD
दूर से - डीबग जेएस पर क्लिक करें
Google Chrome कंसोल पर जाता है
एक बहुत अच्छा डिबगर नाम Reactotron भी है। https://github.com/infinitered/reactotron
आपको कुछ डेटा मान देखने के लिए डीबग मोड में होने की आवश्यकता नहीं है और बहुत अधिक विकल्प है।
जाओ एक नज़र है कि वास्तव में उपयोगी है। ;)
रिएक्ट-नेटिव डिबगिंग में बहुत आसान है।
सीएमडी + डी
ctrl + cmd + z (सिम्युलेटर के लिए)
स्पर्श के साथ डिवाइस हिलाएं (सुनिश्चित करें कि आपका डेवलपर विकल्प सक्षम है)
चरण 1: वह
स्थान debugger
जहाँ आप कभी स्क्रिप्ट को रोकना चाहते हैं, जैसे:
async saveItem(item, selectedValue) {
debugger
try {
await AsyncStorage.setItem(item, selectedValue);
}
catch (error) {
console.error('AsyncStorage error: ' + error.message);
}
}
कोड के इस ब्लॉक पर नियंत्रण आने पर यह डिबगर को रोक देगा।
चरण 2:
प्रेस Cmd+D
पर ios एमुलेटर और Cmd+M
पर एंड्रॉयड सिम्युलेटर । यदि आप वास्तविक डिवाइस हैं, तो डिवाइस को देव मेनू खोलने के लिए हिलाएं, यदि आप डिवाइस को हिलाना नहीं चाहते हैं तो इस ब्लॉग का अनुसरण करें
चरण 3:
चयन करें Enable Remote JS Debugging
, यह क्रोम खोलेगा
चरण 4:
चुनेंDeveloper Tools.
चरण 5:Sources
जहाँ भी आपने debugger
अपने कोड में लिखा
है, आपका डिबगर टैब में रुका हुआ है । कंसोल पर जाएं और कोई भी पैरामीटर जिसे आप डिबग करना चाहते हैं (जो कोड ब्लॉक में मौजूद हैं) जैसे:
अगले डिबगर बिंदु पर जाने के लिए फिर से सूत्रों पर जाएं -> फिर से शुरू करें स्क्रिप्ट निष्पादन बटन (राइट कॉर्नर ब्लू बटन) पर क्लिक करें
डिबगर रखें, जहाँ भी आप स्क्रिप्ट को रोकना चाहते हैं।
डिबगिंग का आनंद लें !!
आप अपने एप्लिकेशन के iOS संस्करण को डीबग करने के लिए "डिबग जेएस रिमोटली" को सक्षम किए बिना सफारी का उपयोग कर सकते हैं, बस निम्नलिखित चरणों का पालन करें:
1. Enable Develop menu in Safari: Preferences → Advanced → Select "Show Develop menu in menu bar"
2. Select your app's JSContext: Develop → {Your Simulator} → Automatically Show Web Inspector for JS JSContext
3. Safari's Web Inspector should open which has a Console and a Debugger
सबसे पहले अपने आईओएस सिम्युलेटर में, यदि आप [कमांड + डी] कुंजी दबाते हैं तो आप इस स्क्रीन को देख सकते हैं।
फिर डीबग जेएस रिमोटली बटन पर क्लिक करें।
आप इस तरह रिएक्ट नेटिव डीबगर पेज देख सकते हैं।
और फिर अपना निरीक्षक [f12] खोलें, और कंसोल टैब डीबग करें पर जाएँ! :)
फ़्लिपर एंड्रॉइड और आईओएस मोबाइल डीबगिंग टूल हैं, जो रिएक्शन नेटिव में डीबग मोड का उपयोग किए बिना होता है।
RN 0.62 (इस लिंक को देखें ) के बाद से, Flipper को डिफ़ॉल्ट प्रोजेक्ट के साथ आरंभ किया गया है।
Flipper में डीबगिंग के लिए कुछ प्लगइन्स हैं। प्लगइन को शामिल Layout
, Network
,Shared preferences
फ्लिपर का सबसे बड़ा लाभ कई प्लगइन्स भी नहीं हैं, लेकिन आप एंड्रॉइड / आईओएस डिवाइस कंसोल को डीबगिंग भी आसानी से देख सकते हैं।
Flipper आपको क्रैश या नेटवर्क अस्वीकृति के बारे में भी सचेत करता है।
लेआउट प्लगइन में एक्सेसिबिलिटी मोड और लक्ष्य मोड शामिल हैं।
आप अपने आवेदन में कच्चा नेटवर्क अनुरोध / प्रतिक्रिया भी देख सकते हैं।