"RCTBundleURLProvider.h" फ़ाइल नहीं मिली - AppDelegate.m


124

मैं XCode में अपना रिएक्ट नेटिव ऐप चलाने की कोशिश कर रहा हूं और मुझे यह त्रुटि मिलती रहती है। मैं यह पता नहीं लगा सकता कि समस्या को कैसे हल किया जाए। कोई सुझाव?

XCode में त्रुटि का स्क्रीन शॉट:

स्क्रीनशॉट


मैं किसी भी परिवर्तन को लागू करने से पहले सुझाव दूंगा कि आप अपनी परियोजना को साफ करें और इसे चलाने की कोशिश करें क्योंकि मेरे मामले में भी ऐसा ही होता है। मैं सिर्फ अपनी परियोजना को साफ करता हूं और इसे चलाता हूं और यह काम करता है।
बिट्टू

आपको निश्चित रूप से सही उत्तर बदलना चाहिए! @ चिह्न का उत्तर सही है और हर कोई इसके लिए आता है।
सेरदार डेर्मेंकेनी

जवाबों:


64

नोड मॉड्यूल हटाएं, फिर चलाएं npm install(या बेहतर अभी तक यार्न) और सब कुछ डाउनलोड होने के बाद समाप्त हो गया है, react-native upgradeजो आपको टेम्पलेट फ़ाइलों के साथ पुरानी फ़ाइलों को बदलने का विकल्प देना चाहिए, ऐसा करके आप अपनी मूल निर्भरता को प्रतिक्रिया-मूल में पुन: लिंक करते हैं जो अपनी समस्या को ठीक करना चाहिए। बेशक Xcode में अपनी परियोजना को साफ करने के लिए मत भूलना।


5
आप Git के आधार पर नए अपग्रेड टूल का उपयोग कर सकते हैं क्योंकि यह स्वचालित रूप से टकराव को हल करता है। "प्रतिक्रिया-मूल-गिट-अपग्रेड" के बाद "npm इंस्टॉल -g प्रतिक्रिया-देशी-गिट-अपग्रेड" चलाएं।
बिट्संड

2
मैंने सुझावों का पालन किया लेकिन nogo .. मेरे पास प्रतिक्रिया-देशी संस्करण 0.41.2 है क्या कोई है जो संस्करण 0.41.2 पर इसे ठीक करने में सक्षम है? धन्यवाद।
जोमालस्की

2
यह भी मेरे लिए काम नहीं किया। using.२.१ का उपयोग करते हुए और देशी ०.४१.२ पर प्रतिक्रिया करें
टेरी रे

1
मैंने यह कोशिश की, और इसने कुछ महत्वपूर्ण परियोजना सेटिंग्स को उड़ा दिया। मैं एक एक्शन एक्सटेंशन का निर्माण कर रहा हूं, और चलाने के बाद react-native upgradeमेरी सभी बिल्ड सेटिंग्स हटा दी गईं।
शेन ओ सुलिवन

1
मैं 'यार्न को हटाता हूं।' फाइल को जोड़ दूंगा ताकि आप 'npm install' का उपयोग कर सकें
user1709076

247

xcode Product-> स्कीम-> मैनेज स्कीम्स "रिएक्ट" को चुनने के लिए टारगेट पर '+' क्लिक करें और सेट करें रिएक्ट को साझा किया जाता है।


10
मैंने '+' मारा और चयन करने के लिए कोई "प्रतिक्रिया" नहीं है। एक डायलॉग "टारगेट: माईएप" और नाम: माईएप के साथ आता है। कुछ भी प्रतिक्रिया या साझा नहीं कहता है।
पीट एल्विन

यह मुझे cocopods स्थापित करने के बाद हुआ, जिसने एक xcworkspace फ़ाइल बनाई। मेरे मौजूदा xcodeproj में विकल्प के रूप में "रिएक्ट" नहीं था, लेकिन xcworkspace ने किया।
एडम एनजी

@PeteAlvin मैंने रन "npm इंस्टॉल -g रिएक्ट-देशी-गिट-अपग्रेड" के बाद "रिएक्शन-देशी-गिट-अपग्रेड" चलाया और फिर इसने मेरे लिए रिएक्शन ऑप्शन दिखाया
पॉल फिट्जगेराल्ड

1
के बाद मैंने किया कि निर्माण सफल, लेकिन रन उसके बाद Xcode में सक्रिय नहीं है
Lucky_girl

