◉ANTIGRAVITY LABEN
記事一覧/アプリ開発
▣ アプリ開発/2026-05-02上級

Tauri 2 アプリを有料配布するまでに直した順番 — 署名・公証・自動更新・ライセンス検証

Tauri 2 のデスクトップアプリを有料配布するまでに私がつまずいた、署名の順番・公証の失敗条件・段階配信の判定漏れ・オフラインライセンス検証を、動く実装として書き直しました。

antigravity464tauridesktopcode-signingnotarizationmonetization15license

✦ プレミアム記事

Tauri 2 アプリを有料配布するまでに直した順番

Tauri 2 でアプリを完成させたあと、ほとんどの開発者が次に詰まるのは「コードを書く部分」ではありません。tauri build が通ったあとから本当の戦いが始まります。macOS の Notarization、Windows の SmartScreen 警告、自動アップデート、ライセンス認証、課金フロー — これらは公式チュートリアルがあえて深く触れない領域でありながら、有料アプリとして配布するなら避けて通れない関門でもあります。

私自身、個人で iPhone/Android アプリを長年運用してきましたが、デスクトップアプリは別の生き物です。ストアによる審査と配信に頼れない代わりに、自分でインフラを設計しなければなりません。ここではAntigravity のエージェントを活用しながら、本番運用に耐える Tauri 2 アプリのデプロイパイプラインをまるごと組み立てる方法を、実運用で得た落とし穴も含めて共有していきます。

なぜ Tauri 2 の「本番デプロイ」が独特の難所になるのか

Tauri が Electron に対して優位なのは、バイナリサイズと起動速度だけではありません。配布の自由度こそが本質です。Tauri 2 はネイティブインストーラを直接生成し、アップデート基盤も自由に選べる設計になっています。この自由度は強力ですが、同時に「すべて自分で設計しなければならない」責任を意味します。

Electron 系のフレームワークでは、electron-updater や electron-builder の組み合わせで多くのことが自動化されます。Tauri 2 でも tauri-plugin-updater が用意されていますが、署名鍵の管理、配信エンドポイントの設計、段階的ロールアウトの仕組みは自前で組み上げる必要があります。Antigravity を使う最大の利点は、この「フレームワーク横断の設計判断」を AI エージェントと対話しながら詰められることです。具体的には、Antigravity の Manager Surface で「Rust バックエンドの署名検証」と「TypeScript フロントエンドのライセンス UI」を別エージェントに同時並行で書かせるパターンが本記事を貫く設計思想になります。

もう一つ、Web との決定的な違いがあります。Web の不具合はロールバックすれば数秒で消えますが、デスクトップアプリの不具合は利用者のマシンに残り続けます。次にアプリを起動してもらうまで、こちらから触れる手段がありません。

この非対称性が、更新サーバも、ライセンス形式も、インストーラも「保守的に倒す」理由になります。私はこの前提を理解するまで、配信の設計を Web の感覚で組んでいて、一度作った修正版が届かない期間の長さに肝を冷やしました。

Electron 側の設計と比べたい方は、Antigravity × Electron デスクトップAIアプリケーション開発 に更新とパッケージングの違いをまとめてあります。本記事は「ストアに頼らない配布を全部自前で持つ」側の話です。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦tauri build が出力した DMG をそのまま公証に出すと、中の .app が未署名のまま通ってしまう順番の罠を、動くスクリプトごと回避できます
✦段階配信が 0% でも一部端末に配ってしまう判定漏れと、端末バケットが起動ごとに変わる非固定バグを、Worker の実装を差し替えて塞げます
✦Stripe Webhook の署名検証・冪等化・Ed25519 ライセンス発行までを 1 本の Worker に収めた実装を、そのまま自分のプロダクトへ移植できます
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

▣ アプリ開発2026-03-27
AdMob のウォーターフォールを残したまま、ビッディングを足す判断
運用中の iOS 4 アプリでウォーターフォールを残したままビッディングを加えた判断を、ATT と初期化の順序、広告ゲートの設計、見るべき指標とともに整理しました。
▣ アプリ開発2026-10-14
ドキュメントのないコードを仕様書に起こす前に、読ませる順番を fan-in で決めておく
ドキュメントのない既存コードをエージェントに読ませて仕様書にするとき、最初に渡すファイルをどう決めるか。import の被参照数(fan-in)とルート定義ファイルから「読ませる順番」を出す 36 行の Python と、77 ファイルの Next.js プロジェクトで測った割合をまとめます。
▣ アプリ開発2026-10-08
agy CLI をコンテナで動かす前に、擬似 agy で確かめておく 3 つの安全網
Antigravity CLI(agy)を Docker や Cloud Run のジョブから呼ぶ前に、インストーラーの取りこぼし・承認待ちの固まり・終了コード 0 の空振りを、擬似 agy で再現して潰します。公式 docs の記述と、手元で実行した結果だけを根拠に組み立てた手順です。