Apa arti dari 'Tidak ada bundel URL yang ada' dalam reaksi bawaan?

199

Ketika saya menjalankan proyek reaksi-asli, saya mendapatkan kesalahan no bundle URL present, tetapi saya tidak tahu kesalahan apa yang saya lakukan, saya sangat bingung.

masukkan deskripsi gambar di sini

Yingch Xue
sumber
2
Saya menghadapi masalah ini dalam bereaksi aplikasi iOS asli. Cukup buka xcodeproj di folder ios dalam xcode dan jalankan dari sana. Pastikan Anda tidak menggunakan proxy.
Abhay Shiro
9
Sebagian besar waktu, membersihkan direktori build membantu sayarm -rf ios/build/
onmyway133
Itu membantu saya dalam sebagian besar situasi. Tetapi dalam kasus khusus ini saya dapat memperbaiki kesalahan ini dengan perintah ini (react-native: "0.60.4"):watchman watch-del-all
O. Borcuhin
Biasanya ini berarti bundler metro Anda tidak berjalan, beberapa orang menjalankannya di terminal mereka sendiri atau di terminal komputer standar. Saya biasanya menutup terminal, restart aplikasi dan itu memperbaikinya.
Sara Inés Calderón

Jawaban:

128

Selesaikan kesalahan No bundle URL presentdengan:

  • Menjalankan perintah berikut di direktori root proyek Anda untuk menghapus direktori build iOS, dan untuk membunuh sesi Bereaksi Asli lainnya (dengan asumsi mereka berjalan pada port default 8081) sebelum membangun kembali:

rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios

  • Perbarui alur kerja Native React Anda untuk menghindari kesalahan ini terjadi dengan menggabungkan kombinasi perintah di atas menjadi alias dan menambahkannya ke file konfigurasi Bash Anda .bashrc dengan perintah ini:

echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc

Sekarang Anda dapat menjalankan React Native iOS build (tanpa khawatir tentang beberapa layar kesalahan merah umum yang muncul) dengan shortcut alias sederhana:

rni

Luke Schoen
sumber
1
Sangat bermanfaat buat saya. Satu-satunya hal lain yang harus saya lakukan adalah keluar dari simulator jika belum ditutup.
AnnawanDev
74

Saya juga mengalami masalah ini (pertama kali memulai dengan React Native). Masalahnya menghilang ketika - saat simulasi ios (react-native run-ios ) berjalan - saya berlari npm installdan kemudianreact-native run-ios lagi. Di jendela terminal, itu menunjukkan bahwa itu bundling, dan kemudian simulator menunjukkan layar selamat datang.

Periksa tautan ini untuk mendapatkan brief setelahnyareact-native init PropertyFinder baris coba gunakannpm start (Yang ini cocok untuk saya)

================================================== ======================

UPDATE untuk 16,9

Port saya 8081 diblokir oleh McAfee. Menggunakan port yang berbeda secara langsung tidak berfungsireact-native start --port=8082 danreact-native run-ios --port=8082

Mencoba hampir semua solusi yang diberikan di sini. tetapi segala sesuatu tidak berhasil.

        "react": "16.9.0",
        "react-dom": "^16.12.0",
        "react-native": "0.61.5",

Larutan:

Mencari 8081 di Xcode dan mengganti semuanya dengan 8082. Kemudian jalankan perintah yang sama untuk membangun dan menjalankan aplikasi. Aplikasi bekerja dengan lancar

react-native start --port=8082
react-native run-ios --port=8082

masukkan deskripsi gambar di sini

Lewati Suva
sumber
2
@dcp Sudahkah Anda mencoba menjalankan "react-native run-ios" beberapa kali ketika sudah boot? Sepertinya setiap kali saya memutar aplikasi saya harus melakukannya setidaknya dua kali (menunggu sekitar 2 menit setiap kali).
Lewati Suva
bekerja untuk saya, tetapi akan senang menemukan perbaikan jangka panjang yang tidak melibatkan langkah ini setiap kali.
mheavers
31

