Skip to content

Commit 7eb4f40

Browse files
J1-takaivasfvitor
andauthored
i18n(ja) Distribute Section Part 2 (#3336)
Co-authored-by: Vitor Ayres <gitkey@virtuaires.com.br>
1 parent 605649b commit 7eb4f40

File tree

7 files changed

+1947
-0
lines changed

7 files changed

+1947
-0
lines changed
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: Flathub
3+
sidebar:
4+
order: 1
5+
i18nReady: true
6+
---
7+
8+
import { Tabs, TabItem, Card } from '@astrojs/starlight/components';
9+
import TranslationNote from '@components/i18n/TranslationNote.astro';
10+
11+
Flatpak の仕組みの詳細については、[初めての Flatpak ビルド](https://docs.flatpak.org/en/latest/first-build.html)(英語版)を参照してください。
12+
13+
<TranslationNote lang="ja">
14+
15+
**Flatpak** フラットパック。Linux で用いられているアプリ配布用のパッケージ形式で、さまざまなディストリビューション上で利用できます。
16+
17+
</TranslationNote>
18+
19+
この章では、Flatpak を配布する方法として、最も広く利用されているプラ​​ットフォームの「[Flathub](https://flathub.org/)(フラットハブ)」を経由して行なうことを前提としています。他のプラットフォームをご利用になる場合は、それぞれのドキュメントをご参照ください。
20+
21+
## 事前準備
22+
23+
アプリを Flathub にアップロードする前に、「Flatpak Runtime」(実行環境)内でアプリをテストするために、まずローカルで Flatpak をビルドします。このやりかたは、開発ビルドを素早く共有したい場合にも役立ちます。
24+
25+
**1. `flatpak``flatpak-builder` のインストール**
26+
27+
Flatpak をローカルでビルドするには、「`flatpak`」と「`flatpak-builder`」の両ツールが必要です。例えば Ubuntu(Debian 系 Linux)では、以下のコマンドを実行します:
28+
29+
<Tabs syncKey="distro">
30+
<TabItem label="Debian">
31+
32+
```sh
33+
sudo apt install flatpak flatpak-builder
34+
```
35+
36+
</TabItem>
37+
<TabItem label="Arch">
38+
39+
```sh
40+
sudo pacman -S --needed flatpak flatpak-builder
41+
```
42+
43+
</TabItem>
44+
<TabItem label="Fedora">
45+
46+
```sh
47+
sudo dnf install flatpak flatpak-builder
48+
```
49+
50+
</TabItem>
51+
<TabItem label="Gentoo">
52+
53+
```sh
54+
sudo emerge --ask \
55+
sys-apps/flatpak \
56+
dev-util/flatpak-builder
57+
```
58+
59+
</TabItem>
60+
</Tabs>
61+
62+
**2. Flatpak Runtime のインストール**
63+
64+
```shell
65+
flatpak install flathub org.gnome.Platform//46 org.gnome.Sdk//46
66+
```
67+
68+
**3. [Tauri アプリの .deb をビルドする](https://v2.tauri.app/reference/config/#bundleconfig)**
69+
70+
**4. マニフェストの作成**
71+
72+
<TranslationNote lang="ja">
73+
74+
**マニフェスト** manifest: 元の意味は「宣言書」「声明文」。"App manifest" は「アプリケーションが動作するために必要な情報を記述した XML ファイル」、"Cargo manifest" は、*物流*業界であれば「本船に船積みされている貨物(cargo)の明細書」、Rust プログラムであれば「プロジェクトのメタデータを記述した Cargo.toml ファイル」を指します。
75+
76+
</TranslationNote>
77+
78+
```yaml
79+
id: org.your.id
80+
81+
runtime: org.gnome.Platform
82+
runtime-version: '46'
83+
sdk: org.gnome.Sdk
84+
85+
command: tauri-app
86+
finish-args:
87+
- --socket=wayland # ウィンドウに表示に必要なアクセス権
88+
- --socket=fallback-x11 # ウィンドウ表示に必要なアクセス権
89+
- --device=dri # OpenGL(すべてのプロジェクトで必要なわけではありません)
90+
- --share=ipc
91+
92+
modules:
93+
- name: binary
94+
buildsystem: simple
95+
sources:
96+
- type: file
97+
url: https://github.com/your_username/your_repository/releases/download/v1.0.1/yourapp_1.0.1_amd64.deb
98+
sha256: 08305b5521e2cf0622e084f2b8f7f31f8a989fc7f407a7050fa3649facd61469 # リモート・ソースを使用している場合は必須です
99+
only-arches: [x86_64] # このソースは x86_64 コンピュータでのみ使用されます
100+
# このパスは、.deb バンドル内に作成されたバイナリ・ファイルを指しています
101+
# Tauri は、解凍された .deb の内容に対応するフォルダーも作成します
102+
build-commands:
103+
- ar -x *.deb
104+
- tar -xf data.tar.gz
105+
- 'install -Dm755 usr/bin/tauri-app /app/bin/tauri-app'
106+
- install -Dm644 usr/share/applications/yourapp.desktop /app/share/applications/org.your.id.desktop
107+
- install -Dm644 usr/share/icons/hicolor/128x128/apps/yourapp.png /app/share/icons/hicolor/128x128/apps/org.your.id.png
108+
- install -Dm644 usr/share/icons/hicolor/32x32/apps/yourapp.png /app/share/icons/hicolor/32x32/apps/org.your.id.png
109+
- install -Dm644 usr/share/icons/hicolor/256x256@2/apps/yourapp.png /app/share/icons/hicolor/256x256@2/apps/org.your.id.png
110+
- install -Dm644 org.your.id.metainfo.xml /app/share/metainfo/org.your.id.rosary.metainfo.xml
111+
```
112+
113+
Gnome 46 runtime には、通常の Tauri アプリのすべての依存関係とその正しいバージョンが含まれています。
114+
115+
<TranslationNote lang="ja">
116+
117+
**Gnome 46 runtime** GNOME(ノーム)デスクトップ環境バージョン46の実行環境(ランタイム)。
118+
119+
</TranslationNote>
120+
121+
**5. アプリのインストールとテスト**
122+
123+
```shell
124+
125+
# flatpak のインストール
126+
flatpak -y --user install <local repo name> <your flatpak id>
127+
128+
# flatpak の実行
129+
flatpak run <your flatpak id>
130+
131+
# flatpak のアップデート
132+
flatpak -y --user update <your flatpak id>
133+
```
134+
135+
## 追加ライブラリを追加
136+
137+
デフォルトの tauri アプリよりも多くのライブラリがあなたの最終的なバイナリに必要な場合は、不足しているライブラリを「flatpak マニフェスト」に追加する必要があります。
138+
これには二つの方法があります。迅速なローカルでの開発では、ローカル・システムからビルド済みのライブラリ・ファイル(`.so`)をただ単に取り込むだけでうまくいくかもしれません。
139+
しかし、flatpak の最終ビルドにはこの方法は推奨されません。なぜなら、ローカル・ライブラリ・ファイルは flatpak ランタイム環境用にはビルドされていないからです。
140+
そのままでは非常に見つけにくいさまざまなバグが発生する可能性があります。
141+
したがって、ビルド・ステップとしては、あなたのプログラムが依存するライブラリを flatpak 内のソースからビルドすることをお勧めします。
142+
143+
## flathub への開示
144+
145+
**_1. [Flathub Repository](https://github.com/flathub/flathub/fork) をフォークします_**
146+
147+
**_2. フォークをクローンします_**
148+
149+
```shell
150+
git clone --branch=new-pr git@github.com:your_github_username/flathub.git
151+
```
152+
153+
**_3. リポジトリに移動します_**
154+
155+
```shell
156+
cd flathub
157+
```
158+
159+
**_4. 新しいブランチを作成します_**
160+
161+
```shell
162+
git checkout -b your_app_name
163+
```
164+
165+
**_5. 自分のアプリの apps manifest を作成したブランチに追加し、行なった変更を「コミット」した後に「プッシュ」します。_**
166+
167+
**_6. github の `new-pr` ブランチに対して「プルリクエスト」を発行(open)します_**
168+
169+
**_7. これで、あなたのアプリはレビュー・プロセスに入ります。不具合箇所などがある場合には修正を求められることもあります。_**
170+
171+
「プルリクエスト」が承認されると、アプリのリポジトリへの招待が届き、編集が行なえます。これ以降は、アプリを継続的に更新できます。
172+
173+
詳細については、[flatpak のドキュメント](https://docs.flatpak.org/en/latest/dependencies.html#bundling) をご覧ください。
174+
175+
<div style="text-align: right;">
176+
【※ この日本語版は、「Feb 28, 2025 英語版」に基づいています】
177+
</div>
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
title: Google Play
3+
sidebar:
4+
order: 1
5+
i18nReady: true
6+
---
7+
8+
import CommandTabs from '@components/CommandTabs.astro';
9+
import TranslationNote from '@components/i18n/TranslationNote.astro';
10+
11+
「Google Play」(グーグル・プレイ)は、Google 社が運営する Android アプリ配信サービスです。
12+
13+
この章では、Android アプリを Google Play に公開するために必要なことがらについて説明しています。
14+
15+
:::note
16+
Tauri は内部で Android Studio プロジェクトを使用しているため、Android アプリのビルドと公開に関する公の慣行(決まりごと)はあなたのアプリにも適用されます。
17+
詳細については、[Google Play 公式ドキュメント]を参照してください。
18+
:::
19+
20+
<TranslationNote lang="ja">
21+
22+
**Android Studio プロジェクト** Android Studio project: 「Android Studio(アンドロイド・スタジオ)」は Android アプリ開発を行なうための Google 公式開発ツール名。「[プロジェクト](https://developer.android.com/studio/projects?hl=ja)」は、アプリのソースコードやアセット、ビルド構成など、必要な情報をすべて定義・格納したファイルを言います。
23+
24+
</TranslationNote>
25+
26+
## 必要事項
27+
28+
Android アプリを、Google の Play Store で配布するには、[Google Play Console] で「デベロッパー・アカウント」を作成する必要があります。
29+
30+
さらには、[コード署名]も設定しなければなりません。
31+
32+
詳細については、[Google Play のリリース・チェックリスト] を参照してください。
33+
34+
## アプリ・アイコンの変更
35+
36+
`tauri android init` を実行して「Android Studio プロジェクト」をセットアップした後、`tauri icon` コマンドを使用してアプリ・アイコンを更新できます。
37+
38+
<CommandTabs
39+
npm="npm run tauri icon /path/to/app-icon.png"
40+
yarn="yarn tauri icon /path/to/app-icon.png"
41+
pnpm="pnpm tauri icon /path/to/app-icon.png"
42+
deno="deno task tauri icon /path/to/app-icon.png"
43+
bun="bun tauri icon /path/to/app-icon.png"
44+
cargo="cargo tauri icon /path/to/app-icon.png"
45+
/>
46+
47+
## 設定
48+
49+
Google Play Console で「デベロッパー・アカウント」を作成したら、あなたのアプリを Google Play Console ウェブサイトに登録する必要があります。必要なフォームの記入や設定作業はすべて、ウェブサイトの案内に従って進めていきます。
50+
51+
## ビルド
52+
53+
次のコマンドを実行すると、Android App Bundle (AAB) をビルドして Google Play にアップロードできます:
54+
55+
<TranslationNote lang="ja">
56+
57+
**AAB 形式** Android App Bundle 形式: アプリのコンパイル済みコードとリソースがすべて含まれた公開形式。Google Play は App Bundle から、デバイス設定ごとに最適化した APK を生成、配信します。下記「[APKs のビルド](#apks-のビルド)」の項も参照。〔[参考](https://developer.android.com/guide/app-bundle?hl=ja#other_considerations)
58+
59+
</TranslationNote>
60+
61+
<CommandTabs
62+
npm="npm run tauri android build -- --aab"
63+
yarn="yarn tauri android build --aab"
64+
pnpm="pnpm tauri android build --aab"
65+
deno="deno task tauri android build --aab"
66+
bun="bun tauri android build --aab"
67+
cargo="cargo tauri android build --aab"
68+
/>
69+
70+
Tauri は、[`tauri.conf.json > version`] に定義されている値 (`versionCode = major*1000000 + minor*1000 + patch`) からバージョン・コードを取得します。
71+
異なるバージョン・コードの書式(たとえば、連続コード)で表示したい場合には、[`tauri.conf.json > bundle > android > versionCode`] の設定で独自のバージョン・コードを設定できます:
72+
73+
```json title="tauri.conf.json" ins={4}
74+
{
75+
"bundle": {
76+
"android": {
77+
"versionCode": 100
78+
}
79+
}
80+
}
81+
```
82+
83+
### APKs のビルド
84+
85+
Google Play にアップロードするバンドル・ファイルとしては「AAB 形式」が推奨されていますが、Google Play ストア外でのテストや配布に使用できる「APK」(Android アプリケーション・パッケージ)を生成することもできます。
86+
あなたのアプリを「APK」形式でコンパイルするには、引数 `--apk` を指定します:
87+
88+
<TranslationNote lang="ja">
89+
90+
**APK** Android Application Package: 「Android パッケージ」形式(APK)は、Android 用のインストール可能かつ実行可能なアプリ形式です。上記の AAB 形式は、公開のみを目的としており、Android デバイスにインストールすることはできません。〔[参考](https://developer.android.com/guide/app-bundle/faq?hl=ja)
91+
92+
</TranslationNote>
93+
94+
<CommandTabs
95+
npm="npm run tauri android build -- --apk"
96+
yarn="yarn tauri android build --apk"
97+
pnpm="pnpm tauri android build --apk"
98+
deno="deno task tauri android build --apk"
99+
bun="bun tauri android build --apk"
100+
cargo="cargo tauri android build --apk"
101+
/>
102+
103+
### 対象アーキテクチャの選択
104+
105+
デフォルトでは、Tauri はサポート対象のすべてのアーキテクチャ(すなわち、aarch64、armv7、i686、x86_64)用にアプリをビルドします。
106+
特定のアーキテクチャのみを対象にコンパイルを行なうには、引数 `--target` で指定します。
107+
108+
<CommandTabs
109+
npm="npm run tauri android build -- --aab --target aarch64 --target armv7"
110+
yarn="yarn tauri android build --aab --target aarch64 --target armv7"
111+
pnpm="pnpm tauri android build --aab --target aarch64 --target armv7"
112+
deno="deno task tauri android build --aab --target aarch64 --target armv7"
113+
bun="bun tauri android build --aab --target aarch64 --target armv7"
114+
cargo="cargo tauri android build --aab --target aarch64 --target armv7"
115+
/>
116+
117+
### アーキテクチャごとの個別バンドル
118+
119+
デフォルトでは、生成された「AAB」と「APK」は汎用仕様であり、サポートされているすべてのアーキテクチャが含まれています。
120+
アーキテクチャごとに個別のバンドルを生成するには、引数 `--split-per-abi` を指定します。
121+
122+
:::note
123+
この指定は、ファイル・サイズを小さくできるものの、アプリのアップロードするには(個別対応になり)不便なため、Google Play 外でのテストや配布でのみ有用です。Google Play はサポートされているアーキテクチャをあなたに代わって処理してくれます。
124+
:::
125+
126+
<CommandTabs
127+
npm="npm run tauri android build -- --apk --split-per-abi"
128+
yarn="yarn tauri android build --apk --split-per-abi"
129+
pnpm="pnpm tauri android build --apk --split-per-abi"
130+
deno="deno task tauri android build --apk --split-per-abi"
131+
bun="bun tauri android build --apk --split-per-abi"
132+
cargo="cargo tauri android build --apk --split-per-abi"
133+
/>
134+
135+
### サポート対象の Android 最小バージョンの変更
136+
137+
Tauri アプリがサポートしてる最小の(最も古い) Android バージョンは「Android 7.0」(コード名 Nougat、SDK 24)です。
138+
139+
古いシステムもサポートしつつ、新しい Android API を使用するテクニックのないわけではありません。
140+
詳細については、[Android ドキュメント] を参照してください。
141+
142+
あなたのアプリをより新しい Android バージョンで実行しなければならない場合は、[`tauri.conf.json > bundle > android > minSdkVersion`] で「最小 SDK バージョン」の指定ができます:
143+
144+
```json title="tauri.conf.json" ins={4}
145+
{
146+
"bundle": {
147+
"android": {
148+
"minSdkVersion": 28
149+
}
150+
}
151+
}
152+
```
153+
154+
## アップロード
155+
156+
アプリのビルドと「Android App Bundle」ファイルの生成が完了したら(これらは `gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab` にあります)、いよいよ新しいリリースを作成して Google Play Console にアップロードします。
157+
158+
初回のアップロードは、このウェブサイトで「アプリの署名」と「バンドル ID」が検証されるように、手作業で行なう必要があります。
159+
Tauri は現在、Android リリースの作成プロセスを自動化する処理方法を提供していませんが(これには [Google Play Developer API] を利用する必要があります)、現在開発中です。
160+
161+
[Android ドキュメント]: https://developer.android.com/training/basics/supporting-devices/platforms#version-codes
162+
[Google Play 公式ドキュメント]: https://developer.android.com/distribute?hl=ja
163+
[Google Play Console]: https://play.google.com/console/developers?hl=ja
164+
[コード署名]: /ja/distribute/sign/android/
165+
[Google Play のリリース・チェックリスト]: https://play.google.com/console/about/guides/releasewithconfidence/
166+
[`tauri.conf.json > version`]: /reference/config/#version
167+
[Google Play Developer API]: https://developers.google.com/android-publisher/api-ref/rest
168+
169+
<div style="text-align: right;">
170+
【※ この日本語版は、「Mar 29, 2025 英語版」に基づいています】
171+
</div>

0 commit comments

Comments
 (0)