[解決済み】react-nativeでサーバーなしで動作するapkを生成するには?
質問
アプリを作成し、ローカルのエミュレータで実行することができます(デバッグサーバーを変更することで、同じネットワーク内のアンドロイドデバイスでも実行できます)。
しかし、開発サーバーにアクセスできない人に送ることができるAPKを作成し、アプリケーションをテストできるようにしたいのです。
ドキュメントのiOSセクションにUsing offline bundleというセクションがありますね。しかし、私はアンドロイドのために同じを達成する方法を見つけ出すことができませんでした。これは可能ですか?もしそうなら、どのように?
UPDATEしてください。 この質問に対する回答について( Android が JS バンドルの読み込みに失敗した オフラインのバンドルは、開発サーバーからダウンロードできるそうです。しかし、開発サーバーからバンドルを取得すると、画像ファイルを読み込むことができません。
どうすればいいですか?
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
関連
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] Androidのエラーです。デバイス*に*.apkをインストールできませんでした: タイムアウト
-
[解決済み】React Nativeアプリをデバッグするために、AndroidエミュレーターでAndroid端末を「振る」ことで開発メニューを表示させるには?
-
[解決済み】AndroidでJSバンドルの読み込みに失敗した。
-
[解決済み] Android App Bundleを端末にインストールする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み】AndroidでJSバンドルの読み込みに失敗した。