web-dev-qa-db-ja.com

反応ネイティブで「バンドルURLが存在しない」の意味は何ですか?

反応ネイティブプロジェクトを実行すると、エラーno bundle URL presentが発生しますが、どのような間違いをしたのかわからないので、私は非常に混乱しました。

enter image description here

143
Yingch Xue

次の方法でエラーNo bundle URL presentを解決してください。

  • 次のコマンドをプロジェクトのルートディレクトリで実行して、iOSビルドディレクトリを削除し、他のReact Nativeセッションを(デフォルトのポート8081で実行されていると仮定して)強制終了してから再構築します。

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

  • 上記のコマンドの組み合わせをエイリアスに組み合わせ、それを次のコマンドでBash設定ファイル.bashrcに追加することで、これらのエラーが発生しないようにReact Nativeワークフローを更新します。

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

今、あなたはReact Native iOSビルドを実行することができます(死の一般的な赤いエラー画面が表示されることを心配せずに)、簡単なエイリアスショートカットで:

rni

96
Luke Schoen

私はこの問題にも遭遇したばかりです(初めてReact Nativeを使い始める)。 iosシミュレーション(react-native run-ios)の実行中に問題が解決しました - npm installを実行してからreact-native run-iosを再度実行しました。端末ウィンドウでは、バンドルしていることが示され、その後シミュレータはウェルカム画面を表示しました。

このリンクで概要を確認してくださいreact-native init PropertyFinder行の後にnpm startを使用してみてください(これは私にとって役に立ちます)。

63
Skip Suva

シミュレータと端末を閉じます。新しいプロジェクトを開き、プロジェクトに移動してから、次のように反応ネイティブをアップグレードします。

react-native upgrade

の問題: https://github.com/facebook/react-native/issues/5090

27
Mateo Marconi

エラーメッセージの指示に従って。

Xcode/iOSライセンスに同意するには管理者権限が必要です。 "Sudo xcodebuild -license"を実行してからこのコマンドを再試行してください。

...私は次のコマンドを実行しました:

Sudo xcodebuild -license

今うまくいきます。

25
cwRichardKim

この問題は、localhostを介した安全でない接続を許可しない場合、またはhttpを介した安全でない接続を受け入れようとした場合に発生します。

これを修正するには、これをinfo.plistに追加します。

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>
</key>
18
Witalo Benicio

アプリをバンドルしたときに同じ問題が発生しました。あなたのmain.jsbundleがあなたのメインプロジェクトをターゲットにしていることを確認してください

17
parse

理由:

これは、アプリがサーバーを見つけることができないためです(これはUIを提供します - JavaScriptコードによる)。

溶液:

  • ネイティブに対応することに関連するすべてが閉じていることを確認してください。
  • 最初にnpm run startまたはyarn startを実行
  • このコマンドが完了したジョブを待ちます(通常はLoading dependency graph, done.と表示されます)
  • react-native run-ios/Androidを実行

説明:

  • React Nativeには2つの部分があります。

    • ネイティブ部
    • ジャバスクリプト部
  • ビルドコマンド:

    • react-native run-ios/Androidはネイティブパーツを構築してからデバイスにデプロイしてデバイス上でアプリを起動することです(シミュレータ/エミュレータ/実際のデバイス)。これは通常完了するのに3〜4分かかりました。

    • npm run startまたはyarn startは、javascriptパーツをビルドしてdevサーバーを起動し、ビルドされたUIをアプリに提供することです。これは通常終了するのに30秒かかりました。

=>通常、javascriptの部分が最初に終わり、次にネイティブの部分が遅くなります。 (彼らが使用した時間に基づく)。

=>これは最初のビルド(フレッシュビルド)にのみ当てはまります。

=>再構築の場合:

  • ネイティブ部分は変更をチェックするのに10〜15秒かかりました。ネイティブ部分の変更はJavaScript部分が構築されて提供される前に行われなかったからです。 (私は、JavaScriptの部分が再構築されたかどうかわからないが、それはネイティブの部分よりも長い時間がかかりました)

  • だから我々はこの問題を抱えていた理由は、アプリが実行され、まだ存在していないものを必要としていました。