Punya masalah yang sama ketika saya bundel aplikasi saya. Periksa apakah Anda main.jsbundleditargetkan ke Proyek utama Anda

parse
sumber
3
Ini entah bagaimana terjadi pada saya sebagai bagian dari pembaruan 0.60 asli-reaksi saya.
IonicBurger
tautan video untuk hal yang sama, youtube.com/watch?v=eCs2GsWNkoo
jrhamza
ini terjadi pada saya juga. tapi kemudian saya mengkliknya. tapi masih masalah yang sama
Jason G
29

Seperti yang diperintahkan dalam pesan kesalahan:

Menyetujui lisensi Xcode / iOS memerlukan hak admin, jalankan "sudo xcodebuild -license" dan kemudian coba lagi perintah ini.

Menjalankan perintah berikut berhasil:

sudo xcodebuild -license
cwRichardKim
sumber
tks ini berfungsi untuk saya setelah dijalankan di terminal dan membangun di xcode setelah
tess hsu
Nggak. Masih belum bekerja untuk saya. Saya menjalankan di port yang berbeda, 8081 diblokir
Ashish Singh Rawat
27

Masalah ini terjadi ketika Anda tidak mengizinkan koneksi tidak aman melalui localhost, atau mungkin Anda mencoba menerima koneksi tidak aman melalui http.

Untuk memperbaikinya, tambahkan ini di info.plist:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>
Witalo Benicio
sumber
4
Apa pahlawan orang ini. Menyelamatkan saya dan macbook saya dari melompat keluar jendela! Saya telah mengubah domain pengecualian saya dari localhostke alamat jaringan lokal saya di Info.plist dan karenanya tidak menyelesaikan. Saya menambahkan blok untuk 'localhost' sebagai domain pengecualian dan berhasil.
Darius
1
Serius jawaban Anda masuk seperti tuhan kepada saya .... saudara Anda batu ..... saya tidak punya kata-kata. terima kasih, saya terjebak di dalamnya dari hari kamis.
Tushar Pandey
26

Tutup simulator dan terminal Anda. Buka yang baru dan buka proyek Anda, lalu tingkatkan versi asli Anda seperti ini:

react-native upgrade

Masalah dalam: Rekursi tak terbatas di RCTFatal ketika bundel gagal dieksekusi .

Mateo Marconi
sumber
1
ya, tetapi dalam kasus saya, saya tidak perlu memutakhirkan. Menutup terminal dan simulator sudah cukup bagi saya.
gianni
@ gianni Versi asli-reaksi apa yang Anda jalankan sekarang?
Mateo Marconi
1
Sepertinya tidak ada bedanya, masih melihat kesalahan.
SSH Ini
2
Ini berhasil bagi saya, tetapi Anda harus menutup simulator juga dan kemudian menjalankan run-ios asli-reaksi
James O'Brien
1
Tidak membantu info `` `Tidak ada versi yang lulus. Mengambil terbaru ... memperingatkan Versi yang ditentukan "0.61.5" sudah diinstal di node_modules dan memenuhi kisaran semver "0.61.5". Tidak perlu memperbarui `` `
Ashish Singh Rawat
19

Alasan:

Ini karena aplikasi tidak dapat menemukan server (yang melayani UI - dengan kode javascript).

Larutan:

  • Pastikan segala sesuatu yang terkait dengan reaksi asli ditutup (tidak perlu, hanya untuk memulai bersih untuk solusi saya, setelah penjelasan saya, Anda dapat mengetahui ini diperlukan atau tidak)
  • jalankan npm run startatau yarn startpertama
  • tunggu perintah ini selesai (biasanya Anda akan melihat Loading dependency graph, done. )
  • Lari react-native run-ios/android

