File "RCTBundleURLProvider.h" tidak ditemukan - AppDelegate.m

124

Saya mencoba menjalankan aplikasi React Native saya di XCode dan saya terus mendapatkan kesalahan ini. Saya tidak tahu bagaimana menyelesaikan masalah ini. Ada saran?

Tangkapan Layar Kesalahan di XCode:

tangkapan layar

FilosoferKing
sumber
Saya akan menyarankan sebelum menerapkan perubahan apa pun, cukup bersihkan proyek Anda dan coba jalankan karena hal yang sama terjadi dalam kasus saya. Saya hanya membersihkan proyek saya dan menjalankannya dan berhasil.
bittu
Anda pasti harus mengubah jawaban yang benar! Jawaban @mark benar dan semua orang datang untuk itu.
Serdar Değirmenci

Jawaban:

64

Hapus modul node, lalu jalankan npm install(atau lebih baik lagi utas) dan setelah semuanya selesai diunduh, jalankan react-native upgradeyang akan memberi Anda opsi untuk mengganti file lama dengan yang template, dengan melakukan itu Anda menautkan kembali dependensi asli Anda di react-native yang mana harus memperbaiki masalah Anda. Tentu saja jangan lupa untuk membersihkan proyek Anda di Xcode.

Armands Malejevs
sumber
5
Anda dapat menggunakan alat pemutakhiran baru berdasarkan Git karena alat ini menyelesaikan konflik secara otomatis. Jalankan "npm install -g react-native-git-upgrade" diikuti dengan "react-native-git-upgrade".
bitsand
2
Saya mengikuti saran tapi nogo .. saya punya react-native versi 0.41.2 apakah ada orang yang bisa memperbaiki ini di versi 0.41.2? Terima kasih.
joemalski
2
ini juga tidak berhasil untuk saya. menggunakan xcode 8.2.1 dan bereaksi asli 0.41.2
Terry Ray
1
Saya mencoba ini, dan itu menghilangkan beberapa pengaturan proyek penting. Saya membuat Ekstensi Tindakan, dan setelah menjalankan react-native upgradesemua pengaturan build saya dihapus.
Shane O Sullivan
1
saya akan menambahkan file 'delete the yarn.lock' sehingga Anda dapat menggunakan 'npm install'
user1709076
247

Produk xcode-> Skema-> Kelola Skema klik '+' pada Target untuk memilih "React" dan mengatur React dibagikan.

menandai
sumber
10
Saya menekan '+' dan tidak ada "React" untuk dipilih. Sebuah dialog muncul dengan "Target: MyApp" dan Nama: MyApp. "Tidak ada yang mengatakan Bereaksi atau dibagikan.
Pete Alvin
Ini terjadi pada saya setelah menginstal cocopods yang membuat file xcworkspace. Xcodeproj saya yang ada tidak memiliki "React" sebagai opsi, tetapi xcworkspace memilikinya.
AdamG
@PeteAlvin saya menjalankan Jalankan "npm install -g react-native-git-upgrade diikuti dengan" react-native-git-upgrade "dan kemudian itu menunjukkan opsi react untuk saya
Paul Fitzgerald
1
Setelah saya melakukan itu, Build Berhasil, tetapi Run tidak aktif di Xcode setelah itu
Lucky_girl
Terima kasih banyak. Saya bertanya-tanya mengapa ini bukan solusi yang diterima.
Gaurav Grover
19

Untuk semua yang menggunakan React Native 0.40.0 atau lebih tinggi, Header Imports memiliki perubahan besar dari RN 0.40.0 dan menghasilkan banyak kesalahan .h file tidak ditemukan. react-native-git-upgradememperbaiki masalah untuk saya saat dalam debug tetapi versi gagal dalam rilis / arsip.

Saya menggunakan RN 0.42.3 dengan cocoapods dan Xcode 8.2.1

Untuk memperbaiki ini sepenuhnya, buka Xcode> Produk> Skema> Edit Skema>

  1. Untick Parallelize Build masukkan deskripsi gambar di sini
  2. Klik tombol + di Target dan tambahkan React masukkan deskripsi gambar di sini
  3. Seret React yang ditambahkan ke atas List di T Target. masukkan deskripsi gambar di sini

Sekarang bersihkan proyek dan bangun

Hariks
sumber
4
Ini tidak memperbaiki bagi saya, bereaksi v.0.44.0
Justus Eapen
17

Tidak ada saran lain yang memperbaiki kesalahan saya tetapi yang ini berhasil.

1 - Buat Podfile

Buat file bernama ios/Podfiledi dalam aplikasi react-native Anda dengan konten berikut:

# 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 - Instal Podfile

Jalankan perintah pod installdari dalam folder ios.

3 - Setel ulang XCode

Mulai ulang XCode dan kesalahan akan hilang.

