備考
Tauri のバージョンが v2 にアップデートされたため、本記事も基本的に v2 をベースにしています。
プロジェクトの作成
パッケージング
アイコンの生成
さまざまな解像度のアイコンを生成するには、Tauri 組み込みのツールを使用してください。
1
   | pnpm tauri icon /path/to/app-icon.png
   | 
 
デスクトップ向けビルド
Android 向けビルド
まず Android プロジェクトを初期化します(src-tauri 配下に gen/android/app フォルダが生成されます)。
注意事項:
Prerequisites

- ANDROID_HOME および NDK_HOME の環境変数を設定する必要があります。
 
例として私の設定:ANDROID_HOME: D:\applications\sdk\

我的NDK_HOME D:\applications\sdk\ndk\29.0.13113456

1 2 3
   | tauri android build # APK ファイルとしてパッケージング pnpm tauri android build --apk
   | 
 
Android ビルドにおける注意点:
JDK 付属のキーツールで証明書を生成できます。
または公式ドキュメントにあるコマンドを使っても可能です。.jks ファイル名について、すでに存在している場合は以前のパスワードを入力することで再利用可能ですが、新しいファイルを作成することをお勧めします。
1
   | keytool -genkey -v -keystore $env:USERPROFILE\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
   | 
 
- 設定
src-tauri/gen/android 下に keystore.properties ファイルを新規作成します。
1 2 3 4
   | storeFile=upload-keystore.jks # 先ほど生成したファイル名 storePassword=123456 # 指定したパスワード keyAlias=upload # エイリアス名。上記コマンドの最後の引数 (-alias upload) keyPassword=123456 # 指定したパスワード
   | 
 
src-tauri/gen/android/app/build.gradle.kts に以下の設定を追加して、証明書の設定ファイルのパスを指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   | android {     ...     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["keyPassword"] as String             storeFile = file(keystoreProperties["storeFile"] as String)             storePassword = keystoreProperties["storePassword"] as String         }     }       ...          buildTypes {         getByName("debug") {             ...         }         getByName("release") {             signingConfig = signingConfigs.getByName("release")             ...         }     } }
  | 
 
- Gradle 依存関係のダウンロードタイムアウト対応
 
src-tauri/gen/android 配下の .kts ファイルを編集して、ミラーを使用するようにリポジトリを変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
   | buildscript {     repositories {         mavenCentral() 
          maven { url= uri("https://maven.aliyun.com/repository/google")}         maven { url= uri("https://maven.aliyun.com/repository/gradle-plugin")}        maven { url = uri("https://maven.aliyun.com/repository/public") }
          // maven { url= uri("http://maven.aliyun.com/nexus/content/groups/public/")}         maven { url= uri("https://maven.aliyun.com/repository/google")}     //    maven { url = uri("http://maven.aliyun.com/nexus/content/repositories/jcenter") }         // flatDir { dirs("libs") }        google()     }     dependencies {                  classpath("com.android.tools.build:gradle:8.5.1")         // classpath("com.android.tools.build:gradle:8.9")         classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25")     } }
  allprojects {     repositories {
          maven { url= uri("https://maven.aliyun.com/repository/google")}         maven { url= uri("https://maven.aliyun.com/repository/gradle-plugin")}        maven { url = uri("https://maven.aliyun.com/repository/public") }
          // maven { url= uri("http://maven.aliyun.com/nexus/content/groups/public/")}         maven { url= uri("https://maven.aliyun.com/repository/google")}     //    maven { url = uri("http://maven.aliyun.com/nexus/content/repositories/jcenter") }                 // flatDir { dirs("libs") }     //     maven { url= uri("https://maven.aliyun.com/repository/google")}     //     maven { url= uri("https://maven.aliyun.com/repository/gradle-plugin")}     //    maven { url = uri("https://maven.aliyun.com/repository/public") }        google()         mavenCentral()     } }
  tasks.register("clean").configure {     delete("build") }
 
 
  | 
 
- 出力されるAPKファイルの場所:src-tauri\gen\android\app\build\outputs\apk\universal\release
 
組み込みプラットフォーム
未学習