मैं XCode में अपना रिएक्ट नेटिव ऐप चलाने की कोशिश कर रहा हूं और मुझे यह त्रुटि मिलती रहती है। मैं यह पता नहीं लगा सकता कि समस्या को कैसे हल किया जाए। कोई सुझाव?
XCode में त्रुटि का स्क्रीन शॉट:
मैं XCode में अपना रिएक्ट नेटिव ऐप चलाने की कोशिश कर रहा हूं और मुझे यह त्रुटि मिलती रहती है। मैं यह पता नहीं लगा सकता कि समस्या को कैसे हल किया जाए। कोई सुझाव?
XCode में त्रुटि का स्क्रीन शॉट:
जवाबों:
नोड मॉड्यूल हटाएं, फिर चलाएं npm install
(या बेहतर अभी तक यार्न) और सब कुछ डाउनलोड होने के बाद समाप्त हो गया है, react-native upgrade
जो आपको टेम्पलेट फ़ाइलों के साथ पुरानी फ़ाइलों को बदलने का विकल्प देना चाहिए, ऐसा करके आप अपनी मूल निर्भरता को प्रतिक्रिया-मूल में पुन: लिंक करते हैं जो अपनी समस्या को ठीक करना चाहिए। बेशक Xcode में अपनी परियोजना को साफ करने के लिए मत भूलना।
react-native upgrade
मेरी सभी बिल्ड सेटिंग्स हटा दी गईं।
xcode Product-> स्कीम-> मैनेज स्कीम्स "रिएक्ट" को चुनने के लिए टारगेट पर '+' क्लिक करें और सेट करें रिएक्ट को साझा किया जाता है।
उन सभी के लिए जो रिएक्ट नेटिव 0.40.0 या उच्चतर का उपयोग कर रहे हैं , हैडर आयात में आरएन 0.40.0 से एक बड़ा बदलाव है और बहुत सारी .h फाइल में त्रुटियां नहीं मिली हैं। react-native-git-upgrade
डिबग में रहते हुए मेरे लिए समस्या को ठीक किया लेकिन रिलीज़ / संग्रह में बिल्ड विफल हो जाता है।
मैं कोकोपोड्स और एक्सकोड 8.2.1 के साथ आरएन 0.42.3 का उपयोग कर रहा हूं
इसे पूरी तरह से ठीक करने के लिए Xcode> Product> Scheme> Edit Scheme> पर जाएं
अब प्रोजेक्ट को साफ करें और निर्माण करें
अन्य सुझावों में से कोई भी मेरी त्रुटि को ठीक नहीं कर रहा था लेकिन इसने ऐसा किया।
ios/Podfile
निम्नलिखित सामग्रियों से अपने प्रतिक्रिया-मूल एप्लिकेशन के अंदर एक फ़ाइल बनाएं :
# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target '<YOUR_APP_NAME>' do
# Fixes required for pod specs to work with rn 0.42
react_native_path = "../node_modules/react-native"
pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
pod "React", :path => react_native_path, :subspecs => [
'Core',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS
# when not using frameworks we can do this instead of including the source files in our project (1/4):
# pod 'react-native-maps', path: '../../'
# pod 'react-native-google-maps', path: '../../' # <~~ if you need GoogleMaps support on iOS
end
pod install
Ios फ़ोल्डर के अंदर से कमांड चलाएँ ।
XCode को पुनरारंभ करें और त्रुटि को दूर किया जाना चाहिए।
XCode में रिएक्ट बिल्ड चलाने की मेरी पहली कोशिश के बाद मैं इस समस्या में भाग गया, और मुझे जो करना था, वह वास्तव में बनाया गया था और त्रुटि को दूर करने के लिए चलाया गया था (एक टीम चुनने और उचित प्रावधान करने के बाद)। कभी-कभी XCode त्रुटियों को दिखाता है जो वास्तव में तब तक त्रुटियां नहीं हैं जब तक कि यह पहली बार चीजों को संकलित और लिंक नहीं करता है।
समाधान जो मेरे लिए काम करता है वह React
योजना को साझा करना है।
यदि आपके पास रिएक्ट स्कीम नहीं है Selecting scheme menu -> Manage Scheme -> + -> choose React
, तो एक नया बनाएं , फिर रिएक्ट स्कीम को साझा करें
इसके अलावा, यदि आप Xcode 10 का उपयोग करते हैं, तो File -> Project Settings
लिगेसी बिल्ड सिस्टम पर जाएं और चुनें
मैंने निम्न चरणों का पालन करके इस समस्या को हल किया:
React.xcodeproj
से खींचें Libraries
।SaleKit
) पर क्लिक करेंTARGETS
Build Phases
Target Dependencies
ऐड की गिरावट मेंReact
ReactNative "0.54.2" में मेरे मामले के लिए, मैंने इसे निम्नलिखित समाधान के साथ हल किया
Xcode चयन में Product->Scheme->Manage Schemes
, 'YourProject'-TVOS को अनचेक करें इसे साझा नहीं किया गया
सबसे अच्छा उपाय :
Xcode में अपने प्रोजेक्ट के लिए 'Build Settings' खोलें, 'Header Search Path' खोजें।
'हेडर सर्च पाथ' के बगल में डबल क्लिक करें, जहाँ अन्य संपत्तियों में 'हाँ' या 'नहीं' है।
अब "हेडर सर्च पाथ" (बिल्ड सेटिंग्स के तहत) के साथ निम्नलिखित जोड़ें:
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
डॉन `टी भूल दोनों को पुनरावर्ती बनाओ।
इस त्रुटि को हल npm install
करने के लिए अपनी परियोजना निर्देशिका में चलाएं react-native
।
मेरे द्वारा चलाए जा रहे प्रोजेक्ट के बेस डायर में:
node_modules/react-native/packager/packager.sh --reset-cache
जिसके परिणामस्वरूप:
Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/..../work/...../react_tutorial/AwesomeProject
Loading dependency graph... ERROR Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:
lsof -i :8081
मैंने पाया कि पैकेज प्रबंधक तब नहीं चल सकता जब कोई अन्य पैकेज़र प्रक्रिया चल रही हो।
मैंने पाया कि इस प्रक्रिया के साथ चल रहा है:
lsof -i :8081
मैं kill 9 ...
इस प्रक्रिया से हूँ ।
मेरे द्वारा Xcode बंद करने के बाद, चलाएँ:
npm install
और फिर से Xcode शुरू कर दिया, इस क्षण से सब कुछ उम्मीद के मुताबिक काम करता है !!
मेरे पास एक ही मुद्दा था और मैंने इसे प्रतिक्रिया / RCTBundleURLProvider.h के ऊपर RNFIRMessaging.h रखकर तय किया।
तो ऐसा लगेगा कि मैं जैसा दिखूंगा:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
निम्नलिखित आज़माएँ:
मैंने एक ही मुद्दे का सामना किया। तब मैंने नोड को हटा दिया है। इन चरणों का उपयोग करने के लिए
फिर निर्माण करें और देखें
मेरे लिए जगह ले रहा है
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
द्वारा
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
AppDelegate.m फ़ाइल में काम किया।
यदि आप दौड़ते हैं npm install
तो आपको इस समस्या का सामना करने की संभावना है।
मैं ऊपर वर्णित सभी उत्तरों से गुजरा हूं।
यहाँ समाधान मेरे लिए काम किया है:
चरण 1:
Daud:
npm install react-native-fcm --save
यह आपकी परियोजना में निर्देशिका को नोड_मॉड्यूल्स> प्रतिक्रिया-देशी-fcm के तहत बनाने का परिणाम है
चरण 2:
आपको '$(SRCROOT)/../node_modules/react-native-fcm/ios'
बिल्ड सेटिंग्स में हेडर सर्च पाथ को जोड़ना होगा।
त्रुटि को दूर करने के लिए इन 2 चरणों ने मेरे लिए काम किया।
अधिक जानकारी के लिए आप इन लिंक पर जा सकते हैं:
मेरे मामले के लिए, मैं नोड_मॉड्यूल्स को पुनः नहीं हटा सका और पुनः स्थापित कर सका और मैं भी नहीं कर सका react-native-git-updgrade
या react-native upgrade
क्योंकि मैं RN-0.59 पर रहना चाहता था क्योंकि .60 मेरे आश्रितों के लिए समस्या का कारण बनता है।
वैसे भी मेरी स्थिति यह थी कि मुझे 'React / RCTBundleURLProvider.h' फाइल याद आ रही थी। मेरे स्कीमा में पहले से ही रिएक्ट उपलब्ध था। यह मेरे पुस्तकालयों की निर्देशिका में नहीं था। मैंने अपने लक्ष्य की निर्माण सेटिंग्स की जाँच की ।
लक्ष्य निर्भरता के अंदर, मेरे पास वहां भी प्रतिक्रिया थी।
मैंने 'रिएक्ट' लक्ष्य निर्भरता को हटा दिया, फिर जोड़ा। साफ किए गए बिल्ड फोल्डर, री-बिल्ट प्रोजेक्ट। इसने काम कर दिया।
आपको टर्मिनल रन में, मूल निवासी प्रतिक्रिया स्थापित करने की आवश्यकता है
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
फिर
brew install node
brew install watchman
npm install -g react-native-cli
स्रोत:
https://facebook.github.io/react-native/docs/getting-started.html
सुनिश्चित करें कि आपके प्रोजेक्ट का पथ कोई रिक्त स्थान नहीं है। बस फ़ोल्डर का नाम बदलने और रिक्त स्थान को हटाने से मेरे लिए समस्या हल हो जाती है।