Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

配布概要

Fenfaはすべてのプラットフォームに統一された配布エクスペリエンスを提供します。各製品には、訪問者のプラットフォームを自動検出して適切なダウンロードボタンを表示する公開ダウンロードページがあります。

配布の仕組み

mermaid
sequenceDiagram
    participant User as エンドユーザー
    participant Page as 製品ページ
    participant Fenfa as Fenfaサーバー
    participant Storage as ファイルストレージ

    User->>Page: /products/:slug にアクセス
    Page->>Page: プラットフォームを検出 (iOS/Android/デスクトップ)
    Page->>User: プラットフォーム固有のダウンロードボタンを表示

    alt iOS
        User->>Fenfa: インストールをタップ
        Fenfa->>User: itms-services:// リダイレクト
        User->>Fenfa: GET /ios/:id/manifest.plist
        Fenfa->>User: マニフェストXMLを返す
        User->>Storage: IPAをダウンロード
    else Android
        User->>Fenfa: ダウンロードをタップ
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: APKをダウンロード
    else デスクトップ
        User->>Fenfa: ダウンロードをクリック
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: バイナリをダウンロード
    end

製品ダウンロードページ

公開された各製品には/products/:slugの公開ページがあります。ページには以下が含まれます:

  • アプリアイコンと名前 -- 製品設定から
  • プラットフォーム検出 -- ページはブラウザのUser-Agentを使用して最初に正しいダウンロードボタンを表示します
  • QRコード -- モバイルで簡単にスキャンできるように自動生成
  • リリース履歴 -- 選択したバリアントのすべてのリリース(新しい順)
  • チェンジログ -- リリースごとのノートがインラインで表示
  • 複数バリアント -- 製品が複数のプラットフォーム向けバリアントを持つ場合、ユーザーはそれらを切り替えられます

プラットフォーム固有の配布

プラットフォーム方法詳細
iOSitms-services://経由のOTAマニフェストplist + 直接IPAダウンロード。HTTPSが必要。
Android直接APKダウンロードブラウザがAPKをダウンロードします。ユーザーは「不明なソースからのインストール」を有効にします。
macOS直接ダウンロードDMG、PKG、またはZIPファイルをブラウザ経由でダウンロード。
Windows直接ダウンロードEXE、MSI、またはZIPファイルをブラウザ経由でダウンロード。
Linux直接ダウンロードDEB、RPM、AppImage、またはtar.gzファイルをブラウザ経由でダウンロード。

直接ダウンロードリンク

すべてのリリースには直接ダウンロードURLがあります:

https://your-domain.com/d/:releaseID

このURL:

  • 正しいContent-TypeContent-Dispositionヘッダーでバイナリファイルを返します
  • 再開可能なダウンロードのためにHTTP Rangeリクエストをサポートします
  • ダウンロードカウンターをインクリメントします
  • 任意のHTTPクライアント(curl、wget、ブラウザ)で動作します

イベント追跡

Fenfaは3種類のイベントを追跡します:

イベントトリガー追跡データ
visitユーザーが製品ページを開くIP、User-Agent、バリアント
clickユーザーがダウンロードボタンをクリックIP、User-Agent、リリースID
downloadファイルが実際にダウンロードされるIP、User-Agent、リリースID

イベントは管理パネルで表示するか、CSVとしてエクスポートできます:

bash
curl -o events.csv http://localhost:8000/admin/exports/events.csv \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

HTTPS要件

iOSはHTTPSが必要

itms-services://経由のiOS OTAインストールには、有効なTLS証明書を使用したHTTPSが必要です。自己署名証明書は動作しません。ローカルテストにはngrokmkcertなどのツールを使用してください。プロダクションにはLet's Encryptを使用したリバースプロキシを使用してください。プロダクションデプロイを参照してください。

プラットフォームガイド

Released under the Apache-2.0 License.