Penjelasan:

  • React Native hadir dengan 2 bagian:

    • Bagian asli
    • Bagian Javascript
  • Membangun perintah:

    • react-native run-ios/androidadalah untuk membangun bagian asli kemudian menyebar ke perangkat dan memulai aplikasi pada perangkat (simulator / emulator / perangkat nyata). Ini biasanya memakan waktu 3 ~ 4 menit untuk selesai.

    • npm run startatau yarn startuntuk membangun bagian javascript dan mulai server dev untuk melayani UI yang dibangun ke aplikasi. Ini biasanya membutuhkan waktu 30 detik untuk menyelesaikannya.

=> Biasanya, bagian javascript selesai terlebih dahulu kemudian bagian asli datang kemudian. (berdasarkan waktu yang mereka gunakan).

=> ini hanya berlaku untuk build pertama kali (fresh build).

=> untuk membangun kembali:

  • Bagian asli hanya butuh 10 ~ 15 detik untuk memeriksa perubahan dan karena tidak ada perubahan untuk bagian asli => dilakukan sebelum bagian javascript dibuat dan disajikan. (Saya tidak yakin bagian javascript dibangun kembali atau tidak tetapi butuh waktu lama daripada bagian asli)

  • Jadi itu sebabnya kami memiliki masalah ini, aplikasi berjalan dan diperlukan hal yang belum ada.

Bonus:

  • react-native run-ios/android akan otomatis memulai server dev untuk Anda.
  • Itu sebabnya ketika Anda berlari react-native run-ios/androidsetelahnya react-native init <app_name>, semuanya berjalan dengan baik. (Karena fitur mulai otomatis dan waktu yang diperlukan untuk membangun baru seperti keadaan di atas).
  • Solusi "penghapusan" lainnya berhasil karena mereka memaksa membangun kembali.

Waktu yang digunakan untuk jawaban ini relatif terhadap mesin saya => mungkin berbeda pada yang lain.

Khoa
sumber
14

Coba jalankan kode ini:

$ sudo xcodebuild -license

Ini dapat memperbaiki masalah. Ini bekerja untuk saya.

Kusal Kithmal
sumber
11

Saya memiliki kesalahan yang sama dan dapat menjalankan aplikasi hanya melalui Xcode. react-native run-iostidak bekerja. Untuk mengatasi masalah ini, Anda harus menghapus buildfolder di YOUR_PROJECT/ios/build/. Setelah ini, Anda harus dapat menjalankan aplikasi react-native run-ioslagi. Semoga ini membantu.

sonlexqt
sumber
9

Sebagian besar kasus masalah ini terjadi ketika pencarian DNS / pencarian IP gagal menemukan localhost.

Solusi:

Coba tambahkan ip localhost ke file host Anda dll.

Anda dapat menambahkan baris di bawah ini ke file host dll (/ etc / hosts)

127.0.0.1 localhost

255.255.255.255 broadcasthost

:: 1 l. ocalhost

Untuk mengkonfirmasi ini adalah masalah Anda dapat menekan bundel url pada safari (jika Anda mencobanya di chrome ini akan menyelesaikan tetapi safari tidak akan dapat menyelesaikannya). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false

Vivek
sumber
Setelah bermigrasi ke komputer baru, inilah yang saya butuhkan. TY!
jeffctown
Yap sama di sini di komputer baru!
Vishal Sakaria
Masalah saya adalah mengatur proxy pada konfigurasi jaringan saya, saya hanya menghapus proxy dan itu berfungsi dengan baik.
Ahmad Khani
8

Pastikan pengaturan ATS Anda benar dalam file .plist.

Anda dapat menemukan file di /ios/{{project_name}}/Info.plist

localhost harus didefinisikan sebagai target permintaan pengecualian seperti ini:

<key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

* (jangan lupa untuk menghapus ini pada versi rilis ..)

Serdar Değirmenci
sumber
7

