rm -rf ios/build/
watchman watch-del-all
rm -rf ios/build/
watchman watch-del-all
回答:
エラーを解決するには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
これで、シンプルなエイリアスショートカットを使用して、React Native iOSビルドを実行できます(死の一般的な赤いエラー画面が表示されることを心配する必要はありません)。
rni
私もこの問題に遭遇しました(初めて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
エラーメッセージの指示に従って:
Xcode / iOSライセンスに同意するには、管理者権限が必要です。「sudo xcodebuild -license」を実行してから、このコマンドを再試行してください。
次のコマンドを実行するとうまくいきました:
sudo xcodebuild -license
この問題は、localhostを介した安全でない接続を許可しない場合、またはhttpを介した安全でない接続を受け入れようとした場合に発生します。
これを修正するには、これを追加しinfo.plist
ます:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhost
をInfo.plistのローカルネットワークアドレスに変更したため、解決されませんでした。'localhost'のブロックを例外ドメインとして追加しましたが、機能しました。
シミュレータとターミナルを閉じます。新しいものを開いてプロジェクトに移動し、次のように反応ネイティブをアップグレードします。
react-native upgrade
理由:
これは、アプリがサーバーを見つけることができないためです(サーバーは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パーツをビルドし、開発サーバーを起動して、ビルドされたUIをアプリに提供します。これは通常、完了するまでに30秒かかりました。
=>通常、JavaScriptの部分が最初に終了し、ネイティブの部分が後になります。(使用時間に基づく)。
=>これは、初回ビルド(新規ビルド)にのみ当てはまります。
=>再構築の場合:
ネイティブパーツは、変更をチェックするのに10〜15秒かかっただけです。これは、ネイティブパーツの変更がないため、JavaScriptパーツがビルドされて提供される前に行われたためです。(Javascriptパーツが再構築されたかどうかはわかりませんが、ネイティブパーツよりも時間がかかりました)
そのため、この問題が発生した理由は、アプリが実行され、まだ存在しないものが必要だったためです。
ボーナス:
react-native run-ios/android
開発サーバーが自動的に起動します。react-native run-ios/android
直後に実行した場合react-native init <app_name>
、すべてが正常に実行されました。(自動開始機能と上記の状態のフレッシュビルドに時間がかかったため)。この回答に使用された時間は私のマシンに相対的でした=>他のものとは異なる場合があります。
この問題のほとんどは、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
.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>
*(リリースバージョンではこれを削除することを忘れないでください。)
私にとっての問題は、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)がリリースされており、リアクションネイティブビルドを破壊しているため、すべての人に発生しています。
"plugins": ["transform-decorators-legacy"]
あなたの.babelrcファイルに追加してみてください。または、接続HOCで試してください。
The node type SpreadProperty has been renamed to SpreadElement
と@babel
内のその参照ライブラリですがnode_modules
、これに対処するものは何も見つかりませんでした。
解決策->
npm start
次に新しいターミナルを開き、プロジェクトパスに移動して、ヒット
react-native run-ios
します
私のためにそれを解決したもの:
cd
に YOUR_PROJECT/ios
rm -r build
react-native run-ios
もう一度走るまたは、Finderを開いてYOUR_PROJECT/ios
、build
フォルダに移動して削除することもできます。
その後、react-native run-ios
再度実行します。
これは、react-native v0.42.1の問題です。すべてのターミナルとXCodeインスタンスを閉じて実行してみてください:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
最初にシミュレータを閉じてから、ターミナルでこれらを実行します
npm install
react-native run-ios
ターミナルで実行するだけreact-native start
です:
cd your react native app directory/ react-native start
パッケージャーが起動し、このターミナルウィンドウを閉じないで、別のターミナルウィンドウでプロジェクトを実行します。これは私がそれを適切に機能させるために見つけた唯一の欲求です。
私も同じ問題を抱えていました。しかし、私の問題は私のMacとiPhoneが同じwifiネットワークにないことでした。
したがって、それらがすべて同じネットワーク内にあることを確認し、もう一度再構築してください。そうでない場合は、ここで他のメンバーが言及している解決策を試してください。
ネットワークプロキシを確認し、シャットダウンしてください。
または、パッケージャーサーバーを維持する別の方法を見つける必要があります
私の場合、問題はadb
サーバーを再起動することで修正されました:adb kill-server && adb start-server
info.plistのNSExceptionDomains dictで 'localhost'キーを確認してください
存在しない場合はエラーになります。
あなたが使用nvm
していて、ノードの複数のバージョンがインストールされていると仮定すると、これが解決策です:
npm install -g react-native-cli
しnode v6.9.5
ます。 node v6.9.5
実行することにより、デフォルトとして作るnvm alias default 6.9.5
react-native run-ios
問題は、を介しnvm
てインストールされた複数のバージョンのノードがあり、インストールreact-native-cli
するために、デフォルトのノードとしてまだマークされていない最新バージョンのノードに切り替えまたはインストールしたことですnvm
。これを実行react-native run-ios
すると、別の新しいターミナルウィンドウが開きます。デフォルトでnvm
は、インストールしたノードのバージョンが指定されていませんreact-native-cli
。上記の設定に従ってください。それが役立つことを願っています。
と協力してい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アドレスをマシンのアドレスに変更するだけです。