Yerel bir proje yürüttüğümde bir hata alıyorum no bundle URL present, ama hangi hataları yaptığımı bilmiyorum, çok kafam karıştı.
rm -rf ios/build/
watchman watch-del-all
Yerel bir proje yürüttüğümde bir hata alıyorum no bundle URL present, ama hangi hataları yaptığımı bilmiyorum, çok kafam karıştı.
rm -rf ios/build/
watchman watch-del-all
Yanıtlar:
Hatayı şu şekilde çözün No bundle URL present:
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
Artık React Native iOS derlemesini (ölümün sık görülen kırmızı hata ekranlarından bazıları hakkında endişelenmeden) basit bir takma ad kısayoluyla çalıştırabilirsiniz:
rni
Ben de bu sorunla karşılaştım (ilk kez React Native ile çalışmaya başlıyorum). Bir ios simülasyonu ( react-native run-ios) çalışırken - koştum npm installve sonra react-native run-iostekrar sorun ortadan kalktı . Terminal penceresinde, paketlendiğini gösterdi ve sonra simülatör karşılama ekranını gösterdi.
react-native init PropertyFinderHat kullanmaya çalıştıktan sonra bu bağlantıyı kontrol edinnpm start (Bu benim için çalışıyor)
================================================== ======================
16.9 GÜNCELLEME
8081 numaralı bağlantı noktam McAfee tarafından engellendi. Farklı bir bağlantı noktasını doğrudan kullanmak işe yaramadı react-native start --port=8082vereact-native run-ios --port=8082
Burada verilen hemen hemen tüm çözümleri denedim. ama hiçbir şey işe yaramadı.
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
Çözüm:
Xcode'da 8081 arandı ve hepsini 8082 ile değiştirdi. Sonra uygulamayı oluşturmak ve çalıştırmak için aynı komutları çalıştırın. Uygulama sorunsuz çalışıyor
react-native start --port=8082
react-native run-ios --port=8082
Uygulamamı paketlediğimde de aynı sorunla karşılaştım. main.jsbundleAna Projenize hedeflendiğinizi kontrol edin
Hata mesajında belirtildiği gibi:
Xcode / iOS lisansını kabul etmek için yönetici ayrıcalıkları gerekir, lütfen "sudo xcodebuild -license" komutunu çalıştırın ve ardından bu komutu yeniden deneyin.
Aşağıdaki komutu çalıştırmak işe yaradı:
sudo xcodebuild -license
Bu sorun, localhost üzerinden güvenli olmayan bağlantılara izin vermediğinizde veya http yoluyla güvenli olmayan bağlantıları kabul etmeye çalıştığınızda oluşur.
Bunu düzeltmek için şunu ekleyin info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhostalanımı Info.plist'teki yerel ağ adresime değiştirdim ve bu nedenle çözümlenmiyordu. Bir istisna etki alanı olarak 'localhost' için bir blok ekledim ve işe yaradı.
Simülatörünüzü ve terminali kapatın. Yenisini açın ve projenize gidin, ardından yerel yanıtınızı aşağıdaki gibi yükseltin:
react-native upgrade
Sorun: Paket yürütülemediğinde RCTFatal'da sonsuz özyineleme .
Sebep:
Bunun nedeni, uygulamanın sunucuyu bulamamasıdır (bu, kullanıcı arayüzüne hizmet eder - javascript koduna göre).
Çözüm:
npm run startya da yarn startilkLoading dependency graph, done. )react-native run-ios/androidAçıklama:
React Native 2 parça ile birlikte gelir:
Derleme komutları:
react-native run-ios/androidyerel parça oluşturmak sonra cihazlara dağıtmak ve cihazlarda (simülatör / emülatör / gerçek cihaz) uygulamayı başlatmaktır. Bu genellikle bitirmek için 3 ~ 4 dakika sürdü.
npm run startveya yarn startjavascript bölümünü oluşturmak ve uygulama için yerleşik kullanıcı arayüzünü sunmak üzere dev sunucusunu başlatmaktır. Bu işlemin tamamlanması genellikle 30 saniye sürdü.
=> Normalde, javascript kısmı önce bitirilir, ardından yerel kısım daha sonra gelir. (kullandıkları zamana göre).
=> bu sadece ilk kez inşa için geçerlidir (yeni inşa).
=> yeniden inşa etmek için:
Yerel bölüm, değişiklikleri kontrol etmek için sadece 10 ~ 15 saniye sürdü ve çünkü javascript bölümü oluşturulup sunulmadan önce yerel bölüm için değişiklik yapılmadı. (Javascript bölümünün yeniden oluşturulduğundan emin değilim ama yerel bölümden daha uzun sürdü)
Bu yüzden bu sorunu yaşadık, uygulama henüz var olmayan bir şeyi çalıştırdı ve gerekli kıldı.
Bonus:
react-native run-ios/android sizin için dev sunucusunu otomatik olarak başlatır.react-native run-ios/androidhemen koştuğunuzdareact-native init <app_name> koştuğunuzda her şey yolunda gitti. (çünkü otomatik başlatma özelliği ve yukarıdaki durum olarak yeni inşa etme süresi alınmıştır).Bu cevapta kullanılan süre makinemle göreceli idi => diğerlerinde farklı olabilir.
Bu kodu çalıştırmayı deneyin:
$ sudo xcodebuild -license
Bu sorunu çözebilir. Bu benim için çalışıyor.
Aynı hatayı aldım ve uygulamayı sadece Xcode ile çalıştırabildim. react-native run-iosişe yaramadı. Sorunu çözmek için buildadresindeki klasörü kaldırmanız gerekiyor YOUR_PROJECT/ios/build/. Bundan sonra uygulamanızı react-native run-iostekrar çalıştırabilmeniz gerekir . Bu yardımcı olur umarım.
Çoğu durumda, DNS araması / IP araması localhost'u bulamadığında bu sorun oluşur.
Çözüm :
Etc host dosyanıza localhost ip'i eklemeyi deneyin.
etc host dosyanıza (/ etc / hosts) aşağıdaki satırları ekleyebilirsiniz
127.0.0.1 localhost
255.255.255.255 yayın barındırıcısı
:: 1 l. ocalhost
Sorunun bu olduğunu doğrulamak için safari üzerindeki paket URL'sini vurabilirsiniz (kromda denerseniz bu çözülür, ancak safari çözemez). http: // localhost: 8081 / index.ios.bundle platformu = ios & dev = true & küçültmek = false
.Plist dosyasında ATS ayarlarınızın doğru olduğundan emin olun.
Dosyayı / ios/{{project_name adresinde bulabilirsiniz } //Info.plist
localhost, aşağıdaki gibi istisna istek hedefi olarak tanımlanmalıdır:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (yayın sürümünde bunu kaldırmayı unutmayın ..)
Benim için sorun JS paketini oluşturamıyordu. Xcode'dan inşa ederken hatayı belirtmez, bu yüzden bunu bilmenin bir yolu yoktur. Hatayı bulmak için aşağıdaki komutu çalıştırın.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
Benim için hata, PureRenderMixin bileşeninin eksik olduğu bir şeydi. Çözüme buradan ulaşabilirsiniz: https://github.com/facebook/react-native/issues/13078 . Temel olarak reat@16.0.0-alpha.3 komutunu manuel olarak yüklemeniz gerekir. Bu, bu komut çalıştırılarak yapılabilir.
npm i --save react@16.0.0-alpha.3
Bu sorun şimdi herkes için oluyor çünkü reaksiyon alfalarının daha yeni sürümleri yayınlanıyor (özellikle alfa.5) ve tepkimeye özgü yapıları bozuyorlar.
"plugins": ["transform-decorators-legacy"].babelrc dosyanıza eklemeyi deneyin . Veya connect HOC ile deneyin.
The node type SpreadProperty has been renamed to SpreadElementve onun @babeliçinde referans kütüphanesi node_modules, ben bunu ele hiçbir şey bulamadık.
Çözüm ->
npm startsonra yeni Terminal'i açın ve proje yolunuza gidin ve sonra
react-native run-iosbenim için işe yarıyor
Benim için ne çözdü:
cd içine YOUR_PROJECT/iosrm -r buildreact-native run-iosTekrarAlternatif olarak, Finder'ı açabilir, şuraya gidebilirsiniz: YOUR_PROJECT/ios , buildklasöre gidip silebilirsiniz .
O zaman koş react-native run-ios tekrar .
Kaynak: Andrew Bancroft
Bu, yerel tepki v0.42.1 ile ilgili bir sorundur. Tüm terminal ve XCode örneklerini kapatmayı ve çalıştırmayı deneyin:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
önce simülatörü kapatın, sonra bunları terminalde çalıştırın
npm install
react-native run-ios
Sadece Terminal'de çalıştırın react-native start:
cd your react native app directory/ react-native start
Paketleyiciyi başlatacak, şimdi bu terminal penceresini kapatmayın, projenizi başka bir terminal penceresinde çalıştırın. Düzgün çalışması için bulduğum tek şey bu.
Bunu atlamanın en kolay / en hızlı yolunu simülatör (2 x Cmd + Shift + H) içinde uygulamadan çıkmak ve yeniden başlatmaktır.
Aynı sorunu yaşadım. Ama benim sorunum Mac ve iPhone'umun aynı wifi ağında olmamasıydı.
Bu yüzden hepsinin aynı ağda olduğundan emin olun ve bir kez daha yeniden oluşturun. Aksi takdirde, burada diğer üyelerin bahsettiği çözümleri deneyin.
ağ proxy'nizi kontrol edin, daha iyi kapatın.
veya u paket sunucusunu korumak için başka bir yol bulmak gerekir
Mac'imi yeniden başlattıktan sonra da başıma geldi. Uygulamanızı simülatörde çalıştırdığınızda açılan bir launchPackager terminal penceresi var. Bu pencereyi kapattım ve işlemi sonlandırdım (simülatörü de kapattım), sonra tekrar reaksiyona-yerel run-ios'u çalıştırın ve her şey iyi çalışıyor.
Benim durumumda, adbsunucu yeniden başlatılarak sorun giderildi :adb kill-server && adb start-server
Benim için de bu sorunu yaşadım ... Sorun packer çalışmıyor değildi, varsayılan kabuğum zsh olduğundan muhtemelen görünüyordu. yeni bir terminal penceresi açmak ve çalıştırmak için yerel lastiklere tepki verin, .../node_modules/react-native/packager/launchPackager.commandancak bu çalışmadı. Bunu manuel olarak çalıştırmak (ve çalışmasını sağlamak) bunu benim için düzeltti.
info.plist adresindeki NSExceptionDomains dict'teki 'localhost' anahtarınızı kontrol edin
yoksa, hataya neden olur.
Kullandığınızı nvmve düğümün birden çok sürümünü yüklediğinizi varsayarsak , işte çözüm:
npm install -g react-native-clide node v6.9.5. node v6.9.5 çalıştırarak varsayılan olarak yapnvm alias default 6.9.5react-native run-iosSorun, üzerinden düğümün birden çok sürümünün yüklü olması nvmve yüklemek için react-native-cli, düğümün henüz işaret edilmemiş varsayılan düğüm olarak işaretlenmemiş olan en son sürümünü değiştirmiş veya yüklemiş olmanızdır nvm. Çalıştırdığınızda react-native run-ios, varsayılanın nvmyüklediğiniz düğüm sürümüne işaret etmediği başka bir yeni terminal penceresi açılır react-native-cli. Sadece yukarıdaki kurulumu takip edin, umarım bu yardımcı olacaktır.
projenizde .jsbundle olduğundan emin olun
Ekle
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
tepki yerel kodunuzda projeyi yeniden açmayı deneyin
İle çalışıyorum RN 0.49.5. Birçok yöntem denedim, ama kimse çalışmıyor. Sonunda bunu hallettim. Çok basit ve kolaydır.
Ana fikri değiştirmektir localhostiçin 127.0.0.1ancak RN anlatır nerede o değil. Bu öyle RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) konak .
Kod değişiklikleri:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
Bu simülatör için uygun. Cihazsa, ip adresini makinenizin adresine değiştirin.
benim için çalışan başka bir şey, projeyi xcode içinde açmak ve sonra temizleyip inşa etmektir. Genellikle paketleme sunucusunu yeniden çalıştırır ve sorunu çözer.
Aşağıdaki komutu yürütün:
killall -9 node
rm -rf ios/build
react-native run-ios
launchpackager.command dosyasını açacak ve uygulama ios simülatörüne yüklenecek