📑

Tauriで作ったアプリをMicrosoft Storeへリリースする [コード署名無料]

2023/03/29に公開

こんにちはmofmofでエンジニアをしているshwldです。

https://zenn.dev/shwld/articles/ca8a7972cd1f0c

をリリースしたのですが、Windows版はMicrosoft Storeに提出しました。
最初は、Macと同じくサイト上からダウンロードさせようと思ったのですが、ある壁が立ちはだかったのです。

コード署名証明書

アプリケーションにデジタル署名することで、アプリをダウンロードしたユーザーは信頼された発行元であることが確認できます。
安心してアプリを利用することができますね。

これがないと、こういうのが出ます。こんなのでたらインストールするのは抵抗がありますね...
スマートスクリーン

これに対処するには、有料のコードサイニング証明書というものを買う必要がありますが、安めのものでも年間2万くらい払わないといけません。

https://blog.craftz.dog/code-signing-certificate-for-indie-developers-6b64c9ec806b

Microsoft Storeからリリースすればこのコストがなくなる

Windowsストアに出す場合は、自己署名証明書で署名して提出することができます。
この記事ではTauriで作ったアプリをストアに提出する手順を記載します。

Microsoft Storeからリリースするための設定手順

ここから実際にストアに登録する手順について記載していきます。

1. アプリ情報を登録する

事前にパートナーセンターに登録しておいてください。

https://partner.microsoft.com/en-us/dashboard/products

登録したら、事前にMSIXアプリを作っておきます。

Apps and Gamesのページで、MSIX or PWA app を選択してproductを作成します。
MSIX or PWAを選択

作成したプロダクトの以下の情報をあとで使うので、どこかに記録しておいてください。

  • Package/Identity/Name
  • Package/Identity/Publisher
  • Package/Identity/PublisherDisplayName

2. 自己署名証明書を作る

必要な情報は以下です

  • partnerページで確認できるPackage/Identity/Publisher
  • 証明書のパスワード
$certname = "Package/Identity/PublisherのCN=以降を入れる"

# 新しい自己署名証明書をコード署名用に作成する
$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256

# .cerファイルとしてエクスポート
Export-Certificate -Cert $cert -FilePath "~\Downloads\revelup.cer"

# パスワードを扱う
$env:WINDOWS_PFX_PASSWORD = 'xxxxxx'
$mypwd = ConvertTo-SecureString -String $env:WINDOWS_PFX_PASSWORD -Force -AsPlainText

# .pfxファイルとしてエクスポート
Export-PfxCertificate -Cert $cert -FilePath "~\Downloads\revelup.pfx" -Password $mypwd

上記を実行すると .pfxファイルを得られます。

3. Tauriパッケージをビルドする

tauri build を実行してパッケージをビルドします

Compiling revelup v0.0.0 (C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri)
    Finished release [optimized] target(s) in 17.15s
        Info Target: x64
     Running candle for "main.wxs"
     Running light to produce C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle/msi/REVELUP_dev_0.0.10_x64_en-US.msi
    Bundling C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle\msi\REVELUP_dev_0.0.10_x64_en-US.msi.zip
    Finished 2 bundles at:
        C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle/msi/REVELUP_dev_0.0.10_x64_en-US.msi
        C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle\msi\REVELUP_dev_0.0.10_x64_en-US.msi.zip (updater)

        Info 1 updater archive at:
        Info         \\?\C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle\msi\REVELUP_dev_0.0.10_x64_en-US.msi.zip.sig
Done in 49.83s.
Done in 50.11s.

上記でいくつかファイルができましたが

C:\Users\shwld\source\repos\revelup-note\apps\desktop\src-tauri\target\release\bundle/msi/REVELUP_dev_0.0.10_x64_en-US.msi を使います。

4. msiファイルをmsixにコンバートする

MSIX Packaging Toolを使います。

https://apps.microsoft.com/store/detail/msix-packaging-tool/9N5LW3JBCXKF?hl=ja-jp&gl=jp&rtc=1


アプリケーションパッケージを選択
MSIX Packaging Tool


「このコンピューターにパッケージを作成する」を選択
新しいパッケージの作成


Windows Search がアクティブをチェックして「選択項目を無効化」をクリック。その後「次へ」
Windows Search がアクティブをチェックして「選択項目を無効化」をクリック。その後「次へ」


    1. で作成したmsiファイルを参照して指定します
  1. 署名の基本設定でpfxを選択し、2. の.pfxを参照します
    1. で入力した証明書のパスワードを入力
  2. タイムスタンプサーバーに http://timestamp.comodoca.com を指定

次へ
インストーラーを指定する


  1. パッケージ名 に 1.の Package/Identity/Name を入力します
  2. 発行元の表示名 に1.の Package/Identity/PublisherDisplayName を入力します

パッケージ名を指定する


あとは画面に従い次へ進めていきます





出来上がったmsixファイルを Microsoft Partner Center へアップロードしてください。
問題があれば割とわかりやすいエラーメッセージで教えてくれるので、適宜調整してください。

できた手順をなぞって記事を作成しておりますが、間違いなど有りましたら報告いただけると嬉しいです。


この記事は、株式会社mofmofの「水曜日の個人開発」の活動で書きました。
https://indie-dev.mof-mof.co.jp/

Discussion