ボーナス:

  • react-native run-ios/Androidはdevサーバーを自動起動します。
  • react-native run-ios/Androidの直後にreact-native init <app_name>を実行したとき、すべてがうまくいったのはそのためです。 (自動起動機能と上記の状態でフレッシュビルドに時間がかかったため)。
  • 他の「削除」ソリューションは、再構築を余儀なくされたため機能しました。

この答えで使われた時間は私のマシンの相対的なものです=>.

13
Khoa

私は同じエラーがあり、Xcodeを介してのみアプリを実行することができました。 react-native run-iosは動作しませんでした。この問題を解決するには、YOUR_PROJECT/ios/build/buildフォルダーを削除する必要があります。この後、あなたは再びreact-native run-iosを通してあなたのアプリを実行することができるはずです。お役に立てれば。

11
sonlexqt

このコードを実行してみてください---

Sudo xcodebuild -license

これで問題が解決する可能性があります。これは私のために働きます。

7
Kusal Kithmal

何が私のためにそれを解決しました:

  • 端末ウィンドウを開く
  • cdYOUR_PROJECT/ios
  • rm -r buildでビルドフォルダを削除します
  • react-native run-iosをもう一度実行してください

あるいは、Finderを開き、YOUR_PROJECT/iosに移動してbuildフォルダを削除することもできます。

それからreact-native run-ios againを実行してください。

出典: アンドリュー・バンクロフト

6
l3aronsansgland

解決策 - > npm startそれから新しいTerminalを開いてあなたのプロジェクトパスに行って、それからreact-native run-iosを押してください。

5
rahul.sapkal23

ATS設定が.plistファイルで正しいことを確認してください。

ファイルは /ios/{{project_name}}/Info.plist にあります。

localhostは、次のように例外要求の対象として定義する必要があります。

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

*(リリース版ではこれを削除するのを忘れないでください。)

5

ほとんどの場合、この問題はDNSルックアップ/ IPルックアップがlocalhostを見つけられないときに発生します。

解決策:

あなたのetcホストファイルにlocalhost ipを追加してみてください。

以下の行をあなたのetcホストファイル(/ etc/hosts)に追加することができます。

127.0.0.1 localhost

255.255.255.255ブロードキャストホスト

:: 1リットル。オカロス

これが問題であることを確認するには あなたはsafariのバンドルURLを打つことができます(あなたがクロムでそれを試みるならこれは解決するでしょうが、safariはそれを解決することができません)。 http:// localhost:8081/index.ios.bundle?platform = ios&dev = true&minify = false

5
Vivek

私にとって問題は、JSバンドルを作成できなかったことです。 Xcodeからビルドするときにエラーが表示されないので、これを知る方法はありません。エラーを見つけるには、次のコマンドを実行してください。

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

私にとっては、エラーはPureRenderMixinコンポーネントが欠けているというものでした。解決策はここで見つけることができます: https://github.com/facebook/react-native/issues/13078 。基本的にはreact @ 16.0.0-alpha 3を手動でインストールしなければなりません。これは、このコマンドを実行して実行できます。

npm i --save [email protected]

この問題は誰にでも起きています。新しいバージョンの反応性アルファ(特にアルファ5)がリリースされ、反応性ビルドを壊しているからです。

5
urbancvek

これはreact-native v0.42.1の問題です。すべての端末とXCodeインスタンスを閉じて実行してみてください。

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
4
Shobhit Sharma

これを回避する最も簡単な方法は、シミュレータ内でアプリを終了し(2 x Cmd + Shift + H)、再起動することです。

4
Toby Flemming

最初にシミュレータを閉じてから、端末上でこれらを実行してください。

npm install

react-native run-ios
4

info.plistに記述されているNSExceptionDomains辞書の「localhost」キーを確認してください。

存在しない場合はエラーになります。

3
ogelacinyc

私の場合、問題はadbサーバーを再起動することで解決されました:adb kill-server && adb start-server

2
Grzegorz Pawlik

ネットワークプロキシを確認して、シャットダウンしてください。

または、パッケージャサーバを管理するための他の方法を見つけるべきです。

2
user1684758

私はこの問題も私のために起こっていました...問題はおそらくパッカーがそれを実行していなかったということが私のデフォルトのシェルがzshだったことのように思えました。 react-nativeは、新しいターミナルウィンドウを開いて.../node_modules/react-native/packager/launchPackager.commandを実行するのに疲れますが、これは実行されませんでした。それを手動で実行して(そして実行し続けて)これを修正しました。

2
Chris

