react-nativeでサーバーなしで実行できるapkを生成するにはどうすればいいですか?質問する

react-nativeでサーバーなしで実行できるapkを生成するにはどうすればいいですか?質問する

アプリをビルドしたので、ローカル エミュレーターで実行できます (デバッグ サーバーを変更することで、同じネットワーク内の 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.apkandroid/app/build/outputs/apk/release/app-release.apk

おすすめ記事