Erich
sumber
Ini menyelesaikan masalah sampai batas tertentu. Tetapi yang saya temukan adalah bahwa konfigurasi baru tampaknya tidak mengikuti urutan build sehingga tidak menggunakan skrip kustom. Pada dasarnya, ini adalah masalah dengan react-native atau react-native + xcode
prog_24
9

Saya mengalami masalah ini setelah percobaan pertama saya menjalankan React build di XCode, dan yang harus saya lakukan hanyalah membangun dan menjalankan untuk menghilangkan kesalahan (setelah memilih tim dan penyediaan yang tepat). Kadang-kadang XCode menunjukkan kesalahan yang sebenarnya bukan kesalahan sampai ia mengkompilasi dan menautkan hal-hal untuk pertama kalinya.

Dave Cole
sumber
Saya juga. Aneh, cukup buat dan debug, kesalahan menghilang. Saya tidak tahu kenapa.
Zhang Buzz
@PaulFitzgerald - Lisensi untuk apa? Saya tidak percaya saya perlu memberi lisensi apa pun ...
Dave Cole
8

Solusi yang berhasil bagi saya adalah berbagi Reactskema.

Jika Anda tidak memiliki skema React, buat yang baru oleh Selecting scheme menu -> Manage Scheme -> + -> choose React, lalu tandai skema React sebagai Shared

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Selain itu, jika Anda menggunakan Xcode 10, buka File -> Project Settingsdan pilih sistem build Legacy

masukkan deskripsi gambar di sini

onmyway133
sumber
1
Terima kasih! Terkadang sulit untuk memperbaiki masalah semacam ini tanpa memiliki pengetahuan tentang iOS dan pengembangan asli Android yang menurut saya dan alat yang digunakan.
qasimalbaqali
1
@ onmyway133 Saya harap saya dapat lebih memilih jawaban Anda! Terima kasih
Mohammad Abbas
7

Saya memecahkan masalah ini dengan langkah-langkah berikut:

  1. Di xcode, pilih root proyek.
  2. Seret React.xcodeprojdari Librarieske root proyek.
  3. Klik pada nama proyek (dalam kasus saya itu nama SaleKit) diTARGETS
  4. Memilih Build Phases
  5. Di dropdown Target DependenciesaddReact
  6. Bangun kembali atau jalankan kembali

masukkan deskripsi gambar di sini

Kuat
sumber
1
Ini berhasil untuk saya! Saya menggunakan react-native-schemes-manager, jadi itu adalah skema Staging saya yang tidak akan dibangun sampai saya menambahkan ini. Ini bekerja sebelumnya selama berbulan-bulan, lalu tiba-tiba tidak setelah klon baru. Curigai rentang NPM saya di package.json terlalu murah hati.
Bekerja untuk saya, tanpa perlu menyeret React.xcodeproj keluar dari folder Libraries.
ErmannoS
6

Untuk kasus saya di ReactNative "0.54.2", saya menyelesaikannya dengan solusi berikut

Di Xcode pilih Product->Scheme->Manage Schemes, hapus centang 'YourProject'-tvOS atur ke tidak Dibagikan

JXLai
sumber
1
Ini bekerja untuk saya, verison react-native: 0.55.4. Terima kasih
Adarsh
1
Bekerja untuk saya! Saya telah menghapus target tvOS sebelumnya dan lupa menghapusnya sebagai skema! => RN 0,56
BigPun86
4

Solusi terbaik :

Buka 'Build Settings' untuk proyek Anda di Xcode, cari 'Header Search Path'.

Klik dua kali di sebelah 'Header Search Path', di mana properti lain memiliki 'ya' atau 'tidak'

Sekarang tambahkan yang berikut ke "Jalur Pencarian Header" (di bawah Pengaturan Bangun):

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

Jangan lupa Buat keduanya rekursif.

Mega Area
sumber
3

Jalankan npm installdi direktori proyek Anda untuk menginstal dan react-nativemenyelesaikan kesalahan ini.

Paul Brittain
sumber
3

Anda mungkin menjalankan .xcodeprojfile setelah pod dipasang.

Tutup dan buka .xcworkspacefile. Itu berhasil untuk saya.

Saranjith
sumber
2

Di dir dasar proyek saya menjalankan:

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

Yang menghasilkan:

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

Saya menemukan bahwa manajer paket tidak dapat berjalan ketika proses pengemasan lain sedang berjalan.

Saya menemukan prosesnya berjalan dengan:

lsof -i :8081

Dari pada saya kill 9 ...prosesnya.

Setelah saya menutup Xcode, jalankan:

npm install

Dan mulai Xcode lagi, mulai saat ini semuanya berjalan seperti yang diharapkan !!

Oded Regev
sumber
2

