distributing-tauri-for-android について
Tauri v2 アプリを Android 向けに準備・配布する開発者向けスキルです。ビルド設定、パッケージ作成、署名、Google Play への提出手順を扱います。
主な機能
- 01Android ビルド設定
- 02アプリアイコンの生成
- 03AAB と APK のビルド
- 04リリース署名の設定
- 05Google Play 提出の準備
活用シーン
- 01Play Store 用リリースバンドルの作成
- 02端末テスト用 APK のビルド
- 03自動ビルド用署名の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dchuk/ claude-code-tauri-skills --skill distributing-tauri-for-androidインストール後、Claude Code で/distributing-tauri-for-androidを入力して読み込まれたか確認します。
詳細
Android 向け Tauri アプリの配布
このスキルでは、Google Play ストアへの公開を含め、Android 向け Tauri v2 アプリの準備と配布に関するワークフロー全体を説明します。
前提条件
Android 向け Tauri アプリを配布する前に、次の準備を行ってください。
- Play Console アカウント:https://play.google.com/console/developers でデベロッパーアカウントを作成します
- Android SDK:Android SDK がインストールされ、設定されていることを確認します
- コード署名:Android のコード署名を設定します(キーストア)
- Tauri Android の初期化:まだ実行していない場合は、
tauri android initを実行します
アプリアイコンの設定
Android サポートを初期化した後、アプリアイコンを設定します。
# npm
npm run tauri icon /path/to/app-icon.png
# yarn
yarn tauri icon /path/to/app-icon.png
# pnpm
pnpm tauri icon /path/to/app-icon.png
# cargo
cargo tauri icon /path/to/app-icon.png
これにより、Android で必要なすべてのサイズのアイコンが生成されます。
ビルド設定
tauri.conf.json の Android 設定
tauri.conf.json で Android 固有の設定を行います。
{
"bundle": {
"android": {
"minSdkVersion": 24,
"versionCode": 1
}
}
}
設定オプション
| オプション | デフォルト | 説明 |
|---|---|---|
minSdkVersion | 24 | 最小 Android SDK バージョン(Android 7.0) |
versionCode | 自動計算 | Play ストア用の整数バージョンコード |
バージョンコードの計算
Tauri はアプリのバージョンからバージョンコードを自動的に計算します。
versionCode = major * 1000000 + minor * 1000 + patch
例:バージョン 1.2.3 はバージョンコード 1002003 になります。
連番にする必要がある場合は、tauri.conf.json で上書きします。
{
"bundle": {
"android": {
"versionCode": 42
}
}
}
最小 SDK バージョン
デフォルトの最小バージョンは Android 7.0(SDK 24)です。より高い要件を設定するには、次のようにします。
{
"bundle": {
"android": {
"minSdkVersion": 28
}
}
}
一般的な SDK バージョン:
- SDK 24:Android 7.0(Nougat)
- SDK 26:Android 8.0(Oreo)
- SDK 28:Android 9.0(Pie)
- SDK 29:Android 10
- SDK 30:Android 11
- SDK 31:Android 12
- SDK 33:Android 13
- SDK 34:Android 14
配布用のビルド
Android App Bundle(AAB)— 推奨
Google Play では、新しいアプリに AAB 形式が必須です。AAB を生成します。
# npm
npm run tauri android build -- --aab
# yarn
yarn tauri android build --aab
# pnpm
pnpm tauri android build -- --aab
# cargo
cargo tauri android build --aab
出力先:
gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
APK の生成
テストや別の配布チャネル向けの場合:
# npm
npm run tauri android build -- --apk
# yarn
yarn tauri android build --apk
# pnpm
pnpm tauri android build -- --apk
# cargo
cargo tauri android build --apk
アーキテクチャ別ビルド
特定の CPU アーキテクチャ向けにビルドします。
# Single architecture
npm run tauri android build -- --target aarch64
# Multiple architectures
npm run tauri android build -- --target aarch64 --target armv7
利用可能なターゲット:
aarch64- ARM 64 ビット(ほとんどの最新デバイス)armv7- ARM 32 ビット(旧型デバイス)i686- Intel 32 ビット(エミュレーター)x86_64- Intel 64 ビット(エミュレーター、一部の Chromebook)
アーキテクチャ別の分割 APK
アーキテクチャごとに APK を作成します(テストに便利です)。
npm run tauri android build -- --apk --split-per-abi
注:Play ストアへの提出には不要です。Google Play は AAB から適切なアーキテクチャのアプリを自動的に配信します。
コード署名
キーストアの生成
署名用のリリースキーストアを作成します。
keytool -genkey -v -keystore release-key.keystore \
-alias my-app-alias \
-keyalg RSA \
-keysize 2048 \
-validity 10000
重要:キーストアは安全な場所に保管してください。紛失すると、アプリを更新できなくなります。
Gradle での署名設定
gen/android/keystore.properties を作成するか、更新します。
storePassword=your_store_password
keyPassword=your_key_password
keyAlias=my-app-alias
storeFile=/path/to/release-key.keystore
キーストアを使用するように gen/android/app/build.gradle.kts を更新します。
import java.util.Properties
import java.io.FileInputStream
val keystorePropertiesFile = rootProject.file("keystore.properties")
val keystoreProperties = Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
android {
signingConfigs {
create("release") {
keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String
storeFile = file(keystoreProperties["storeFile"] as String)
storePassword = keystoreProperties["storePassword"] as String
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
}
}
}
CI/CD 用の環境変数
自動ビルドでは、環境変数を使用します。
android {
signingConfigs {
create("release") {
keyAlias = System.getenv("ANDROID_KEY_ALIAS")
keyPassword = System.getenv("ANDROID_KEY_PASSWORD")
storeFile = file(System.getenv("ANDROID_KEYSTORE_PATH"))
storePassword = System.getenv("ANDROID_STORE_PASSWORD")
}
}
}
Google Play ストアへの提出
提出前チェックリスト
- アプリへの署名:リリースキーストアで署名済み
- バージョンコード:前回のリリースより増加
- アプリアイコン:必要なすべてのサイズで設定済み
- スクリーンショット:準備済み(Play ストアで必須)
- プライバシーポリシー:URL を用意済み(ほとんどのアプリで必須)
- コンテンツレーティング:質問票への回答済み
アップロード手順
- Play Console(https://play.google.com/console/developers)に**移動**します
- アプリを作成するか、既存のアプリを選択します
- 次の場所から AAB ファイルをアップロードします。
gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab - ストアの掲載情報を入力します(タイトル、説明、スクリーンショット)
- コンテンツレーティングを設定します
- 価格と配布を設定します
- 審査に提出します
初回リリースの要件
初回の提出では、署名を検証するため、Play Console から手動でアップロードする必要があります。Google は Play App Signing を通じてアプリ署名鍵を管理します。
自動化に関する注記
Tauri には、Android リリースを作成するための組み込み自動化機能が現在ありません。ただし、Google Play Developer API を使用すれば、CI/CD パイプラインで提出を自動化できます。
トラブルシューティング
署名エラーでビルドに失敗する
キーストアのパスが絶対パスであるか、正しいディレクトリを基準とした相対パスであることを確認してください。
# Absolute path
storeFile=/Users/username/keys/release-key.keystore
# Relative to gen/android directory
storeFile=../../release-key.keystore
バージョンコードがインクリメントされない
自動計算を使用している場合は、package.json または Cargo.toml のバージョンが更新されていることを確認してください。手動で制御する場合は、次のようにします。
{
"bundle": {
"android": {
"versionCode": 2
}
}
}
APK をデバイスにインストールできない
最小 SDK バージョンとの互換性を確認してください。
# Check device Android version
adb shell getprop ro.build.version.sdk
AAB のサイズが大きすぎる
テストには --split-per-abi の使用を検討してください。ただし、Play ストアでは Google が自動的に処理します。それでもサイズが大きすぎる場合は、次の方法を試してください。
- フロントエンドのアセットを最適化します
- 動的機能モジュールを使用します
- ProGuard/R8 の縮小を有効にします
クイックリファレンス
よく使うビルドコマンド
# Development build
npm run tauri android dev
# Release AAB for Play Store
npm run tauri android build -- --aab
# Release APK for testing
npm run tauri android build -- --apk
# Specific architecture
npm run tauri android build -- --aab --target aarch64
ファイルの場所
| ファイル | 場所 |
|---|---|
| AAB の出力先 | gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab |
| APK の出力先 | gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk |
| Gradle の設定 | gen/android/app/build.gradle.kts |
| キーストアのプロパティ | gen/android/keystore.properties |
| Android マニフェスト | gen/android/app/src/main/AndroidManifest.xml |