Bagi saya masalahnya adalah tidak bisa membuat bundel JS. Itu tidak menyatakan kesalahan saat membangun dari Xcode sehingga tidak ada cara bagi Anda untuk mengetahui hal ini. Untuk menemukan kesalahan, jalankan perintah berikut.

react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle

Bagi saya kesalahan adalah sesuatu dengan komponen PureRenderMixin yang hilang. Solusinya dapat ditemukan di sini: https://github.com/facebook/react-native/issues/13078 . Pada dasarnya Anda harus menginstal [email protected] secara manual. Ini dapat dilakukan melalui menjalankan perintah ini.

npm i --save [email protected]

Masalah ini sekarang terjadi untuk semua orang karena versi baru dari alpha reaksi sedang dirilis (terutama alpha.5) dan mereka melanggar build asli-reaksi.

urbancvek
sumber
perintah 'react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/ main.jsbundle 'akan menjelaskan setiap kesalahan dalam membangun bundel. sampai perintah ini berhasil, run-ios tidak akan berfungsi
eric f.
kesalahan saya saat ini adalah bahwa '@connect' dari 'react-redux' entah bagaimana tidak dikenali?
eric f.
Mungkin coba tambahkan "plugins": ["transform-decorators-legacy"]ke file .babelrc Anda. Atau coba dengan HOC yang terhubung.
urbancvek
@urbancvek, bagi saya kesalahannya adalah ini The node type SpreadProperty has been renamed to SpreadElementdan @babelpustaka referensi di dalamnya node_modules, saya tidak menemukan apa pun yang telah mengatasi ini.
Daniel
7

Solusi -> npm startkemudian buka Terminal baru dan pergi ke jalur proyek Anda dan kemudian tekan react-native run-iositu berfungsi untuk saya

rahul.sapkal23
sumber
7

Apa yang menyelesaikannya untuk saya:

  • Buka jendela terminal
  • cd ke YOUR_PROJECT/ios
  • Hapus folder build dengan rm -r build
  • Lari react-native run-ioslagi

Atau, Anda dapat membuka Finder, menavigasi ke YOUR_PROJECT/iosdan menghapus buildfolder.

Kemudian jalankan react-native run-ioslagi.

Sumber: Andrew Bancroft

l3aronsansgland
sumber
5

Ini adalah masalah dengan react-native v0.42.1. Cobalah untuk menutup semua instance terminal dan XCode dan jalankan:

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
Shobhit Sharma
sumber
3
"Ini adalah masalah dengan react-native v0.42.1." - Ada juga dengan v.0.43.
dcp
5

pertama tutup simulator, kemudian jalankan ini di terminal

npm install

react-native run-ios
Pramodya Abeysinghe
sumber
5

Jalankan saja di Terminal react-native start:

cd your react native app directory/ react-native start 

Ini akan memulai pemaket, sekarang jangan tutup jendela terminal ini, di jendela terminal lain jalankan proyek Anda. Ini adalah satu-satunya keinginan yang saya temukan untuk membuatnya berfungsi dengan baik.

Prakash salawria
sumber
4

Saya telah menemukan cara termudah / tercepat untuk mem-bypass ini adalah keluar dari aplikasi dalam simulator (2 x Cmd + Shift + H) dan meluncurkan kembali.

Toby Flemming
sumber
4

Saya punya masalah yang sama. Tapi masalah saya adalah Mac dan iPhone saya tidak berada di jaringan wifi yang sama.

Jadi pastikan mereka semua dalam jaringan yang sama dan membangun kembali sekali lagi. Jika tidak, cobalah solusi yang disebutkan oleh anggota lain di sini.

Abraham Jagadeesh
sumber
3

periksa proxy jaringan Anda, lebih baik matikan saja.

atau Anda harus menemukan cara lain untuk menjaga server packager

