コンテンツにスキップ
Tauri

AppImage で配布

AppImage」は、システムにインストールされているパッケージに依存せず、代わりにアプリケーションに必要な依存関係とファイルをすべてバンドルした配布形式です。このため、出力ファイルは大きくなりますが、多くの Linux ディストリビューションでサポートされており、インストールなしで実行できるため、配布が容易です。ユーザーは、ファイルを実行可能ファイル(chmod a+x MyProject.AppImage)にするだけで、実行できます(./MyProject.AppImage)。

AppImage は便利で、各ディストリビューションのパッケージ・マネージャー用のパッケージを作成できない場合でも、配布プロセスを簡素化します。とは言っても、ファイル・サイズが元々の 2~6 MB 程度から 70 MB 以上となってしまうため、その使用は慎重に行なう必要があります。

あなたのアプリがオーディオ/ビデオの再生を行なう場合は、tauri.conf.json > bundle > linux > appimage > bundleMediaFramework(「メディア・フレームワークをバンドル」フラグ)を有効にする必要があります。これにより、メディアの再生に必要な gstreamer ファイルが追加されるため、AppImage バンドルのサイズが増加します。このフラグは現在、Ubuntu のビルド・システムでのみ完全な対応が行なわれています。アプリの実行時に必要となるかもしれないプラグインがすべて、自分のビルド・システムにインストールされていることを確認してください。

Tauriの「resources 機能」(「追加ファイルの埋め込み」の章を参照)を用いずにカスタム・ファイルを AppImage に含めるためには、対象のファイルやフォルダのリストを tauri.conf.json > bundle > linux > appimage > files に指定します。この設定オブジェクトは、AppImage 内のパスを、あなたのファイルシステム上のファイルへのパスに、tauri.conf.json ファイルからの相対パスで展開(マッピング)します。以下が設定事例です:

tauri.conf.json
{
"bundle": {
"linux": {
"appimage": {
"files": {
"/usr/share/README.md": "../README.md", // 「../README.md」ファイルを「<appimage>/usr/share/README.md」にコピー
"/usr/assets": "../assets/" // 「../assets」ディレクトリのすべてを「<appimage>/usr/assets」にコピー
}
}
}
}
}

Tauri が使用している AppImage ツールの「linuxdeploy」は、現在 ARM AppImage とのクロスコンパイルをサポートしていません。つまり、ARM AppImage は ARM デバイス上またはエミュレータ上でのみビルドが可能となります。

アプリをビルドするためにエミュレーション環境の「QEMU」を利用するワークフローの事例については、GitHub Action 設定ガイド の章をご覧ください。ただし、この処理は非常に遅いため、Build Minutes(ビルド時間)が無料のパブリック・リポジトリでのみ推奨されます。プライベート・リポジトリでは、GitHub の「ARM ランナー」(上記リンク)の方がコスト効率が良く、セットアップもはるかに簡単です。

《訳注》

QEMU 読み「キューエミュ」。オープンソースの CPU/システム・エミュレータ。詳しくは Wikipedia を参照してください。

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


© 2025 Tauri Contributors. CC-BY / MIT