73

まず、react についてはわかりませんが、シミュレーターの代わりに iOS デバイスにデプロイすることは、ドキュメントで行うのはそれほど難しくないと考えました。それらは少しまばらでしたが、どこかにたどり着きましたが、今は行き詰まっています。main.jsbundle を作成して Xcode プロジェクトに追加し、AppDelegate.m の行のコメントを外しました。

デプロイすると、次のエラーが発生します。

2015-03-26 16:13:08.538 AwesomeProject[4753:2477032] >
  RCTJSLog> "Running application "AwesomeProject" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF"
2015-03-26 16:13:08.547 AwesomeProject[4753:2477032] >
  RCTJSLog> "Error: 
 stack: 
  runApplication                  main.jsbundle:33769
  jsCall                          main.jsbundle:7157
  _callFunction                   main.jsbundle:7404
  applyWithGuard                  main.jsbundle:877
  guardReturn                     main.jsbundle:7206
  callFunctionReturnFlushedQueue  main.jsbundle:7413
 URL: file:///private/var/mobile/Containers/Bundle/Application/DBC0DAF4-B568-4CF5-B156-9EFEE4E7FF4A/AwesomeProject.app/main.jsbundle
 line: 1536
 message: Invariant Violation: Application AwesomeProject has not been registered."
2015-03-26 16:13:08.723 AwesomeProject[4753:2477032] >
  RCTJSLog> "#CLOWNTOWN (error while displaying error): Network request failed"
4

14 に答える 14

141

@krazyeom の修正はこのエラーとは何の関係もないと確信しています。私の場合、以前に実行したテスト アプリから実行していたターミナルを終了することで、これを修正しました。端末が混乱していて、プロジェクトが XCode に読み込まれなくなったプロセスにまだフックされていたようです。次のことを試してください。

  1. React Native によって生成されたターミナルを閉じます。
  2. XCode を完全にシャットダウンします (不要な場合があります)。
  3. すべてを再度開き、再実行します。
于 2015-03-27T16:35:09.193 に答える
15

同じ問題がありました。AppDelegate の moduleNameAppRegistry.registerComponentの両方に同じ名前を付けることで解決しました

アプリを実行している場合は、プロジェクトの新しい名前に一致するようにフィールドの$ react-native run-ios名前を変更する必要があります。電話シミュレーターを更新すると、新しいコードが表示されます。moduleName./ios/[project name]/AppDelegate.m

于 2015-04-15T14:08:29.217 に答える
1

私はすべてを閉鎖するのが好きではないので、これをさらに掘り下げます。

私がしなければならなかったのは、ターミナル ウィンドウで、次のコマンドを実行することだけでした。

../lala/node_modules/react-native/packager/launchPackager.command ; exit; 

私のプロジェクト名は "lala" だったので、プロジェクトにも node_modules があることを確認してください。

lala をプロジェクト名に置き換えてください。

ポートが既に使用されているというエラーが表示された場合:

 ERROR  Packager can't listen on port 8081

次に、2 つの選択肢があります。

  • すでに実行中のプログラムを強制終了します。
  • または : に移動してポートを変更し、../lala/node_modules/react-native/packager/packager.jsポート番号 (例: 8081) を見つけて、使用されていないポート番号に置き換えます。
 var options = parseCommandLine([{
          command: 'port',
          default: 8082,
        }, {

このファイルを保存してから、上記のコマンドを再度実行します。

このようにして、複数の反応を実行できます。

于 2015-05-10T09:52:37.587 に答える
1

xcodeとターミナルを含むすべてを再起動すると、同じエラーが発生しました。

于 2015-06-28T19:06:01.863 に答える