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.
rm -rf ios/build/
watchman watch-del-all
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.
rm -rf ios/build/
watchman watch-del-all
Jawaban:
Selesaikan kesalahan No bundle URL present
dengan:
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
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
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 install
dan 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
Punya masalah yang sama ketika saya bundel aplikasi saya. Periksa apakah Anda main.jsbundle
ditargetkan ke Proyek utama Anda
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
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>
localhost
ke alamat jaringan lokal saya di Info.plist dan karenanya tidak menyelesaikan. Saya menambahkan blok untuk 'localhost' sebagai domain pengecualian dan berhasil.
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 .
Alasan:
Ini karena aplikasi tidak dapat menemukan server (yang melayani UI - dengan kode javascript).
Larutan:
npm run start
atau yarn start
pertamaLoading dependency graph, done.
)react-native run-ios/android
Penjelasan:
React Native hadir dengan 2 bagian:
Membangun perintah:
react-native run-ios/android
adalah 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 start
atau yarn start
untuk 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.react-native run-ios/android
setelahnya react-native init <app_name>
, semuanya berjalan dengan baik. (Karena fitur mulai otomatis dan waktu yang diperlukan untuk membangun baru seperti keadaan di atas).Waktu yang digunakan untuk jawaban ini relatif terhadap mesin saya => mungkin berbeda pada yang lain.
Coba jalankan kode ini:
$ sudo xcodebuild -license
Ini dapat memperbaiki masalah. Ini bekerja untuk saya.
Saya memiliki kesalahan yang sama dan dapat menjalankan aplikasi hanya melalui Xcode. react-native run-ios
tidak bekerja. Untuk mengatasi masalah ini, Anda harus menghapus build
folder di YOUR_PROJECT/ios/build/
. Setelah ini, Anda harus dapat menjalankan aplikasi react-native run-ios
lagi. Semoga ini membantu.
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
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 ..)
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 react@16.0.0-alpha.3 secara manual. Ini dapat dilakukan melalui menjalankan perintah ini.
npm i --save react@16.0.0-alpha.3
Masalah ini sekarang terjadi untuk semua orang karena versi baru dari alpha reaksi sedang dirilis (terutama alpha.5) dan mereka melanggar build asli-reaksi.
"plugins": ["transform-decorators-legacy"]
ke file .babelrc Anda. Atau coba dengan HOC yang terhubung.
The node type SpreadProperty has been renamed to SpreadElement
dan @babel
pustaka referensi di dalamnya node_modules
, saya tidak menemukan apa pun yang telah mengatasi ini.
Solusi ->
npm start
kemudian buka Terminal baru dan pergi ke jalur proyek Anda dan kemudian tekan
react-native run-ios
itu berfungsi untuk saya
Apa yang menyelesaikannya untuk saya:
cd
ke YOUR_PROJECT/ios
rm -r build
react-native run-ios
lagiAtau, Anda dapat membuka Finder, menavigasi ke YOUR_PROJECT/ios
dan menghapus build
folder.
Kemudian jalankan react-native run-ios
lagi.
Sumber: Andrew Bancroft
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
pertama tutup simulator, kemudian jalankan ini di terminal
npm install
react-native run-ios
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.
Saya telah menemukan cara termudah / tercepat untuk mem-bypass ini adalah keluar dari aplikasi dalam simulator (2 x Cmd + Shift + H
) dan meluncurkan kembali.
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.
periksa proxy jaringan Anda, lebih baik matikan saja.
atau Anda harus menemukan cara lain untuk menjaga server packager
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.
Dalam kasus saya masalahnya diperbaiki dengan me-restart adb
server:adb kill-server && adb start-server
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.command
tetapi ini tidak berjalan. Menjalankannya secara manual (dan membuatnya tetap berjalan) memperbaiki ini untuk saya.
periksa kunci 'localhost' Anda di NSExceptionDomains dicto.plist
jika tidak ada, itu menyebabkan kesalahan.
Dengan asumsi bahwa Anda menggunakan nvm
dan beberapa versi node diinstal, berikut adalah solusinya:
npm install -g react-native-cli
di node v6.9.5
. node v6.9.5
default dengan menjalankannvm alias default 6.9.5
react-native run-ios
Masalahnya adalah, Anda memiliki beberapa versi node diinstal melalui nvm
dan untuk menginstal react-native-cli
Anda telah beralih atau menginstal versi terbaru dari node, yang belum ditandai sebagai node default untuk menunjuk nvm
belum. Ketika Anda menjalankan react-native run-ios
ini membuka jendela terminal baru lain di mana default nvm
tidak menunjuk ke versi node di mana Anda telah menginstal react-native-cli
. Ikuti saja pengaturan di atas, saya harap itu akan membantu.
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
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 localhost
to 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.
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.
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