React Native Play Store公開までいろいろ
アプリの表示名変更
アプリのアイコンの下に表示される文字列の変更。
android/app/src/main/res/values/strings.xml
1 2 3 |
<resources> <string name="app_name">ほげほげ</string> </resources> |
Androidのapkファイルのビルド
以下のコマンドを実行する。
1 |
cd android && ./gradlew assembleRelease |
android/app/build/outputs/apk/app-release-unsigned.apk が生成される。
次に鍵を作成する。
1 |
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 |
作成した鍵でapkをデジタル署名する
1 |
jarsigner -verbose -keystore my-release-key.keystore app/build/outputs/apk/app-release-unsigned.apk my-key-alias |
圧縮が必要らしいのでする
1 |
zipalign -f -v 4 app/build/outputs/apk/app-release-unsigned.apk my-app.apk |
生成されたmy-app.apkをアップロードする。
不要なパーミッションを削除する
ビルド時に追加していないパーミッションが追加されている。READ_PHONE_STATEがあるせいでapkアップロード時にプライバシーポリシーURLの設定が必須となってしまう。
以下を追記する。
android/app/src/main/AndroidManifest.xml
1 2 3 4 5 6 7 8 9 |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" ←追加 package="com.spotsfront" android:versionCode="1" android:versionName="1.0"> ↓追加 <!-- ビルド時にデフォルトで追加されるので明示的に削除する --> <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/> |
アップロードした APK の署名が無効です
minSdkVersionが低すぎると対応していなくで出るようなので少し上げてみる。
android/app/build.gradle
1 2 3 4 5 6 7 8 9 10 |
defaultConfig { applicationId "com.spotsfront" minSdkVersion 18 ← ここの数値を変更 targetSdkVersion 22 versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } } |
2回目以降のアップロードについて
2回目以降は以下を書き換えてバージョンを更新していく必要がある。
android/app/build.gradle
1 2 3 4 5 6 7 8 9 10 |
defaultConfig { applicationId "com.spotsfront" minSdkVersion 18 targetSdkVersion 22 versionCode 2 ← ここの数値を増やしていく versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } } |