जब मैं एक प्रतिक्रिया-देशी परियोजना चलाता हूं, तो मुझे एक त्रुटि मिलती है no bundle URL present
, लेकिन मुझे नहीं पता कि मैं क्या गलतियां करता हूं, मैं बहुत उलझन में था।
rm -rf ios/build/
watchman watch-del-all
जब मैं एक प्रतिक्रिया-देशी परियोजना चलाता हूं, तो मुझे एक त्रुटि मिलती है no bundle URL present
, लेकिन मुझे नहीं पता कि मैं क्या गलतियां करता हूं, मैं बहुत उलझन में था।
rm -rf ios/build/
watchman watch-del-all
जवाबों:
त्रुटि No bundle URL present
को हल करें :
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
अब आप एक साधारण एल शॉर्टकट के साथ रिएक्ट नेटिव आईओएस बिल्ड (मौत की सामान्य लाल त्रुटि वाली स्क्रीन के बारे में चिंता किए बिना) चला सकते हैं:
rni
मैं बस इस समस्या में भाग गया (पहली बार रिएक्ट नेटिव के साथ शुरू हुआ)। समस्या तब गायब हो गई जब - जबकि एक आईओएस सिमुलेशन ( react-native run-ios
) चल रहा था - मैं भाग गया npm install
और फिर react-native run-ios
से। टर्मिनल विंडो में, यह दिखाया गया है कि यह बंडल था, और फिर सिम्युलेटर ने स्वागत स्क्रीन दिखाया।
react-native init PropertyFinder
लाइन का उपयोग करने की कोशिश के बाद कच्छा के लिए इस लिंक की जाँच करें npm start
(यह मेरे लिए काम करता है)
================================================== ======================
16.9 के लिए अद्यतन
मेरा पोर्ट 8081 McAfee द्वारा अवरुद्ध किया गया था। एक अलग पोर्ट का उपयोग करना सीधे काम नहीं कर रहा था react-native start --port=8082
औरreact-native run-ios --port=8082
यहां दिए गए लगभग सभी समाधानों की कोशिश की। लेकिन कुछ भी काम नहीं किया।
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
उपाय:
X81 में 8081 की खोज की और उन सभी को 8082 से बदल दिया। फिर ऐप बनाने और चलाने के लिए समान कमांड चलाएं। ऐप आसानी से काम करता है
react-native start --port=8082
react-native run-ios --port=8082
एक ही समस्या थी जब मैंने अपना ऐप बंडल किया था। जांचें कि आपका main.jsbundle
लक्ष्य आपके मुख्य प्रोजेक्ट पर लक्षित है
त्रुटि संदेश में निर्देशानुसार:
Xcode / iOS लाइसेंस के लिए सहमत होने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है, कृपया "sudo xcodebuild -license" चलाएं और फिर इस कमांड को पुनः प्रयास करें।
निम्नलिखित कमांड चलाने पर काम किया गया:
sudo xcodebuild -license
यह समस्या तब होती है जब आप लोकलहोस्ट के माध्यम से असुरक्षित कनेक्शन की अनुमति नहीं देते हैं, या हो सकता है कि आपने http के माध्यम से असुरक्षित कनेक्शन स्वीकार करने का प्रयास किया हो।
इसे ठीक करने के लिए, इस पर जोड़ें info.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhost
Info.plist में अपने अपवाद डोमेन को अपने स्थानीय नेटवर्क पते से बदल दिया था और इसलिए यह हल नहीं हो रहा था। मैंने एक अपवाद डोमेन के रूप में 'लोकलहोस्ट' के लिए एक ब्लॉक जोड़ा और यह काम कर गया।
अपने सिम्युलेटर और टर्मिनल को बंद करें। नया खोलें और अपनी परियोजना पर जाएं, फिर अपनी प्रतिक्रिया को इस तरह से अपग्रेड करें:
react-native upgrade
अंक: RCTFatal में अनंत पुनरावृत्ति जब बंडल निष्पादित करने में विफल रहता है ।
कारण:
ऐसा इसलिए है क्योंकि ऐप सर्वर का पता नहीं लगा सकता (जो कि यूएवी - जावास्क्रिप्ट कोड द्वारा कार्य करता है)।
उपाय:
npm run start
याyarn start
पहलेLoading dependency graph, done.
)react-native run-ios/android
स्पष्टीकरण:
प्रतिक्रियात्मक मूल 2 भागों के साथ आता है:
कमांड बनाएँ:
react-native run-ios/android
देशी भाग का निर्माण करना है तो उपकरणों पर तैनात करना और उपकरणों पर ऐप शुरू करना (सिम्युलेटर / एमुलेटर / वास्तविक डिवाइस)। इसे आमतौर पर समाप्त करने के लिए 3 ~ 4 मिनट लगते थे।
npm run start
या yarn start
जावास्क्रिप्ट भाग बनाने के लिए और देव सर्वर शुरू करने के लिए app करने के लिए बनाया यूआई की सेवा है। यह आमतौर पर खत्म करने के लिए 30 सेकंड लिया।
=> सामान्य रूप से, जावास्क्रिप्ट भाग पहले समाप्त हुआ, फिर मूल भाग बाद में आया। (समय के आधार पर उन्होंने इस्तेमाल किया)।
=> यह केवल पहली बार बिल्ड (ताजा बिल्ड) के लिए सही है।
=> फिर से निर्माण के लिए:
मूल भाग में केवल 10 ~ 15 सेकेंड का समय परिवर्तन की जाँच के लिए लिया गया था और क्योंकि जावास्क्रिप्ट भाग के निर्माण और सेवा करने से पहले देशी भाग => के लिए कोई परिवर्तन नहीं किया गया था। (मुझे यकीन नहीं है कि जावास्क्रिप्ट भाग का पुनर्निर्माण किया गया था या नहीं, लेकिन मूल भाग की तुलना में इसे लंबा समय लगा था)
तो इसीलिए हमारे पास यह मुद्दा था, एप्लिकेशन चला और आवश्यक चीज जो अभी तक मौजूद नहीं थी।
बक्शीश:
react-native run-ios/android
ऑटो आपके लिए देव सर्वर शुरू करेगा।react-native run-ios/android
सही से दौड़ते थे react-native init <app_name>
, तो सब कुछ अच्छा चलता था। (क्योंकि ऑटो स्टार्ट सुविधा और ऊपर दिए गए राज्य के रूप में नए निर्माण के लिए समय लिया गया था)।इस उत्तर पर प्रयुक्त समय मेरी मशीन के सापेक्ष था => दूसरों पर अलग हो सकता है।
इस कोड को चलाने का प्रयास करें:
$ sudo xcodebuild -license
इससे समस्या ठीक हो सकती है। यह मेरे लिए काम करता है।
मेरे पास एक ही त्रुटि थी और केवल Xcode के माध्यम से ऐप को चलाने में सक्षम था। react-native run-ios
काम नहीं किया। समस्या को हल करने के लिए आपको build
फ़ोल्डर को निकालने की आवश्यकता है YOUR_PROJECT/ios/build/
। इसके बाद आपको react-native run-ios
फिर से अपना ऐप चलाने में सक्षम होना चाहिए । उम्मीद है की यह मदद करेगा।
अधिकांश मामलों में यह समस्या तब होती है जब DNS लुकअप / आईपी लुकअप लोकलहोस्ट को खोजने में विफल रहता है।
उपाय :
अपने आदि होस्ट फ़ाइल में लोकलहोस्ट आईपी को जोड़ने का प्रयास करें।
आप नीचे की पंक्तियों को अपनी आदि होस्ट फ़ाइल (/ etc / मेजबान) में जोड़ सकते हैं
127.0.0.1 लोकलहोस्ट
255.255.255.255 ब्रॉडकास्टहोस्ट
:: 1 एल। ocalhost
इस बात की पुष्टि करने के लिए कि आप सफारी पर बंडल यूरल को हिट कर सकते हैं (यदि आप इसे क्रोम में आज़माते हैं तो यह हल हो जाएगा लेकिन सफारी इसे हल करने में सक्षम नहीं होगा)। http: // localhost: 8081 / index.ios.bundle मंच = ios और देव = सच और कम करें झूठी =
सुनिश्चित करें कि आपकी एटीएस सेटिंग्स .plist फ़ाइल में सही हैं।
आप फ़ाइल को / ios / पेनल्टीफ़्रेमप्रोजेक्ट_नामनिर्माता /Info.plist पर पा सकते हैं
लोकलहोस्ट को अपवाद अनुरोध लक्ष्य के रूप में परिभाषित किया जाना चाहिए:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (रिलीज संस्करण पर इसे हटाने के लिए मत भूलना ..)
मेरे लिए यह मुद्दा था जेएस बंडल नहीं बना सकता। Xcode से निर्माण करते समय यह त्रुटि नहीं बताता है, इसलिए आपके लिए यह जानने का कोई तरीका नहीं है। त्रुटि को खोजने के लिए निम्न आदेश चलाएँ।
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
मेरे लिए त्रुटि कुछ गलत PureRenderMixin घटक के साथ थी। जिसका समाधान यहां पाया जा सकता है: https://github.com/facebook/react-native/issues/13078 । मूल रूप से आपको मैन्युअल रूप से react@16.0.0-alpha.3 इंस्टॉल करना होगा। यह इस कमांड को चलाने के माध्यम से किया जा सकता है।
npm i --save react@16.0.0-alpha.3
यह मुद्दा अब हर किसी के लिए हो रहा है क्योंकि प्रतिक्रिया अल्फा के नए संस्करण जारी किए जा रहे हैं (विशेष रूप से अल्फा 5) और वे प्रतिक्रिया-देशी बिल्ड तोड़ रहे हैं।
"plugins": ["transform-decorators-legacy"]
अपने .babelrc फ़ाइल में जोड़ने का प्रयास करें। या कनेक्ट HOC के साथ इसे आज़माएं।
The node type SpreadProperty has been renamed to SpreadElement
और इसके संदर्भ @babel
पुस्तकालय के अंदर है node_modules
, मुझे कुछ भी नहीं मिला है जिसने इसे संबोधित किया है।
समाधान ->
npm start
फिर नया टर्मिनल खोलें और अपने प्रोजेक्ट पथ पर जाएं और फिर
react-native run-ios
इसे मेरे लिए काम करें
यह मेरे लिए क्या हल:
cd
में YOUR_PROJECT/ios
rm -r build
react-native run-ios
फिर से दौड़ोवैकल्पिक रूप से, आप खोजक खोल सकते हैं, फ़ोल्डर को नेविगेट YOUR_PROJECT/ios
और हटा सकते हैं build
।
फिर चला react-native run-ios
।
स्रोत: एंड्रयू बैनक्रॉफ्ट
यह प्रतिक्रिया-देशी v0.42.1 के साथ एक मुद्दा है। सभी टर्मिनल और XCode इंस्टेंस को बंद करने और चलाने की कोशिश करें:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
पहले सिम्युलेटर को बंद करें, फिर इन्हें टर्मिनल पर चलाएं
npm install
react-native run-ios
बस टर्मिनल में चलाएं react-native start
:
cd your react native app directory/ react-native start
यह पैकर को शुरू कर देगा, अब इस टर्मिनल विंडो को बंद न करें, दूसरे टर्मिनल विंडो में अपना प्रोजेक्ट चलाएं। केवल यही चाहता है कि मैं इसे ठीक से काम कर पाया।
मुझे बाईपास करने का सबसे आसान / तेज तरीका मिल गया है, यह है कि सिम्युलेटर (2 x Cmd + Shift + H
) के भीतर ऐप से बाहर निकलें और फिर से लॉन्च करें।
मेरा भी यही मुद्दा था। लेकिन मेरी समस्या यह थी कि मेरा मैक और आईफोन एक ही वाईफाई नेटवर्क में नहीं थे।
इसलिए सुनिश्चित करें कि वे सभी एक ही नेटवर्क में हैं और एक बार फिर से निर्माण करते हैं। यदि यह मामला नहीं है, तो यहां अन्य सदस्यों द्वारा उल्लिखित समाधानों का प्रयास करें।
अपने नेटवर्क प्रॉक्सी की जांच करें, बेहतर इसे बंद करें।
या यू को पैकर सर्वर को बनाए रखने का एक और तरीका खोजना चाहिए
मेरे मैक को रीस्टार्ट करने के बाद यह मेरे साथ भी हुआ है। जब आप सिम्युलेटर पर अपना ऐप चलाते हैं तो एक लॉन्चपैकेजर टर्मिनल विंडो खुलती है। मैंने उस खिड़की को बंद कर दिया और इस प्रक्रिया को समाप्त कर दिया (मैंने सिम्युलेटर को भी बंद कर दिया), फिर से प्रतिक्रिया-देशी रन-आईओएस और सब कुछ ठीक चला।
मेरे मामले में adb
सर्वर को पुनरारंभ करने से समस्या ठीक हो गई थी :adb kill-server && adb start-server
मैं इस मुद्दे को भी मेरे लिए हुआ था ... समस्या यह थी कि पैकर नहीं चल रहा था यह शायद इसलिए लग रहा था क्योंकि मेरा डिफ़ॉल्ट शेल zsh था। एक नया टर्मिनल विंडो खोलने और चलाने के लिए प्रतिक्रिया-देशी टायर .../node_modules/react-native/packager/launchPackager.command
लेकिन यह नहीं चला। मैन्युअल रूप से चल रहा है (और इसे चालू रखते हुए) मेरे लिए यह तय किया।
NSExceptionDomains पर अपनी 'लोकलहोस्ट' कुंजी को देखें
यदि यह मौजूद नहीं है, तो यह त्रुटि का कारण बनता है।
मान लें कि आप उपयोग कर रहे हैं nvm
और नोड के कई संस्करण स्थापित हैं, यहाँ समाधान है:
npm install -g react-native-cli
मेंnode v6.9.5
। node v6.9.5
चलाकर डिफ़ॉल्टnvm alias default 6.9.5
react-native run-ios
समस्या यह है, आपके पास नोड के कई संस्करण स्थापित हैं nvm
और स्थापित करने के लिए react-native-cli
आपने नोड के नवीनतम संस्करण को स्विच या इंस्टॉल किया है, जिसे nvm
अभी तक इंगित करने के लिए डिफ़ॉल्ट नोड के रूप में चिह्नित नहीं किया गया है। जब आप इसे चलाते हैं तो react-native run-ios
एक और नई टर्मिनल विंडो खुलती है जिसमें डिफ़ॉल्ट रूप nvm
से नोड संस्करण को इंगित नहीं किया जाता है जहां आपने इंस्टॉल किया है react-native-cli
। बस उपरोक्त सेटअप का पालन करें, मुझे आशा है कि मदद करनी चाहिए।
सुनिश्चित करें कि आपके पास अपनी परियोजना में .jsbundle है
जोड़ना
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
अपनी प्रतिक्रिया में देशी कोड परियोजना को फिर से खोलने की कोशिश करें
मैं साथ काम कर रहा हूं RN 0.49.5
। मैंने बहुत सारे तरीके आज़माए हैं, लेकिन कोई भी काम नहीं करता है। अंत में मैंने यह काम किया। यह सरल और आसान है।
मुख्य विचार को बदलना localhost
है 127.0.0.1
, लेकिन यह वह जगह नहीं है जहां आरएन आपको बताता है। यह RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) होस्ट है ।
कोड का परिवर्तन:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
यह सिम्युलेटर के लिए ठीक है। यदि यह उपकरण है, तो बस अपने मशीन के आईपी पते को बदल दें।
एक और चीज जो मेरे लिए काम कर रही है, वह है प्रोजेक्ट को xcode में खोलना, और फिर उसे साफ करना और उसका निर्माण करना। आमतौर पर यह पैकेजिंग सर्वर को फिर से चलाता है और समस्या को हल करता है।
निम्न आदेश निष्पादित करें:
killall -9 node
rm -rf ios/build
react-native run-ios
यह launchpackager.command को खोलेगा और एप्लिकेशन आईओएस सिम्युलेटर पर स्थापित होगा