अनेक अनेक धन्यवाद। मुझे आश्चर्य है कि यह स्वीकृत समाधान क्यों नहीं है।
गौरव ग्रोवर

19

उन सभी के लिए जो रिएक्ट नेटिव 0.40.0 या उच्चतर का उपयोग कर रहे हैं , हैडर आयात में आरएन 0.40.0 से एक बड़ा बदलाव है और बहुत सारी .h फाइल में त्रुटियां नहीं मिली हैं। react-native-git-upgradeडिबग में रहते हुए मेरे लिए समस्या को ठीक किया लेकिन रिलीज़ / संग्रह में बिल्ड विफल हो जाता है।

मैं कोकोपोड्स और एक्सकोड 8.2.1 के साथ आरएन 0.42.3 का उपयोग कर रहा हूं

इसे पूरी तरह से ठीक करने के लिए Xcode> Product> Scheme> Edit Scheme> पर जाएं

  1. अन्टिक्क पैरेललाइज़ बिल्ड यहाँ छवि विवरण दर्ज करें
  2. लक्ष्य में + बटन पर क्लिक करें और प्रतिक्रिया जोड़ें यहाँ छवि विवरण दर्ज करें
  3. टारगेट में सूची के शीर्ष पर जोड़े गए रिएक्ट को खींचें । यहाँ छवि विवरण दर्ज करें

अब प्रोजेक्ट को साफ करें और निर्माण करें


4
यह मेरे लिए ठीक नहीं हुआ, v.0.44.0 पर प्रतिक्रिया दें
जस्टस

17

अन्य सुझावों में से कोई भी मेरी त्रुटि को ठीक नहीं कर रहा था लेकिन इसने ऐसा किया।

1 - पॉडफाइल बनाएं

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

2 - पॉडफाइल स्थापित करें

pod installIos फ़ोल्डर के अंदर से कमांड चलाएँ ।

3 - XCode रीसेट करें

XCode को पुनरारंभ करें और त्रुटि को दूर किया जाना चाहिए।


यह कुछ हद तक इस मुद्दे को हल करता है। लेकिन मुझे पता चला कि नए कॉन्फ़िगरेशन बिल्ड ऑर्डर का सम्मान नहीं करते हैं, इसलिए वे कस्टम स्क्रिप्ट नहीं ले रहे हैं। मौलिक रूप से यह एक प्रतिक्रिया-मूल या प्रतिक्रिया-मूल + xcode के साथ एक मुद्दा है
prog_24

9

XCode में रिएक्ट बिल्ड चलाने की मेरी पहली कोशिश के बाद मैं इस समस्या में भाग गया, और मुझे जो करना था, वह वास्तव में बनाया गया था और त्रुटि को दूर करने के लिए चलाया गया था (एक टीम चुनने और उचित प्रावधान करने के बाद)। कभी-कभी XCode त्रुटियों को दिखाता है जो वास्तव में तब तक त्रुटियां नहीं हैं जब तक कि यह पहली बार चीजों को संकलित और लिंक नहीं करता है।


मैं भी। यह अजीब है, बस निर्माण और डीबग करें, त्रुटियां गायब हो गईं। मुझे पता नहीं क्यों।
झांग बज़

@PaFFitzgerald - एक लाइसेंस क्या है? मुझे विश्वास नहीं है कि मुझे कुछ भी लाइसेंस देने की आवश्यकता है ...
डेव कोल

8

समाधान जो मेरे लिए काम करता है वह Reactयोजना को साझा करना है।

यदि आपके पास रिएक्ट स्कीम नहीं है Selecting scheme menu -> Manage Scheme -> + -> choose React, तो एक नया बनाएं , फिर रिएक्ट स्कीम को साझा करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

इसके अलावा, यदि आप Xcode 10 का उपयोग करते हैं, तो File -> Project Settingsलिगेसी बिल्ड सिस्टम पर जाएं और चुनें

यहाँ छवि विवरण दर्ज करें


1
धन्यवाद! आईओएस और एंड्रॉइड के मूल विकास और मुझे लगता है कि जिन उपकरणों के साथ उपयोग किया जाता है, उनके बारे में जानकारी के बिना इस तरह की समस्याओं को ठीक करना कभी-कभी मुश्किल होता है।
qasimalbaqali

1
@ onmyway133 काश मैं आपके उत्तर को और अधिक वोट कर सकता! धन्यवाद
मोहम्मद अब्बास