私のMacを再起動した後、それは私にも起こった。シミュレータでアプリを実行すると、launchPackagerターミナルウィンドウが開きます。私はそのウィンドウを閉じてプロセスを終了させ(私もシミュレータを閉じました)、次にreact-native run-iosを再度実行してもすべてうまくいきます。

2
gianni

私はこれと同じ問題を抱えていました。しかし、私の問題は私のMacとiPhoneが同じwifiネットワークになかったことでした。

そのため、それらがすべて同じネットワーク内にあることを確認して、もう一度再構築してください。そうでない場合は、ここで他のメンバーによって言及された解決策を試してください。

2

nvmを使用しており、複数のバージョンのノードがインストールされていると仮定すると、これが解決策です。

  1. npm install -g react-native-cliの中でnode v6.9.5を実行したとしましょう。
  2. node v6.9.5を実行してnvm alias default 6.9.5をデフォルトにします。
  3. react-native run-iosを実行してください

問題は、nvm経由でインストールされたノードの複数のバージョンがあり、react-native-cliをインストールするには、nvmを指すようにデフォルトノードとしてマークされていない最新バージョンのノードを切り替えまたはインストールしたことです。 react-native run-iosを実行すると、デフォルトのnvmreact-native-cliをインストールしたノードのバージョンを指していない別の新しいターミナルウィンドウが開きます。上記の設定に従ってください、私はそれが役立つはずです。

2
Syed

ターミナルreact-native startで実行するだけです。

cd your react native app directory/ react-native start 

それはパッケージャを起動します、今このターミナルウィンドウを閉じないでください、あなたのプロジェクトを実行する別のターミナルウィンドウで。これは私がそれをきちんと動かしてもらうために見つけた唯一の欲求です。

1

launchPackage.commandが端末で実行されていることを確認して、もう一度実行してください。それはバンドルを構築します。それはちょっとwebpack-dev-serverのようです。

0
Codler

以下のコマンドを実行します。

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

launchpackager.commandが開き、アプリケーションがiOSシミュレーターにインストールされます

0
Saif Siddiqui

私のために働くもう一つのことは、xcodeでプロジェクトを開き、そしてそれをきれいにして構築することです。通常はパッケージングサーバを再実行して問題を解決します。

0
Eliran Goshen

私は私のMacBookのケーブルと無線LANでネットワークに接続し、無線LANを無効にして、ただ走るだけでうまくいきました!

0
WiRa

これを回避するために、RNのドキュメントでデバッグビルドを高速化するために追加したビルドスクリプトのSKIP_BUNDLINGオプションを削除しました。本当の修正(私達の原因による)はRN 0.57に含まれています。

https://github.com/facebook/react-native/issues/20553

0
mikeh

これは私のために働きます。結果として、本番目的でiOSのplistファイルからこの行を削除しました。シミュレータはバンドルファイルを取得できませんでした。 https://medium.com/@joshuakuhar/no-bundle-url-present-69333bb5da42

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        </dict>
    </dict>
</dict>
0
Tarik Chakur

私はRN 0.49.5を使っています。私はたくさんの方法を試したが、だれも動かない。最後に私はこれを解決しました。それはシンプルで簡単です。

主なアイデアはlocalhost127.0.0.1に変更することですが、RNがあなたに言うところではありません。 RCTBundleURLProvider.m# - (BOOL)isPackagerRunning:(NSString *)Host にあります。

コードの変更:oc - NSString *Host = ipGuess ?: @"localhost"; + NSString *Host = ipGuess ?: @"127.0.0.1";これはシミュレータには問題ありません。それがデバイスの場合は、単にあなたのマシンのものにIPアドレスを変更してください。

0
Bruce Lee
  1. 127.0.0.1 localhostが削除されていないことをホストに確認してください
  2. ネットワークエージェントが設定されていないことを確認してください。
  3. プロジェクトをリセットするにはnpm installreact-native upgrade
0
Jane

私のユースケースでは、node_modulesディレクトリを削除してnpm installを実行する必要がありました。

