コンテンツにスキップ
Tauri

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 upload

このコマンドは、「upload-keystore.jks ファイル」をホーム・ディレクトリに保存します。 別の場所に保存したい場合は、-keystore パラメータに渡す引数を変更します。

詳細については、Android 公式ドキュメント を参照してください。

[project]/src-tauri/gen/android/keystore.properties」という名前のファイルを作成します。このファイルにはあなたの「キーストア」への参照を含んでいます:

password=<password defined when keytool was executed>
keyAlias=upload
storeFile=<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 を設定します。

  1. 必要となるインポート文をファイルの先頭に追加します:

    import java.io.FileInputStream
  2. 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 String
    keyPassword = keystoreProperties["password"] as String
    storeFile = file(keystoreProperties["storeFile"] as String)
    storePassword = keystoreProperties["password"] as String
    }
    }
    buildTypes {
    ...
    }
  3. buildTypes ブロック」の「release 設定」にある新しい「release 署名設定」を使用します:

    buildTypes {
    getByName("release") {
    signingConfig = signingConfigs.getByName("release")
    }
    }

以上で、アプリのリリース・ビルドが自動的に署名されるようになります。

【※ この日本語版は、「Feb 22, 2025 英語版」に基づいています】


© 2025 Tauri Contributors. CC-BY / MIT