Android でのコード署名
「Play ストア」でアプリを公開するには、「デジタル証明書」を使用してアプリに署名する必要があります。
「Android アプリ・バンドル」と「APK」は、配布用にアップロードする前に署名する必要があります。
APK Android Application Package: Google によって開発された Android 専用ソフトウェア・パッケージのファイル・フォーマット。
Google はまた、「Play ストア」で配布される「Android アプリ・バンドル」に対して別の署名方法も提供しています。 詳細については、Play アプリ署名の公式ドキュメント(英語) をご覧ください。
Keystore キーストア(「鍵保管所」の意)。証明書と秘密鍵のリポジトリとして機能するバイナリ・ファイル。公式ドキュメント
Android の署名では、公式の keytool CLI を使用して生成される「Java Keystore ファイル」が必要です:
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias uploadkeytool -genkey -v -keystore $env:USERPROFILE\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias uploadこのコマンドは、「upload-keystore.jks ファイル」をホーム・ディレクトリに保存します。
別の場所に保存したい場合は、-keystore パラメータに渡す引数を変更します。
詳細については、Android 公式ドキュメント を参照してください。
「[project]/src-tauri/gen/android/keystore.properties」という名前のファイルを作成します。このファイルにはあなたの「キーストア」への参照を含んでいます:
password=<password defined when keytool was executed>keyAlias=uploadstoreFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks or C:\\Users\\<user name>\\upload-keystore.jks>通常、このファイルは CI/CD プラットフォームで生成されます。以下のスニペットは、GitHub Actions のジョブ・ステップの例です:
- name: setup Android signing run: | cd src-tauri/gen/android echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.propertiesこの例では、キーストアは base64 -i /path/to/keystore.jks を使用して base64 エンコード後エクスポートされ、「ANDROID_KEY_BASE64 シークレット」として設定されます。
「[project]/src-tauri/gen/android/app/build.gradle.kts ファイル」を編集し、リリース・モードでアプリをビルドするときに「アップロード・キー」を使用するように、Gradle を設定します。
-
必要となるインポート文をファイルの先頭に追加します:
import java.io.FileInputStream -
「
buildTypesブロック」の前に「release署名設定(signing config)」を追加します:signingConfigs {create("release") {val keystorePropertiesFile = rootProject.file("keystore.properties")val keystoreProperties = Properties()if (keystorePropertiesFile.exists()) {keystoreProperties.load(FileInputStream(keystorePropertiesFile))}keyAlias = keystoreProperties["keyAlias"] as StringkeyPassword = keystoreProperties["password"] as StringstoreFile = file(keystoreProperties["storeFile"] as String)storePassword = keystoreProperties["password"] as String}}buildTypes {...} -
「
buildTypesブロック」の「release設定」にある新しい「release署名設定」を使用します:buildTypes {getByName("release") {signingConfig = signingConfigs.getByName("release")}}
以上で、アプリのリリース・ビルドが自動的に署名されるようになります。
【※ この日本語版は、「Feb 22, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT