Skip to content

i18n(ja) Distribute Section Part 2 #3336

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: v2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 177 additions & 0 deletions src/content/docs/ja/distribute/flatpak.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
---
title: Flathub
sidebar:
order: 1
i18nReady: true
---

import { Tabs, TabItem, Card } from '@astrojs/starlight/components';
import TranslationNote from '@components/i18n/TranslationNote.astro';

Flatpak の仕組みの詳細については、[初めての Flatpak ビルド](https://docs.flatpak.org/en/latest/first-build.html)(英語版)を参照してください。

<TranslationNote lang="ja">

**Flatpak** フラットパック。Linux で用いられているアプリ配布用のパッケージ形式で、さまざまなディストリビューション上で利用できます。

</TranslationNote>

この章では、Flatpak を配布する方法として、最も広く利用されているプラ​​ットフォームの「[Flathub](https://flathub.org/)(フラットハブ)」を経由して行なうことを前提としています。他のプラットフォームをご利用になる場合は、それぞれのドキュメントをご参照ください。

## 事前準備

アプリを Flathub にアップロードする前に、「Flatpak Runtime」(実行環境)内でアプリをテストするために、まずローカルで Flatpak をビルドします。このやりかたは、開発ビルドを素早く共有したい場合にも役立ちます。

**1. `flatpak` と `flatpak-builder` のインストール**

Flatpak をローカルでビルドするには、「`flatpak`」と「`flatpak-builder`」の両ツールが必要です。例えば Ubuntu(Debian 系 Linux)では、以下のコマンドを実行します:

<Tabs syncKey="distro">
<TabItem label="Debian">

```sh
sudo apt install flatpak flatpak-builder
```

</TabItem>
<TabItem label="Arch">

```sh
sudo pacman -S --needed flatpak flatpak-builder
```

</TabItem>
<TabItem label="Fedora">

```sh
sudo dnf install flatpak flatpak-builder
```

</TabItem>
<TabItem label="Gentoo">

```sh
sudo emerge --ask \
sys-apps/flatpak \
dev-util/flatpak-builder
```

</TabItem>
</Tabs>

**2. Flatpak Runtime のインストール**

```shell
flatpak install flathub org.gnome.Platform//46 org.gnome.Sdk//46
```

**3. [Tauri アプリの .deb をビルドする](https://v2.tauri.app/reference/config/#bundleconfig)**

**4. マニフェストの作成**

<TranslationNote lang="ja">

**マニフェスト** manifest: 元の意味は「宣言書」「声明文」。"App manifest" は「アプリケーションが動作するために必要な情報を記述した XML ファイル」、"Cargo manifest" は、*物流*業界であれば「本船に船積みされている貨物(cargo)の明細書」、Rust プログラムであれば「プロジェクトのメタデータを記述した Cargo.toml ファイル」を指します。

</TranslationNote>

```yaml
id: org.your.id

runtime: org.gnome.Platform
runtime-version: '46'
sdk: org.gnome.Sdk

command: tauri-app
finish-args:
- --socket=wayland # ウィンドウに表示に必要なアクセス権
- --socket=fallback-x11 # ウィンドウ表示に必要なアクセス権
- --device=dri # OpenGL(すべてのプロジェクトで必要なわけではありません)
- --share=ipc

modules:
- name: binary
buildsystem: simple
sources:
- type: file
url: https://github.com/your_username/your_repository/releases/download/v1.0.1/yourapp_1.0.1_amd64.deb
sha256: 08305b5521e2cf0622e084f2b8f7f31f8a989fc7f407a7050fa3649facd61469 # リモート・ソースを使用している場合は必須です
only-arches: [x86_64] # このソースは x86_64 コンピュータでのみ使用されます
# このパスは、.deb バンドル内に作成されたバイナリ・ファイルを指しています
# Tauri は、解凍された .deb の内容に対応するフォルダーも作成します
build-commands:
- ar -x *.deb
- tar -xf data.tar.gz
- 'install -Dm755 usr/bin/tauri-app /app/bin/tauri-app'
- install -Dm644 usr/share/applications/yourapp.desktop /app/share/applications/org.your.id.desktop
- install -Dm644 usr/share/icons/hicolor/128x128/apps/yourapp.png /app/share/icons/hicolor/128x128/apps/org.your.id.png
- install -Dm644 usr/share/icons/hicolor/32x32/apps/yourapp.png /app/share/icons/hicolor/32x32/apps/org.your.id.png
- install -Dm644 usr/share/icons/hicolor/256x256@2/apps/yourapp.png /app/share/icons/hicolor/256x256@2/apps/org.your.id.png
- install -Dm644 org.your.id.metainfo.xml /app/share/metainfo/org.your.id.rosary.metainfo.xml
```

Gnome 46 runtime には、通常の Tauri アプリのすべての依存関係とその正しいバージョンが含まれています。

<TranslationNote lang="ja">

**Gnome 46 runtime** GNOME(ノーム)デスクトップ環境バージョン46の実行環境(ランタイム)。

</TranslationNote>

**5. アプリのインストールとテスト**

```shell

# flatpak のインストール
flatpak -y --user install <local repo name> <your flatpak id>

# flatpak の実行
flatpak run <your flatpak id>

# flatpak のアップデート
flatpak -y --user update <your flatpak id>
```

## 追加ライブラリを追加

デフォルトの tauri アプリよりも多くのライブラリがあなたの最終的なバイナリに必要な場合は、不足しているライブラリを「flatpak マニフェスト」に追加する必要があります。
これには二つの方法があります。迅速なローカルでの開発では、ローカル・システムからビルド済みのライブラリ・ファイル(`.so`)をただ単に取り込むだけでうまくいくかもしれません。
しかし、flatpak の最終ビルドにはこの方法は推奨されません。なぜなら、ローカル・ライブラリ・ファイルは flatpak ランタイム環境用にはビルドされていないからです。
そのままでは非常に見つけにくいさまざまなバグが発生する可能性があります。
したがって、ビルド・ステップとしては、あなたのプログラムが依存するライブラリを flatpak 内のソースからビルドすることをお勧めします。

## flathub への開示

**_1. [Flathub Repository](https://github.com/flathub/flathub/fork) をフォークします_**

**_2. フォークをクローンします_**

```shell
git clone --branch=new-pr [email protected]:your_github_username/flathub.git
```

**_3. リポジトリに移動します_**

```shell
cd flathub
```

**_4. 新しいブランチを作成します_**

```shell
git checkout -b your_app_name
```

**_5. 自分のアプリの apps manifest を作成したブランチに追加し、行なった変更を「コミット」した後に「プッシュ」します。_**

**_6. github の `new-pr` ブランチに対して「プルリクエスト」を発行(open)します_**

**_7. これで、あなたのアプリはレビュー・プロセスに入ります。不具合箇所などがある場合には修正を求められることもあります。_**

「プルリクエスト」が承認されると、アプリのリポジトリへの招待が届き、編集が行なえます。これ以降は、アプリを継続的に更新できます。

詳細については、[flatpak のドキュメント](https://docs.flatpak.org/en/latest/dependencies.html#bundling) をご覧ください。

<div style="text-align: right;">
【※ この日本語版は、「Feb 28, 2025 英語版」に基づいています】
</div>
171 changes: 171 additions & 0 deletions src/content/docs/ja/distribute/google-play.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
---
title: Google Play
sidebar:
order: 1
i18nReady: true
---

import CommandTabs from '@components/CommandTabs.astro';
import TranslationNote from '@components/i18n/TranslationNote.astro';

「Google Play」(グーグル・プレイ)は、Google 社が運営する Android アプリ配信サービスです。

この章では、Android アプリを Google Play に公開するために必要なことがらについて説明しています。

:::note
Tauri は内部で Android Studio プロジェクトを使用しているため、Android アプリのビルドと公開に関する公の慣行(決まりごと)はあなたのアプリにも適用されます。
詳細については、[Google Play 公式ドキュメント]を参照してください。
:::

<TranslationNote lang="ja">

**Android Studio プロジェクト** Android Studio project: 「Android Studio(アンドロイド・スタジオ)」は Android アプリ開発を行なうための Google 公式開発ツール名。「[プロジェクト](https://developer.android.com/studio/projects?hl=ja)」は、アプリのソースコードやアセット、ビルド構成など、必要な情報をすべて定義・格納したファイルを言います。

</TranslationNote>

## 必要事項

Android アプリを、Google の Play Store で配布するには、[Google Play Console] で「デベロッパー・アカウント」を作成する必要があります。

さらには、[コード署名]も設定しなければなりません。

詳細については、[Google Play のリリース・チェックリスト] を参照してください。

## アプリ・アイコンの変更

`tauri android init` を実行して「Android Studio プロジェクト」をセットアップした後、`tauri icon` コマンドを使用してアプリ・アイコンを更新できます。

<CommandTabs
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"
deno="deno task tauri icon /path/to/app-icon.png"
bun="bun tauri icon /path/to/app-icon.png"
cargo="cargo tauri icon /path/to/app-icon.png"
/>

## 設定

Google Play Console で「デベロッパー・アカウント」を作成したら、あなたのアプリを Google Play Console ウェブサイトに登録する必要があります。必要なフォームの記入や設定作業はすべて、ウェブサイトの案内に従って進めていきます。

## ビルド

次のコマンドを実行すると、Android App Bundle (AAB) をビルドして Google Play にアップロードできます:

<TranslationNote lang="ja">

**AAB 形式** Android App Bundle 形式: アプリのコンパイル済みコードとリソースがすべて含まれた公開形式。Google Play は App Bundle から、デバイス設定ごとに最適化した APK を生成、配信します。下記「[APKs のビルド](#apks-のビルド)」の項も参照。〔[参考](https://developer.android.com/guide/app-bundle?hl=ja#other_considerations)〕

</TranslationNote>

<CommandTabs
npm="npm run tauri android build -- --aab"
yarn="yarn tauri android build --aab"
pnpm="pnpm tauri android build --aab"
deno="deno task tauri android build --aab"
bun="bun tauri android build --aab"
cargo="cargo tauri android build --aab"
/>

Tauri は、[`tauri.conf.json > version`] に定義されている値 (`versionCode = major*1000000 + minor*1000 + patch`) からバージョン・コードを取得します。
異なるバージョン・コードの書式(たとえば、連続コード)で表示したい場合には、[`tauri.conf.json > bundle > android > versionCode`] の設定で独自のバージョン・コードを設定できます:

```json title="tauri.conf.json" ins={4}
{
"bundle": {
"android": {
"versionCode": 100
}
}
}
```

### APKs のビルド

Google Play にアップロードするバンドル・ファイルとしては「AAB 形式」が推奨されていますが、Google Play ストア外でのテストや配布に使用できる「APK」(Android アプリケーション・パッケージ)を生成することもできます。
あなたのアプリを「APK」形式でコンパイルするには、引数 `--apk` を指定します:

<TranslationNote lang="ja">

**APK** Android Application Package: 「Android パッケージ」形式(APK)は、Android 用のインストール可能かつ実行可能なアプリ形式です。上記の AAB 形式は、公開のみを目的としており、Android デバイスにインストールすることはできません。〔[参考](https://developer.android.com/guide/app-bundle/faq?hl=ja)〕

</TranslationNote>

<CommandTabs
npm="npm run tauri android build -- --apk"
yarn="yarn tauri android build --apk"
pnpm="pnpm tauri android build --apk"
deno="deno task tauri android build --apk"
bun="bun tauri android build --apk"
cargo="cargo tauri android build --apk"
/>

### 対象アーキテクチャの選択

デフォルトでは、Tauri はサポート対象のすべてのアーキテクチャ(すなわち、aarch64、armv7、i686、x86_64)用にアプリをビルドします。
特定のアーキテクチャのみを対象にコンパイルを行なうには、引数 `--target` で指定します。

<CommandTabs
npm="npm run tauri android build -- --aab --target aarch64 --target armv7"
yarn="yarn tauri android build --aab --target aarch64 --target armv7"
pnpm="pnpm tauri android build --aab --target aarch64 --target armv7"
deno="deno task tauri android build --aab --target aarch64 --target armv7"
bun="bun tauri android build --aab --target aarch64 --target armv7"
cargo="cargo tauri android build --aab --target aarch64 --target armv7"
/>

### アーキテクチャごとの個別バンドル

デフォルトでは、生成された「AAB」と「APK」は汎用仕様であり、サポートされているすべてのアーキテクチャが含まれています。
アーキテクチャごとに個別のバンドルを生成するには、引数 `--split-per-abi` を指定します。

:::note
この指定は、ファイル・サイズを小さくできるものの、アプリのアップロードするには(個別対応になり)不便なため、Google Play 外でのテストや配布でのみ有用です。Google Play はサポートされているアーキテクチャをあなたに代わって処理してくれます。
:::

<CommandTabs
npm="npm run tauri android build -- --apk --split-per-abi"
yarn="yarn tauri android build --apk --split-per-abi"
pnpm="pnpm tauri android build --apk --split-per-abi"
deno="deno task tauri android build --apk --split-per-abi"
bun="bun tauri android build --apk --split-per-abi"
cargo="cargo tauri android build --apk --split-per-abi"
/>

### サポート対象の Android 最小バージョンの変更

Tauri アプリがサポートしてる最小の(最も古い) Android バージョンは「Android 7.0」(コード名 Nougat、SDK 24)です。

古いシステムもサポートしつつ、新しい Android API を使用するテクニックのないわけではありません。
詳細については、[Android ドキュメント] を参照してください。

あなたのアプリをより新しい Android バージョンで実行しなければならない場合は、[`tauri.conf.json > bundle > android > minSdkVersion`] で「最小 SDK バージョン」の指定ができます:

```json title="tauri.conf.json" ins={4}
{
"bundle": {
"android": {
"minSdkVersion": 28
}
}
}
```

## アップロード

アプリのビルドと「Android App Bundle」ファイルの生成が完了したら(これらは `gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab` にあります)、いよいよ新しいリリースを作成して Google Play Console にアップロードします。

初回のアップロードは、このウェブサイトで「アプリの署名」と「バンドル ID」が検証されるように、手作業で行なう必要があります。
Tauri は現在、Android リリースの作成プロセスを自動化する処理方法を提供していませんが(これには [Google Play Developer API] を利用する必要があります)、現在開発中です。

[Android ドキュメント]: https://developer.android.com/training/basics/supporting-devices/platforms#version-codes
[Google Play 公式ドキュメント]: https://developer.android.com/distribute?hl=ja
[Google Play Console]: https://play.google.com/console/developers?hl=ja
[コード署名]: /ja/distribute/sign/android/
[Google Play のリリース・チェックリスト]: https://play.google.com/console/about/guides/releasewithconfidence/
[`tauri.conf.json > version`]: /reference/config/#version
[Google Play Developer API]: https://developers.google.com/android-publisher/api-ref/rest

<div style="text-align: right;">
【※ この日本語版は、「Mar 29, 2025 英語版」に基づいています】
</div>
Loading