7

मैंने निम्न चरणों का पालन करके इस समस्या को हल किया:

  1. Xcode में प्रोजेक्ट रूट चुनें।
  2. परियोजना की जड़ React.xcodeprojसे खींचें Libraries
  3. प्रोजेक्ट नाम (मेरे मामले में यह नाम SaleKit) पर क्लिक करेंTARGETS
  4. चुनें Build Phases
  5. Target Dependenciesऐड की गिरावट मेंReact
  6. पुनर्निर्माण या फिर से चलाना

यहाँ छवि विवरण दर्ज करें


1
यह मेरे लिए काम किया! मैं प्रतिक्रिया-मूल-योजनाओं-प्रबंधक का उपयोग करता हूं, और इसलिए यह मेरी स्टेजिंग योजना थी जो तब तक नहीं बनती थी जब तक मैं इसे जोड़ नहीं देता। यह पहले महीनों के लिए काम करता था, फिर अचानक एक ताजा क्लोन के बाद नहीं हुआ। पैकेज में मेरे एनपीएम रेंज पर संदेह करें। जसन बहुत उदार हैं।

मेरे लिए काम किया, पुस्तकालयों फ़ोल्डर से बाहर React.xcodeproj खींचें करने की आवश्यकता के बिना।
ErmannoS

6

ReactNative "0.54.2" में मेरे मामले के लिए, मैंने इसे निम्नलिखित समाधान के साथ हल किया

Xcode चयन में Product->Scheme->Manage Schemes, 'YourProject'-TVOS को अनचेक करें इसे साझा नहीं किया गया


1
मेरे लिए इसका काम करता है, प्रतिक्रिया-देशी वर्जन: 0.55.4। धन्यवाद
आदर्श

1
मेरे लिए काम किया! मैंने पहले टीवीओएस लक्ष्य को हटा दिया है और इसे योजना के रूप में निकालना भूल गया हूं! => RN 0.56
BigPun86

4

सबसे अच्छा उपाय :

Xcode में अपने प्रोजेक्ट के लिए 'Build Settings' खोलें, 'Header Search Path' खोजें।

'हेडर सर्च पाथ' के बगल में डबल क्लिक करें, जहाँ अन्य संपत्तियों में 'हाँ' या 'नहीं' है।

अब "हेडर सर्च पाथ" (बिल्ड सेटिंग्स के तहत) के साथ निम्नलिखित जोड़ें:

$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base

डॉन `टी भूल दोनों को पुनरावर्ती बनाओ।


3

इस त्रुटि को हल npm installकरने के लिए अपनी परियोजना निर्देशिका में चलाएं react-native


3

.xcodeprojपॉड स्थापित होने के बाद आप फ़ाइल चला रहे होंगे ।

इसे बंद करें और .xcworkspaceफ़ाइल खोलें । इसने मेरे लिए काम किया।


2

मेरे द्वारा चलाए जा रहे प्रोजेक्ट के बेस डायर में:

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 शुरू कर दिया, इस क्षण से सब कुछ उम्मीद के मुताबिक काम करता है !!


2

मेरे पास एक ही मुद्दा था और मैंने इसे प्रतिक्रिया / RCTBundleURLProvider.h के ऊपर RNFIRMessaging.h रखकर तय किया।

तो ऐसा लगेगा कि मैं जैसा दिखूंगा:

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

2

निम्नलिखित आज़माएँ:

  1. स्वच्छ ( cmd+ shift+ K)।
  2. कोर रिएक्ट बनाएँ - Xcode में स्कीम के रूप में रिएक्ट चुनें और इसे ( cmd+ B) बनाएँ ।
  3. उस लाइब्रेरी का निर्माण करें जो विफल हो रही है (जैसे RCTText)।
  4. अपना ऐप बनाएं।

1
आप वास्तव में एक पुस्तकालय का निर्माण कैसे करते हैं?
AlxVallejo

2

उत्पाद पर क्लिक करें-> योजना-> योजनाएँ प्रबंधित करें -> +। और फिर साझा के रूप में प्रतिक्रिया जोड़ें। यह भी सुनिश्चित करें कि आपके प्रोजेक्ट का नाम भी है।


1

मैंने एक ही मुद्दे का सामना किया। तब मैंने नोड को हटा दिया है। इन चरणों का उपयोग करने के लिए

  1. नोड_मॉडल फ़ोल्डर को हटाएं - rm -rf node_modules && npm इंस्टॉल करें
  2. पैकेट पैकर कैश
  3. क्लीयर चौकीदार घड़ी - watchman watch-del-all

फिर निर्माण करें और देखें


हाँ, मैं भी प्रतिक्रिया-देशी संस्करण 0.41.2 पर यह कोशिश की अभी भी रूप में अच्छी तरह से काम नहीं कर रहा ... किसी भी जानकारी? धन्यवाद।
जोमाल्स्की

1

मैंने पाया है कि इस मुद्दे पर मेरी ठीक उन्नयन के बाद प्रतिक्रिया की घोषणा को बदलने के लिए था #import "RCTBundleURLProvider.h"करने के लिए#import <React/RCTBundleURLProvider.h>


1

मेरे लिए जगह ले रहा है

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

द्वारा

#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>

AppDelegate.m फ़ाइल में काम किया।



0

मैंने सभी सुझावों की कोशिश की और उनमें से किसी ने भी मैंने डिलीट किए गए रेपो पर काम नहीं किया और इसे फिर से क्लोन किया और मेरे लिए यह काम किया, इसलिए मेरा सुझाव आपके बदलावों को वापस करने के लिए प्रतिबद्ध है और रेपो को फिर से क्लोन करना है जो मेरे लिए काम करते हैं।


0

मैं ऊपर वर्णित सभी उत्तरों से गुजरा हूं।

यहाँ समाधान मेरे लिए काम किया है:

चरण 1:

Daud:

npm install react-native-fcm --save 

यह आपकी परियोजना में निर्देशिका को नोड_मॉड्यूल्स> प्रतिक्रिया-देशी-fcm के तहत बनाने का परिणाम है

अपनी परियोजना में प्रतिक्रिया-देशी-fcm जोड़ें

चरण 2:

आपको '$(SRCROOT)/../node_modules/react-native-fcm/ios'बिल्ड सेटिंग्स में हेडर सर्च पाथ को जोड़ना होगा।

शीर्ष लेख खोज पथ में जोड़ें

त्रुटि को दूर करने के लिए इन 2 चरणों ने मेरे लिए काम किया।

अधिक जानकारी के लिए आप इन लिंक पर जा सकते हैं:

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21


0

मेरे मामले के लिए, मैं नोड_मॉड्यूल्स को पुनः नहीं हटा सका और पुनः स्थापित कर सका और मैं भी नहीं कर सका react-native-git-updgradeया react-native upgradeक्योंकि मैं RN-0.59 पर रहना चाहता था क्योंकि .60 मेरे आश्रितों के लिए समस्या का कारण बनता है।

वैसे भी मेरी स्थिति यह थी कि मुझे 'React / RCTBundleURLProvider.h' फाइल याद आ रही थी। मेरे स्कीमा में पहले से ही रिएक्ट उपलब्ध था। यह मेरे पुस्तकालयों की निर्देशिका में नहीं था। मैंने अपने लक्ष्य की निर्माण सेटिंग्स की जाँच की ।

लक्ष्य निर्भरता के अंदर, मेरे पास वहां भी प्रतिक्रिया थी।

मैंने 'रिएक्ट' लक्ष्य निर्भरता को हटा दिया, फिर जोड़ा। साफ किए गए बिल्ड फोल्डर, री-बिल्ट प्रोजेक्ट। इसने काम कर दिया।


सुनिश्चित नहीं है कि यह मायने रखता है, लेकिन इसमें एक टाइपो है: प्रतिक्रिया-देशी-गिट-अपग्रेड
जोश

0

मैं रिएक्ट नेटिव 0.61 का उपयोग कर रहा हूं। मैंने एक शेयर एक्सटेंशन बनाया और मुझे यह त्रुटि मिल रही थी। मुझे प्रतिस्थापित करने की आवश्यकता है:

#import "RCTBundleURLProvider.h"

साथ में

#import "React/RCTBundleURLProvider.h"

-1

आपको टर्मिनल रन में, मूल निवासी प्रतिक्रिया स्थापित करने की आवश्यकता है

/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


1
यह इस प्रश्न का उत्तर नहीं है
S.Hossein Asadollahi

-2

सुनिश्चित करें कि आपके प्रोजेक्ट का पथ कोई रिक्त स्थान नहीं है। बस फ़ोल्डर का नाम बदलने और रिक्त स्थान को हटाने से मेरे लिए समस्या हल हो जाती है।

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