"RCTBundleURLProvider.h" dosyası bulunamadı - AppDelegate.m


124

React Native uygulamamı XCode'da çalıştırmaya çalışıyorum ve bu hatayı almaya devam ediyorum. Sorunu nasıl çözeceğimi bilemiyorum. Baska öneri?

XCode'daki Hatanın Ekran Görüntüsü:

ekran görüntüsü


Herhangi bir değişiklik yapmadan önce projenizi temizlemenizi ve çalıştırmayı denemenizi öneririm çünkü benim durumumda da aynı şey oluyor. Sadece projemi temizliyorum ve çalıştırıyorum ve işe yarıyor.
bittu

Kesinlikle doğru cevabı değiştirmelisiniz! @mark'ın cevabı doğru cevaptır ve herkes bunun için gelir.
Serdar Değirmenci

Yanıtlar:


64

Düğüm modüllerini silin, ardından çalıştırın npm install(veya daha iyisi iplik) ve her şey indirildikten sonra, react-native upgradesize eski dosyaları şablon olanlarla değiştirme seçeneği sunacak şekilde çalıştırın , böylece yerel bağımlılıklarınızı react-native içinde yeniden bağlarsınız. sorununuzu çözmelisiniz. Elbette projenizi Xcode'da temizlemeyi unutmayın.


5
Çakışmaları otomatik olarak çözdüğü için Git tabanlı yeni yükseltme aracını kullanabilirsiniz. "Npm install -g react-native-git-upgrade" komutunu ve ardından "react-native-git-upgrade" komutunu çalıştırın.
bitsand

2
Önerileri takip ettim ama nogo .. react-native sürüm 0.41.2'ye sahibim bunu 0.41.2 sürümünde düzeltebilecek kimse var mı? Teşekkürler.
joemalski

2
bu da benim için işe yaramadı. xcode 8.2.1 kullanarak ve yerel 0.41.2 tepki ver
Terry Ray

1
Bunu denedim ve bazı önemli proje ayarlarını mahvetti. Bir Eylem Uzantısı oluşturuyorum ve çalıştırdıktan sonra react-native upgradetüm yapı ayarlarım silindi.
Shane O Sullivan

1
'iplik.lock'u sil' dosyasını eklerim, böylece 'npm install' kullanabilirsiniz
user1709076

247

xcode Product-> Scheme-> Manage Scheme-> Manage Scheme, Target'te '+' tıklayarak "React" seçin ve React'in paylaşılmasını ayarlayın.


10
"+" Ya bastım ve seçilecek "Tepki" yok. "Hedef: Uygulamam" ve Ad: Uygulamam "ifadelerini içeren bir iletişim kutusu açılır. Hiçbir şey React veya paylaşma demez.
Pete Alvin

Bu, xcworkspace dosyası oluşturan cocopod'ları yükledikten sonra başıma geldi. Mevcut xcodeproj'umda bir seçenek olarak "React" yoktu, ancak xcworkspace vardı.
AdamG

@PeteAlvin Run "npm install -g react-native-git-upgrade" ve ardından "react-native-git-upgrade" i çalıştırdım ve sonra benim için tepki seçeneğini gösterdi
Paul Fitzgerald


Çok teşekkürler. Bunun neden kabul edilen çözüm olmadığını merak ediyorum.
Gaurav Grover

19

React Native 0.40.0 veya üstünü kullananların tümü için , Üstbilgi İçe Aktarmalarında RN 0.40.0'a göre büyük bir değişiklik vardır ve birçok .h dosyası bulunamadı hatasıyla sonuçlanır. react-native-git-upgradehata ayıklama sırasında benim için sorunu çözdü, ancak sürüm / arşivde derleme başarısız oldu.

Cocoapod'lar ve Xcode 8.2.1 ile RN 0.42.3 kullanıyorum

Bunu tamamen düzeltmek için Xcode> Ürün> Şema> Şemayı Düzenle> seçeneğine gidin.

  1. Yapıyı Paralelleştirmeyi Kaldır görüntü açıklamasını buraya girin
  2. Hedefler'de + düğmesine tıklayın ve React ekleyin görüntü açıklamasını buraya girin
  3. Eklenen React'i Hedefler'deki Listenin en üstüne sürükleyin . görüntü açıklamasını buraya girin

Şimdi projeyi temizleyin ve inşa edin


4
Bu benim için düzeltilmedi, tepki v.0.44.0
Justus

17

Diğer önerilerin hiçbiri hatamı düzeltmiyordu ama bu yaptı.

1 - Pod Dosyası Oluştur