Saya memiliki masalah yang sama dan saya memperbaikinya dengan menempatkan RNFIRMessaging.h di atas React / RCTBundleURLProvider.h

Jadi saya akan terlihat seperti ini:

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

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Jefferson Filho
sumber
2

Coba yang berikut ini:

  1. Bersih ( cmd+ shift+ K).
  2. Build inti React - pilih React sebagai skema di Xcode dan bangun ( cmd+ B).
  3. Bangun pustaka yang gagal (misalnya RCTText).
  4. Buat aplikasi Anda.
jyson
sumber
1
Bagaimana tepatnya Anda membangun perpustakaan?
AlxVallejo
2

klik Produk-> Skema-> Kelola Skema -> +. lalu tambahkan reaksi sebagai dibagikan. juga pastikan nama proyek Anda ada di sana juga.

Eran Atau
sumber
1

Saya menghadapi masalah yang sama. Kemudian saya telah menghapus node. Coba gunakan langkah-langkah ini

  1. Hapus folder node_modules - rm -rf node_modules && npm install
  2. Setel ulang cache pemaket - rm -fr $ TMPDIR / react- * atau node_modules / react-native / packager / packager.sh --reset-cache
  3. Clear watchman watches - watchman watch-del-all

lalu buat build dan lihat

Olahraga
sumber
yup saya juga mencoba ini pada react-native versi 0.41.2 masih tidak berfungsi dengan baik ... ada masukan? Terima kasih.
joemalski
1

Saya menemukan bahwa perbaikan saya untuk masalah ini setelah memutakhirkan React adalah mengubah deklarasi #import "RCTBundleURLProvider.h"menjadi#import <React/RCTBundleURLProvider.h>

ays0110
sumber
1

Untuk saya ganti

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

oleh

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

di file AppDelegate.m bekerja.

Pankti Shah
sumber
0

Jika Anda belum menjalankan, npm installAnda kemungkinan besar akan mengalami masalah ini.

Harkirat Saluja
sumber
0

Saya mencoba semua saran dan tidak ada yang berfungsi di saya menghapus repo dan mengkloningnya lagi dan itu berfungsi untuk saya, jadi saran saya adalah melakukan perubahan Anda untuk mendukungnya dan mengkloning repo lagi yang berfungsi untuk saya.

ragar90.dll
sumber
0

Saya telah memeriksa semua jawaban yang disebutkan di atas.

Inilah solusi yang berhasil untuk saya:

LANGKAH 1:

Lari:

npm install react-native-fcm --save 

Ini menghasilkan pembuatan direktori dalam proyek Anda di bawah node_modules> react-native-fcm

Tambahkan react-native-fcm ke proyek Anda

LANGKAH 2:

Anda perlu menambahkan '$(SRCROOT)/../node_modules/react-native-fcm/ios'ke jalur pencarian header dalam pengaturan build.

Tambahkan ke jalur pencarian header

2 langkah ini berhasil bagi saya untuk menghilangkan kesalahan.

Untuk lebih jelasnya Anda bisa melalui tautan berikut:

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

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

Harjot Singh
sumber
0

Untuk kasus saya, saya tidak dapat menghapus node_modules dan menginstal ulang dan saya juga tidak dapat melakukan react-native-git-updgradeataureact-native upgrade karena saya ingin tetap menggunakan RN-0,59 karena .60 menyebabkan masalah pada dependensi saya.

Bagaimanapun situasi saya adalah bahwa saya kehilangan file 'React / RCTBundleURLProvider.h'. Saya sudah memiliki React yang tersedia di skema saya. Itu tidak ada di direktori perpustakaan saya. Saya memeriksa target saya pengaturan build .

Di dalam dependensi target, saya juga memiliki React di sana.

Saya menghapus ketergantungan target 'React', lalu menambahkannya kembali. folder build dibersihkan, proyek dibangun kembali. itu berhasil.

Jim
sumber
Tidak yakin itu penting, tetapi ada kesalahan ketik dalam: react-native-git-updgrade
Josh
0

Saya menggunakan React Native 0.61. Saya membuat Ekstensi Berbagi dan mendapatkan kesalahan ini. Saya perlu mengganti:

#import "RCTBundleURLProvider.h"

dengan

#import "React/RCTBundleURLProvider.h"
Eric Wiener
sumber
-1

Anda perlu menginstal react native, di terminal run

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

kemudian

brew install node
brew install watchman
npm install -g react-native-cli

sumber:
https://facebook.github.io/react-native/docs/getting-started.html

Olzh
sumber
1
Ini bukan jawaban untuk pertanyaan ini
S.Hossein Asadollahi
-2

Pastikan jalur ke proyek Anda tidak memiliki spasi. Hanya mengganti nama folder dan menghapus spasi akan memecahkan masalah bagi saya.

pengguna5807443
sumber