react-native init awesomeProjectを使用して新しいプロジェクトを開始した後、index.ios.jsとindex.Android.iossrcという名前の共通フォルダー内.
react-native run-Androidを実行すると、次のエラーが発生します。
正しいパスにあるエントリファイルの反応ネイティブ検索に変更する必要があるのはどこですか?
反応ネイティブ0.35で次の手順を使用しました
開発のためには、ファイルを開く必要があります
MyProject/Android/app/src/main/Java/com/MyProject/MainApplication.Java
ReactNativeHost
と呼ばれるgetJSMainModuleName
のメソッドをオーバーライドします。
package com.MyProject;
// ...
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// ...
// ADD THE LINES BELOW
@Override
protected String getJSMainModuleName() {
return "src/index.Android";
}
// ADD THE LINES ABOVE
};
// ...
}
このようにして、アプリはパッケージャサーバーからモジュールをフェッチする場所を認識します。
本番環境では、cd Android && ./gradlew assembleRelease
を使用してAPKをビルドするときに、ファイルを変更する必要があります
MyProject/Android/app/build.gradle
カスタムビルドオプションを追加する場合は、apply from: "../../node_modules/react-native/react.gradle"
行の前に配置してください。
apply plugin: "com.Android.application"
import com.Android.build.OutputFile
// ...
// ADD THE LINES BELOW
project.ext.react = [
// the entry file for bundle generation
entryFile: "src/index.Android.js",
]
// ADD THE LINES ABOVE
// ...
apply from: "../../node_modules/react-native/react.gradle"
残念ながら、現在iOSの設定を行っていません。それについてはまだサポートできません。
マイケルの情報をありがとう!私はiOSでケースを作成し、AndroidとiOSの両方で回答を完成させました。
Androidと同じように、開発と生産の答えは異なります。
開発用(デバッグモード)
AppDelegate.m
に移動
パラメータjsBundleURLForBundleRoot
をエントリファイルのパスとして設定し、moduleName
をRN jsに登録したコンポーネントとして設定します。たとえば、エントリjsファイルをjs/screen/LoginScreen.jsに、コンポーネントをLoginScreenに変更したい場合は、次のようにします。
jsCodeLocation = [[RCTBundleURLProvider sharedSettings]
jsBundleURLForBundleRoot:@"js/screen/LoginScreen"
fallbackResource:nil];
rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"LoginScreen"
initialProperties:nil
launchOptions:launchOptions];
プロダクション(リリースモード)
プロダクションモードの場合、Xcodeはビルド中にjsbundleファイルを生成します。デバッグモードで行ったことに加えて、jscodeのエントリファイルをXcodeに通知する必要があります。
現在のターゲットの「Build Phases」タブに移動します。 「バンドルReactネイティブコードとイメージ」フェーズで、シェルの最後にエントリファイルを追加します
IOSで開発/生成モードを実行する方法についての情報 here