私は反応ネイティブで新しいので、ステップで何か問題がある場合は私に知らせてください。
私はドキュメントに従ってコマンドを使用して反応ネイティブAndroidアプリを構築しました
反応ネイティブAndroid
デバイス上で実行中に次のコマンドが使用された
反応ネイティブの実行 - Android
これは私のプロジェクトフォルダー/ Android/app/build/output/apkに2つのapkファイルの出力を表示します。
今私がインストール後にこのapkをインストールするのに使用するとき、JSをバンドルするために接続するために開発サーバーを要求します。しかし、私の要件は、ユーザーがapkをインストールする必要があるだけで、ユーザーが開発サーバーと戦う必要がないということです。
いくつかの stackoverflow Questions を通過しましたが、開発用サーバーを必要としないunsigned apkを構築するのに役立ちません。
あなたは私がどのようにビルドして署名なしのapkをネイティブに反応させるかを見つける方法を見つけるのを手伝ってくれる?
デバッグビルド用のバンドルを手動で作成する必要があります。
バンドルデバッグビルド:
#React-Native 0.49.0+
react-native bundle --dev false --platform Android --entry-file index.js --bundle-output ./Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest ./Android/app/build/intermediates/res/merged/debug
#React-Native 0-0.49.0
react-native bundle --dev false --platform Android --entry-file index.Android.js --bundle-output ./Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest ./Android/app/build/intermediates/res/merged/debug
その後、バンドルした後にAPKを構築します。
$ cd Android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `Android/app/build/outputs/apk`
P.Sもう1つの方法は、gradleスクリプトを変更することです。
これらの手順に従ってください。
あなたのjsを束ねます:
プロジェクトルートにindex.Android.jsがある場合は、実行します。
react-native bundle --dev false --platform Android --entry-file index.Android.js --bundle-output ./Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest ./Android/app/build/intermediates/res/merged/debug
プロジェクトルートにindex.jsがある場合は、実行します。
react-native bundle --platform Android --dev false --entry-file index.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res
デバッグAPKを作成します。
cd Android/
./gradlew assembleDebug
それからあなたはここにあなたのapkを見つけることができます。
cd app/build/outputs/apk/
私と一緒に、プロジェクトディレクトリで以下のコマンドを実行します。
ネイティブの旧バージョンを反応させるために(あなたはルートにindex.Android.jsが表示されます):
mkdir -p Android/app/src/main/assets && rm -rf Android/app/build && react-native bundle --platform Android --dev false --entry-file index.Android.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res && cd Android && ./gradlew clean assembleRelease && cd ../
ネイティブの新しいバージョンを反応させるために(あなたはただルートにindex.jsを見ます):
mkdir -p Android/app/src/main/assets && rm -rf Android/app/build && react-native bundle --platform Android --dev false --entry-file index.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res && cd Android && ./gradlew clean assembleRelease && cd ../
Apkファイルは次の場所に生成されます。
最初の応答 に従った後は、次のようにしてアプリを実行できます。
react-native run-Android --variant=debug
そしてあなたのアプリはパッケージャを必要とせずに実行されます
Windowsユーザーのためのすべてのステップがこれからきちんと従った場合: https://facebook.github.io/react-native/docs/signed-apk-Android.html
あなたが実行する必要があります:gradlew assembleRelease
そしてあなたのファイルは次のようになります。
場所:E:\YourProjectName\Android\app\build\outputs\apk
あなたがあなたの携帯電話で走ることができるようにテスト目的のために未署名のapkバージョンを生成することは可能であるかもしれません。
最初にここで述べたように私は赤い画面のエラーが出ました。しかし、私はここで言及されているのと同じに従って、それは私のために働いた。
作業ディレクトリからコンソールで、これら4つのコマンドを実行します。
react-native bundle --dev false --platform Android --entry-file index.js --bundle-output ./Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest ./Android/app/build/intermediates/res/merged/debug
cd Android
gradlew assembleDebug
gradlew assembleRelease
そして、APKファイルが生成されます:アンドロイド\アプリ\ビルド\出力\ apk\debug\app-debug.apk
ルートプロジェクトディレクトリ内
Android/app/src/main/assets/ がない場合は、ディレクトリを作成し、その後に新しいファイルを作成し、 index.Android.bundle という名前で保存します。このようなファイルは Android/app/src/main/assets/index.Android.bundle
Cmdでこれを実行した後
ネイティブネイティブバンドル - プラットフォームAndroid - dev false - エントリファイルindex.js - バンドル出力Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res/
cd Android && ./gradlew assembleDebug
その後、あなたはapk app/build /出力/ apk/debug/app-debug.apk を得ることができます
他の誰かが最近同じ問題に遭遇した場合に備えて、私はReact Native 0.59.8(RN 0.60でもテスト済み)を使用しています、そして他のいくつかの答えを確認することができます。
端末にインストールされているアプリの最新のコンパイル済みバージョンをアンインストールします。
react-native bundle --platform Android --dev false --entry-file index.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res
を実行
cd Android/ && ./gradlew assembleDebug
を実行
Android/app/build/output/apk/debugフォルダにapp-debug.apkを入れます。
がんばろう!
私はネイティブ0.55.4を反応させている、基本的に私は手動でバンドルする必要がありました:
react-native bundle --dev false --platform Android --entry-file index.js --bundle-
output ./Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-
dest ./Android/app/build/intermediates/res/merged/debug
その後、USB経由でデバイスを接続し、USBデバッグを有効にします。接続されているデバイスをadb devices
で確認してください。
最後にreact-native run-Android
を実行してください。これはあなたの電話にdebug apkをインストールするでしょう、そしてあなたはそれをdevサーバーでうまく実行することができます。
注意:
index.js
ですgradlew assembleRelease
は、インストールできないリリース未署名のapksのみを生成します。BuildTypesを次のように変更するソリューションを見つけました。
buildTypes {
release {
signingConfig signingConfigs.release
}
}