アプリをビルドしたので、ローカル エミュレーターで実行できます (デバッグ サーバーを変更することで、同じネットワーク内の Android デバイスでも実行できます)。
ただし、開発サーバーにアクセスできない人に送信できる APK を構築し、その人がアプリケーションをテストできるようにしたいと考えています。
ドキュメントに iOS でのオフライン バンドルの使用に関するセクションがあることがわかりました。しかし、Android で同じことを実現する方法がわかりません。これは可能ですか? 可能であれば、どのようにすればよいですか?
更新:この質問に対する答えについて(Android が JS バンドルの読み込みに失敗しました) オフラインバンドルは開発サーバーからダウンロードできるとのことですが、開発サーバーからバンドルを取得してもイメージファイルが読み込まれません。
ベストアンサー1
Aditya Singhの回答に従って、生成された(署名されていない)apkは私の携帯電話にインストールされませんでした。指示に従って署名されたapkを生成する必要がありました。ここ。
私の場合は次の方法が効果的でした:
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
my-release-key.keystore
ファイルをプロジェクト フォルダのディレクトリの下に置きますandroid/app
。次に、ファイルを編集して~/.gradle/gradle.properties
次の内容を追加します (**** を正しいキーストア パスワード、エイリアス、キー パスワードに置き換えます)。
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=****
MYAPP_RELEASE_KEY_PASSWORD=****
MacOSを使用している場合は、指示に従ってキーチェーンにパスワードを保存できます。ここプレーンテキストで保存する代わりに。
次に、app/build.gradle を編集し、次の内容が含まれていることを確認します (signingConfigs signingConfig のセクションを追加する必要がある場合があります)。
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
次に、コマンドを実行しますcd android && ./gradlew assembleRelease
。
Windowsの場合は「cd android」と入力し、gradlew assembleRelease
コマンドを実行して、署名されたapkを以下から見つけますandroid/app/build/outputs/apk/app-release.apk
。android/app/build/outputs/apk/release/app-release.apk