ios/PodfileAşağıdaki içeriklerle react-native uygulamanızın içinde bir dosya oluşturun :

# 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 dosyasını yükleyin

Komutu pod installios klasörünün içinden çalıştırın .

3 - XCode'u Sıfırla

XCode'u yeniden başlatın ve hata gitmiş olmalıdır.


Bu, sorunu bir ölçüde çözer. Ancak öğrendiğim şey, yeni yapılandırmaların derleme sırasına uymadığı ve bu nedenle özel komut dosyalarını almadıklarıydı. Temelde bu, react-native veya react-native + xcode ile ilgili bir sorundur
prog_24

9

XCode'da bir React derlemesi çalıştırmayı ilk denememden sonra bu sorunla karşılaştım ve tek yapmam gereken, hatayı ortadan kaldırmak için gerçekten derlemek ve çalıştırmaktı (bir ekip seçtikten ve uygun provizyondan sonra). Bazen XCode, şeyleri ilk kez derleyip bağlayana kadar gerçekten hata olmayan hataları gösterir.


Ben de. Tuhaf, sadece inşa et ve hata ayıkla, hatalar kayboldu. Neden bilmiyorum
Zhang Buzz

@PaulFitzgerald - Neyin lisansı? Herhangi bir şeye lisans vermem gerektiğine inanmıyorum ...
Dave Cole

8

Benim için çalışan çözüm Reactplanı paylaşmaktır .

React şemasına sahip değilseniz, yenisini oluşturun ve Selecting scheme menu -> Manage Scheme -> + -> choose Reactardından React şemasını Paylaşılan olarak işaretleyin.

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin görüntü açıklamasını buraya girin

Ayrıca, Xcode 10 kullanıyorsanız, File -> Project SettingsEski yapı sistemine gidin ve seçin

görüntü açıklamasını buraya girin


1
teşekkür ederim! Bazen iOS ve Android yerel geliştirme ve birlikte kullanılan araçlar hakkında bilgi sahibi olmadan bu tür sorunları çözmek zor.
qasimalbaqali

1
@ onmyway133 Keşke cevabınızı daha fazla oylayabilseydim! Teşekkür ederim
Mohammad Abbas

7

Bu sorunu aşağıdaki adımları izleyerek çözdüm:

  1. Xcode'da proje kökünü seçin.
  2. Drag React.xcodeprojgelen Librariesprojenin köküne.
  3. Proje adına tıklayın (benim durumumda adı SaleKit)TARGETS
  4. Seç Build Phases
  5. Target DependenciesEkle açılır menüsündeReact
  6. Yeniden oluştur veya yeniden çalıştır

görüntü açıklamasını buraya girin


1
Bu benim için çalıştı! React-native-schemes-manager'ı kullanıyorum ve bu yüzden bunu ekleyene kadar Staging şemam oluşmayacaktı. Daha önce aylarca çalıştı, sonra aniden yeni bir klondan sonra işe yaramadı. Package.json'daki NPM aralıklarımın çok cömert olduğundan şüpheleniyorum.

React.xcodeproj'u Kitaplıklar klasöründen sürüklemeye gerek kalmadan benim için çalıştı.
ErmannoS

6

ReactNative "0.54.2" deki durumum için aşağıdaki çözümle çözdüm

Xcode seçiminde Product->Scheme->Manage Schemes'Projeniz'-tvOS seçeneğinin işaretini kaldırın, Paylaşılmadı olarak ayarlayın


1
Benim için çalışmaları, react-native versiyonu: 0.55.4. Teşekkürler
Adarsh

1
Benim için çalıştı! TvOS hedefini daha önce sildim ve şema olarak kaldırmayı unuttum! => RN 0.56
BigPun86

4

En İyi Çözüm:

Xcode'da projeniz için 'Yapı Ayarları'nı açın,' Başlık Arama Yolu'nu arayın.

Diğer özelliklerin 'evet' veya 'hayır' içerdiği 'Başlık Arama Yolu'nun yanındaki çift tıklayın

Şimdi "Başlık Arama Yolu" na aşağıdakileri ekleyin (Derleme Ayarları altında):

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

Unutma, ikisini de yinelemeli yap.


3

Bu hatayı çözmek npm installiçin proje dizininizde çalıştırın react-native.


3

.xcodeprojPod yüklendikten sonra dosyayı çalıştırıyor olabilirsiniz .

Kapatın ve .xcworkspacedosyayı açın . Benim için çalıştı.


2

Çalıştırdığım projenin temel dizininde:

node_modules/react-native/packager/packager.sh --reset-cache