pengguna1684758
sumber
Terima kasih, saya membuka VPN global untuk melintasi Tembok Besar Api!
BaiJiFeiLong
Saya menonaktifkan konfigurasi proxy otomatis di Mac. Ini berhasil setelah upaya 2 hari: D ... Terima kasih.
Nirav Jain
Saya memang menjalankan VPN yang bahkan tidak saya ingat. mematikannya berhasil!
Pedro Marques
3

Itu juga terjadi pada saya, setelah me-restart mac saya. Ada jendela terminal launchPackager terbuka ketika Anda menjalankan aplikasi pada simulator. Saya menutup jendela itu dan menghentikan prosesnya (saya juga menutupnya dengan simulator), kemudian menjalankan lagi run-ios yang asli dan semuanya bekerja dengan baik.

gianni
sumber
3

Dalam kasus saya masalahnya diperbaiki dengan me-restart adbserver:adb kill-server && adb start-server

Grzegorz Pawlik
sumber
3

Saya memiliki masalah ini terjadi pada saya juga ... masalahnya adalah packer tidak berjalan sepertinya mungkin karena shell default saya adalah zsh. ban asli bereaksi untuk membuka jendela terminal baru dan berlari .../node_modules/react-native/packager/launchPackager.commandtetapi ini tidak berjalan. Menjalankannya secara manual (dan membuatnya tetap berjalan) memperbaiki ini untuk saya.

Chris
sumber
3

periksa kunci 'localhost' Anda di NSExceptionDomains dicto.plist

jika tidak ada, itu menyebabkan kesalahan.

ogelacinyc
sumber
2

Dengan asumsi bahwa Anda menggunakan nvmdan beberapa versi node diinstal, berikut adalah solusinya:

  1. Katakan bahwa Anda menjalankan npm install -g react-native-clidi node v6.9.5.
  2. Sekarang jadikan node v6.9.5default dengan menjalankannvm alias default 6.9.5
  3. Sekarang jalankan react-native run-ios

Masalahnya adalah, Anda memiliki beberapa versi node diinstal melalui nvmdan untuk menginstal react-native-cliAnda telah beralih atau menginstal versi terbaru dari node, yang belum ditandai sebagai node default untuk menunjuk nvmbelum. Ketika Anda menjalankan react-native run-iosini membuka jendela terminal baru lain di mana default nvmtidak menunjuk ke versi node di mana Anda telah menginstal react-native-cli. Ikuti saja pengaturan di atas, saya harap itu akan membantu.

Syed
sumber
2

pastikan Anda memiliki .jsbundle di proyek Anda

Menambahkan

react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios

dalam kode asli reaksi Anda, coba buka kembali proyek

Saloni Parikh
sumber
1

Saya bekerja dengan RN 0.49.5. Saya sudah mencoba banyak metode, tetapi tidak ada yang berhasil. Akhirnya saya menyelesaikan ini. Sederhana dan mudah.

Gagasan utamanya adalah mengubah localhostto 127.0.0.1, tapi itu bukan tempat RN memberi tahu Anda. Ada dalam host RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) .

Perubahan kode: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; Ini tidak masalah untuk simulator. Jika itu perangkat, cukup ubah alamat ip ke perangkat Anda.

Bruce Lee
sumber
Bisakah Anda menguraikan solusi Anda?
Ashish Singh Rawat
1

Hal lain yang bekerja untuk saya, adalah membuka proyek dalam xcode, dan kemudian membersihkan dan membangunnya. biasanya itu menjalankan kembali server pengemasan dan memecahkan masalah.

Eliran Goshen
sumber
1

Jalankan perintah di bawah ini:

killall -9 node
rm -rf ios/build
react-native run-ios

itu akan membuka launchpackager.command dan aplikasi akan diinstal pada simulator ios

Saif Siddiqui
sumber
0

Pastikan launchPackage.commandberjalan di terminal dan coba jalankan lagi. Itu akan membangun bundel. Ini seperti webpack-dev-server.

Codler
sumber