$ rm -rf node_modules   (make sure you're in the ios project directory)
$ npm install

「dyld:ライブラリがロードされていません:/usr/local/opt/icu4c/lib/libicui18n.58.dylib」というエラーが表示された場合は、次の手順を実行してください。

$ brew uninstall --force node --ignore-dependencies node
$ brew uninstall icu4c --ignore-dependencies icu4c
$ brew install icu4c
$ brew unlink icu4c && brew link icu4c --force
$ brew install node

$ npm install
0
Hau Le

export FORCE_BUNDLING=trueは私のために働きました。バンドルされていないことをコンソールに警告がありました。

0
Techmaddy

私は以下のすべての解決策を試したが、何もうまくいかない:

  • Sudo xcodebuild -licenseまたは
  • rm -r buildでビルドフォルダを削除してreact-native run-iosを実行する
  • npm startを実行してreact-native run-iosを実行
  • NSAppTransportSecurityを `に追加します

私はこれをやって解決した:

  • ホストファイルSudo vi /private/etc/hostsを開きます(VSCodeを使用している場合は、このSudo code /private/etc/hostsを使用します)。
  • 存在しない場合は3行追加
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
  • react-native run-iosをもう一度実行してください。
0
Le Xuan Tien

これは、おそらくMetro Bundler Windowを閉じているか、クラッシュする可能性があるためです。プロジェクトディレクトリで別の端末/ cmdを開き、npm startを実行するだけです。 npm start React Nativeを実行すると、MetroBundlerウィンドウが再び起動します。バンドラーがBUNDLEプロセスを終了したら、アプリケーションをリロードするだけで準備完了です。

0
Kiran Maniya

あなたのクライアントがあなたのパッケージャサーバにアクセスできないからです。

私と同じようにあなたが中国のコーダーであるならば、私はあなたがGFWを通過するVPNを使うかもしれないと思います。あなたのVPNツールが「グローバルモード」にあるとき、あなたの要求はすべて世界中を行き来し、localhostを取得することはできません。

「自動プロキシモード」を試してください。

あなたが中国から来ていないか、あなたのVPN設定がすでに 'Auto Proxy Mode'になっているならば、私はあなたがあなたのパッケージャサーバをシャットダウンしてやり直すことを勧めます。

0
Jared Chen

私は同じ問題に直面し、AppDelegate.mファイルを変更することで解決しました。私が変更され

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

そしてそれは私のために働いた:)

0
Waleed Naveed

この問題は、nvmによって管理されているノードのバージョンが複数あり、デフォルトバージョンがreact-nativeを実行するためのバージョンではない場合に発生する可能性があります。 (ノード8.3以降であることを確認してください)

反応ネイティブのrun-ios

新しい端末を開き、$ PATHにあるバージョンのノードを実行します。

React nativeでサポートされていない古いバージョンのノードが見つかった場合は、このエラーが発生する可能性があります。

新しい端末が開かれたときに、$ PATH変数がすでに目的のバージョンのノードを指していることを確認してください(ノード8.3以降であることを確認してください)。

これで問題は解決しました。がんばろう。

0
Arun Kandregula

...これが起こっているもう一つの理由は、あなたがVisual Studio Code React Native Tools をインストールしていても端末で反応ネイティブを使おうとし続けている場合です。あなたに赤いno bundle画面を見せてください。

vscodeからネイティブに反応するの起動は、代わりに完璧に動作します...

0
Edoardo

この問題は、Metro bundlerが起動し、別のウィンドウでキーボードで入力しているときにフォーカスを受け取ったために発生しました。新しく開いたターミナルウィンドウに誤って入力すると、Metro bundlerがクラッシュしました。 react-native run-ios辛抱強く待っているを再実行すると修正されました。

0
schmijos

YOUR_PROJECT/iosにターミナルウィンドウを開きますrm -r buildでビルドフォルダーを削除します

その後、プロジェクトをXcodeで開き、1回実行します。サーバーを起動して実行し、main.jsbundleファイルを作成します。

これで、react-native run-iosを端末から再度実行すると、期待どおりに動作します。

それが役立つことを願っています!.

0
vikram

グローバルプロキシ(シャドウソック)をオフにする

0
ynceonrudi

これが私のやり方です。

  • 端末ウィンドウを開く
  • yOUR_PROJECTに移動/ ios
  • Rm -r buildで build フォルダを削除します。
  • React-native run-iosをもう一度実行します。
0
SoftwareTheory

これを追加してみてください。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>
0
G. Adnane

プロジェクトに.jsbundleがあることを確認してください

追加する

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

反応するネイティブコードでプロジェクトを再度開いてみてください

0
Saloni Parikh