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 install
ve sonra react-native run-ios
tekrar sorun ortadan kalktı . Terminal penceresinde, paketlendiğini gösterdi ve sonra simülatör karşılama ekranını gösterdi.
react-native init PropertyFinder
Hat 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=8082
vereact-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.jsbundle
Ana 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>
localhost
alanı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 start
ya da yarn start
ilkLoading dependency graph, done.
)react-native run-ios/android
Açıklama:
React Native 2 parça ile birlikte gelir:
Derleme komutları:
react-native run-ios/android
yerel 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 start
veya yarn start
javascript 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/android
hemen 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-ios
işe yaramadı. Sorunu çözmek için build
adresindeki klasörü kaldırmanız gerekiyor YOUR_PROJECT/ios/build/
. Bundan sonra uygulamanızı react-native run-ios
tekrar ç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 SpreadElement
ve onun @babel
içinde referans kütüphanesi node_modules
, ben bunu ele hiçbir şey bulamadık.
Çözüm ->
npm start
sonra yeni Terminal'i açın ve proje yolunuza gidin ve sonra
react-native run-ios
benim için işe yarıyor
Benim için ne çözdü:
cd
içine YOUR_PROJECT/ios
rm -r build
react-native run-ios
TekrarAlternatif olarak, Finder'ı açabilir, şuraya gidebilirsiniz: YOUR_PROJECT/ios
, build
klasö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, adb
sunucu 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.command
ancak 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ı nvm
ve düğümün birden çok sürümünü yüklediğinizi varsayarsak , işte çözüm:
npm install -g react-native-cli
de node v6.9.5
. node v6.9.5
çalıştırarak varsayılan olarak yapnvm alias default 6.9.5
react-native run-ios
Sorun, üzerinden düğümün birden çok sürümünün yüklü olması nvm
ve 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 nvm
yü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 localhost
için 127.0.0.1
ancak 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