Hangi sonuçlandı:

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

Başka bir paketleyici işlemi çalışırken paket yöneticisinin çalışmadığını buldum.

İşlemin şununla çalıştığını buldum:

lsof -i :8081

Benden kill 9 ...daha süreç.

Xcode'u kapattıktan sonra şunu çalıştırın:

npm install

Ve Xcode'u yeniden başlattı, bu andan itibaren her şey beklendiği gibi çalışıyor !!


2

Aynı sorunu yaşadım ve RNFIRMessaging.h'yi yukarıdaki sayfanın üstüne yerleştirerek düzelttim . React / RCTBundleURLProvider.h'nin düzelttim.

Öyleyse şöyle görüneceğim:

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

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

2

Takip etmeyi dene:

  1. Temizle ( cmd+ shift+K ).
  2. Core React'i oluşturun - Xcode'da şema olarak React'i seçin ve oluşturun ( cmd+B ).
  3. Başarısız olan kitaplığı oluşturun (örneğin RCTText).
  4. Uygulamanızı oluşturun.

1
Tam olarak nasıl kitaplık oluşturursunuz?
AlxVallejo

2

Ürün-> Şema-> Şemaları Yönet -> + seçeneğine tıklayın. ve ardından react'i paylaşımlı olarak ekleyin. ayrıca proje adınızın da orada olduğundan emin olun.


1

Aynı sorunla karşılaştım. Sonra düğümü sildim. Bu adımları kullanmayı deneyin

  1. Node_modules klasörünü silin - rm -rf node_modules && npm install
  2. Paketleyici önbelleğini sıfırlama - rm -fr $ TMPDIR / react- * veya node_modules / react-native / packager / packager.sh --reset-cache
  3. Bekçi saatlerini temizleyin - bekçi watch-del-all

sonra inşa et ve gör


yup bunu react-native 0.41.2 sürümünde de denedim, hala çalışmıyor ... herhangi bir girdi? Teşekkürler.
joemalski

1

Ben bu konuya benim düzeltme geçiş sonrasında ilanını değiştirmekti React bulundu #import "RCTBundleURLProvider.h"etmek#import <React/RCTBundleURLProvider.h>


1

Benim için değiştiriyorum

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

tarafından

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

AppDelegate.m dosyasında çalıştı.



0

Tüm önerileri denedim ve hiçbiri çalışmadı, repoyu sildim ve tekrar klonladım ve bu benim için çalışıyor, bu yüzden önerim, değişikliklerinizi yedekleyin ve benim için çalışan repoyu tekrar klonlayın.


0

Yukarıda bahsedilen tüm cevapları geçtim.

İşte benim için çalışan çözüm:

AŞAMA 1:

Çalıştırmak:

npm install react-native-fcm --save 

Bu, projenizdeki dizinin node_modules> react-native-fcm altında yapılmasıyla sonuçlanır.

Projenize react-native-fcm ekleyin

ADIM 2:

'$(SRCROOT)/../node_modules/react-native-fcm/ios'Derleme ayarlarında başlık arama yollarına eklemeniz gerekir .

Başlık arama yollarına ekle

Bu 2 adım, hatayı gidermek için benim için çalıştı.

Daha fazla ayrıntı için şu bağlantılardan geçebilirsiniz:

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

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


0

Benim durumum için node_modules'i silip yeniden yükleyemedim ve ayrıca yapamadım react-native-git-updgradeveya react-native upgradeRN- 0.59'da kalmak istediğim için .60 bağımlılıklarım için sorunlara neden oluyor.

Her neyse, benim durumum 'React / RCTBundleURLProvider.h' dosyasını kaçırmamdı. Şemalarımda zaten React mevcuttu. Kütüphaneler dizinimde yoktu. Hedefimin yapı ayarlarını kontrol ettim .

Hedef bağımlılıkları içinde React de vardı.

'React' hedef bağımlılığını sildim ve yeniden ekledim. temizlenmiş derleme klasörleri, yeniden oluşturulmuş proje. işe yaradı.


Önemli olduğundan emin değilim, ancak bir yazım hatası var: react-native-git-updgrade
Josh

0

React Native 0.61 kullanıyorum. Bir Paylaşım Uzantısı oluşturdum ve bu hatayı alıyordum. Değiştirmem gerekiyordu:

#import "RCTBundleURLProvider.h"

ile

#import "React/RCTBundleURLProvider.h"


-2

Projenize giden yolda boşluk olmadığından emin olun. Sadece klasörleri yeniden adlandırmak ve boşlukları silmek benim için sorunu çözüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.