反応ネイティブで「バンドルURLがありません」の意味は何ですか?


199

反応ネイティブプロジェクトを実行すると、エラーno bundle URL presentが発生しますが、自分が何をしたのかわかりません。非常に混乱しました。

ここに画像の説明を入力してください


2
ネイティブiOSアプリの反応でこの問題に直面しました。xcodeのiosフォルダーでxcodeprojを開き、そこから実行します。プロキシを使用していないことを確認してください。
Abhay Shiro

9
ほとんどの場合、ビルドディレクトリをクリアすると役立ちますrm -rf ios/build/
onmyway133 '12

それはほとんどの状況で私を助けます。しかし、この特定のケースでは、次のコマンドでこのエラーを修正できました(react-native: "0.60.4"):watchman watch-del-all
O. Borcuhin

これは通常、メトロバンドラーが実行されていないことを意味し、一部の人々はそれを自分の端末または標準のコンピューター端末で実行しています。私は通常、ターミナルを閉じ、アプリを再起動し、それを修正します。
サライネスカルデロン

回答:


128

エラーを解決するには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


1
私にとって非常に便利です。私がしなければならなかった唯一の他のことは、まだ閉じていなければシミュレータを終了することでした。
AnnawanDev

74

私もこの問題に遭遇しました(初めてReact Nativeを使い始めたとき)。問題は、いつ消えた-しばらくのIOSシミュレーション(react-native run-ios)実行していた-私は走ったnpm install当時とreact-native run-ios再び。ターミナルウィンドウでは、バンドルされていることが示され、シミュレーターにウェルカム画面が表示されました。

react-native init PropertyFinderラインが使用しようとした後、このリンクのブリーフを確認してくださいnpm start(これは私にとってはうまくいきます)

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

16.9の更新

ポート8081がMcAfeeによってブロックされました。別のポートを直接使用しても機能react-native start --port=8082しませんでした。react-native run-ios --port=8082

ここに記載されているほとんどすべてのソリューションを試しました。しかし、何もうまくいきませんでした。

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

解決:

Xcodeで8081を検索し、それらすべてを8082に置き換えました。次に、同じコマンドを実行してアプリをビルドして実行します。アプリはスムーズに動作します

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

ここに画像の説明を入力してください


2
@dcp「react-native run-ios」をすでに起動している間に複数回実行してみましたか?アプリを起動するたびに、少なくとも2回は実行する必要があるようです(毎回約2分間待機しています)。
Suvaをスキップ

私にとってはうまくいきますが、毎回このステップを含まない長期的な修正を見つけたいと思っています。
mheavers 2017

31

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


3
これは、なんとかして、react-native 0.60アップグレードの一部として私に起こりました。
IonicBurger

同じ動画リンク、youtube.com
watch?v

これも私に起こりました。しかし、それをクリックしました。それでも同じ問題
Jason G

29

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

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

次のコマンドを実行するとうまくいきました:

sudo xcodebuild -license

後Xcodeで端末と、ビルドして実行した後、TKSこれは私のために仕事がある
HSUテス

いいえ。まだうまくいきません。私は別のポートで実行しています。8081はブロックされています
Ashish Singh Rawat

27

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

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

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>

4
この男はなんてヒーローだ。私と私のMacbookが窓から飛び出すのを防いだ!例外ドメインlocalhostをInfo.plistのローカルネットワークアドレスに変更したため、解決されませんでした。'localhost'のブロックを例外ドメインとして追加しましたが、機能しました。
ダライアス

1
真剣にあなたの答えが神のように私に来た....あなたを揺さぶる兄弟.....私は言葉がありません。おかげで、木曜日からはまりました。
Tushar Pandey

26

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

react-native upgrade

問題:バンドルの実行に失敗した場合のRCTFatalでの無限再帰


1
はい、しかし私の場合、アップグレードする必要はありませんでした。端末とシミュレータを閉じるだけで十分でした。
ジャンニ2017年

@gianni現在使用している反応ネイティブのバージョンは何ですか?
Mateo Marconi

1
それでもエラーは発生し、違いはないようです。
SSHこの

2
これは私にとってはうまくいきましたが、シミュレーターも閉じて、react-native run-iosを実行する必要があります
James O'Brien

1
`` `を助けませんでしたinfoバージョンが渡されませんでした。最新を取得しています...警告指定されたバージョン「0.61.5」はすでにnode_modulesにインストールされており、「0.61.5」のサーバー範囲を満たしています。`` `をアップグレードする必要はありません
Ashish Singh Rawat

19

理由:

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

解決:

  • ネイティブクローズの反応に関連するすべてのことを確認してください(私のソリューションのクリーンスタートを開始するためだけに必要ではありません。説明の後、これが必要かどうかを理解できます)。
  • 実行npm run startまたはyarn start最初
  • このコマンドが完了するまで待ちます(通常はが表示されますLoading dependency graph, done.
  • 走る react-native run-ios/android

説明:

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

    • ネイティブ部分
    • JavaScript部分
  • ビルドコマンド:

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

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

=>通常、JavaScriptの部分が最初に終了し、ネイティブの部分が後になります。(使用時間に基づく)。

=>これは、初回ビルド(新規ビルド)にのみ当てはまります。

=>再構築の場合:

  • ネイティブパーツは、変更をチェックするのに10〜15秒かかっただけです。これは、ネイティブパーツの変更がないため、JavaScriptパーツがビルドされて提供される前に行われたためです。(Javascriptパーツが再構築されたかどうかはわかりませんが、ネイティブパーツよりも時間がかかりました)

  • そのため、この問題が発生した理由は、アプリが実行され、まだ存在しないものが必要だったためです。

ボーナス:

  • react-native run-ios/android 開発サーバーが自動的に起動します。
  • そのため、のreact-native run-ios/android直後に実行した場合react-native init <app_name>、すべてが正常に実行されました。(自動開始機能と上記の状態のフレッシュビルドに時間がかかったため)。
  • 他の「削除」ソリューションは、再構築を強制したため機能しました。

この回答に使用された時間は私のマシンに相対的でした=>他のものとは異なる場合があります。


14

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

$ sudo xcodebuild -license

これで問題が解決する場合があります。これは私にとってはうまくいきます。


11

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


9

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

解決 :

etchostファイルにlocalhost ipを追加してみてください。

以下の行をetcホストファイル(/ etc / hosts)に追加できます。

127.0.0.1 localhost

255.255.255.255 broadcasthost

:: 1 l。ocalhost

これが問題である ことを確認するには、 SafariのバンドルURLにアクセスします(Chromeで試した場合、これは解決しますが、Safariは解決できません)。http:// localhost:8081 / index.ios.bundle?platform = ios&dev = true&minify = false


まったく新しいコンピュータに移行した後、これが必要でした。TY!
jeffctown 2018

はい、ここで新しいコンピュータでも同じです。
Vishal Sakaria

私の問題は、ネットワーク構成でプロキシを設定することでした。
Ahmad Khani

8

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

このファイルは/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>

*(リリースバージョンではこれを削除することを忘れないでください。)


7

私にとっての問題は、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 react@16.0.0-alpha.3

この問題は、リアクションアルファの新しいバージョン(特にalpha.5)がリリースされており、リアクションネイティブビルドを破壊しているため、すべての人に発生しています。


コマンド 'react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/ main.jsbundle 'は、バンドルの構築におけるエラーを記述します。このコマンドが成功するまで、run-iosは機能しません
エリックf。

私の現在のエラーは、「react-redux」の「@connect」がどういうわけか認識されていないということですか?
エリックf。

多分"plugins": ["transform-decorators-legacy"]あなたの.babelrcファイルに追加してみてください。または、接続HOCで試してください。
urbancvek 2017

@urbancvek、私にとってエラーはこれThe node type SpreadProperty has been renamed to SpreadElement@babel内のその参照ライブラリですがnode_modules、これに対処するものは何も見つかりませんでした。
Daniel

7

解決策-> npm start次に新しいターミナルを開き、プロジェクトパスに移動して、ヒット react-native run-iosします


7

私のためにそれを解決したもの:

  • ターミナルウィンドウを開く
  • cdYOUR_PROJECT/ios
  • ビルドフォルダを削除します rm -r build
  • react-native run-iosもう一度走る

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

その後、react-native run-ios再度実行します。

出典:Andrew Bancroft


5

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

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

3
「これは、react-native v0.42.1の問題です。」-v.0.43にも存在します。
dcp


5

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

cd your react native app directory/ react-native start 

パッケージャーが起動し、このターミナルウィンドウを閉じないで、別のターミナルウィンドウでプロジェクトを実行します。これは私がそれを適切に機能させるために見つけた唯一の欲求です。


4

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


4

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

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


3

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

または、パッケージャーサーバーを維持する別の方法を見つける必要があります


ありがとう、私は万里の長城を横断するためにグローバルVPNをオープンしました!
BaiJiFeiLong 2017年

Macで自動プロキシ設定を無効にしました。それは2日間の努力の後に働きました:D ...ありがとう。
Nirav Jain

私は確かに、私も覚えていないVPNを実行していました。それをシャットダウンするとうまくいきました!
ペドロマルケス

3

Macを再起動した後、私にも同じことが起こりました。シミュレーターでアプリを実行すると、launchPackagerターミナルウィンドウが開きます。そのウィンドウを閉じてプロセスを終了し(シミュレーターも閉じました)、react-native run-iosを再度実行すると、すべてが正常に機能します。



3

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


3

info.plistのNSExceptionDomains dictで 'localhost'キーを確認してください

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


2

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

  1. で実行するとnpm install -g react-native-clinode 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すると、別の新しいターミナルウィンドウが開きます。デフォルトでnvmは、インストールしたノードのバージョンが指定されていませんreact-native-cli。上記の設定に従ってください。それが役立つことを願っています。


2

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

追加

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

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


1

と協力していRN 0.49.5ます。私はたくさんの方法を試しましたが、誰もうまくいきません。最後に私はこれを解決しました。シンプルで簡単です。

主なアイデアはをに変更するlocalhostこと127.0.0.1ですが、RNが指示するところではありません。それはRCTBundleURLProvider.m#-(BOOL)isPackagerRunning:(NSString *)hostにあります

コードの変更: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; これはシミュレーターでは問題ありません。デバイスの場合は、IPアドレスをマシンのアドレスに変更するだけです。


ソリューションについて詳しく教えてください。
Ashish Singh Rawat

1

私にとってうまく機能しているもう1つのことは、xcodeでプロジェクトを開き、クリーンアップしてビルドすることです。通常、パッケージサーバーを再実行して問題を解決します。


1

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

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

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


0

launchPackage.commandターミナルで実行されていることを確認して、もう一度実行してください。バンドルを構築します。ちょっとwebpack-dev-serverに似ています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.