2018/11/25

MicrosoftストアとPrivacy Policy

先月、Microsoftストアの管理用のダッシュボードで、Monitorianの更新のサブミッションを出そうとしたとき、Propertiesの項が前回から変えていないのにIncompleteになって、サブミッションの提出ができないことがあった。

何かと思ってPropertiesの項を開いてみると、個人情報の取扱いについてNoを選択していたら、そのせいで設定が完了していないことになっていた。

大前提としてMonitorianは個人情報に触らないので、ここは最初のサブミッションからNoを選択してきた。前回のサブミッションが通過したのが10月10日、この時が10月17日だったので、この間に何らかの変更があったのか、その前の変更の影響がこのタイミングで現れたのか、その辺は不明。

いずれにせよ、Privacy policy URLの入力が必要なのはYesを選択したときだけのはずで、ダッシュボードの動作としておかしいので、インシデントとして報告した。

過去の他の経験から、まず問題をサポートに理解してもらうのが手間かなと思っていたら、サポートの反応は迅速で、かつ、一発で問題を正確に理解していたので少し驚いた。前回と変えていないのに引っ掛かったことについて調査してもらった結果、以下のことが判明。
  • アプリのCapabilityとしてrunFullTrustを宣言しているので、このCapabilityの場合は、アプリの実際の動作にかかわらず、Privacy policyが必要。
  • 前回までこの問題が出なかった理由は不明だが、いずれにせよ現在は必要。
このrunFullTrust(Full Trust Permission Level)はDesktop Bridgeを利用する場合にはそう指定することになっているので、開発者に選択肢はないが、確かにかなり強いCapabilityなので、Privacy policyを要求するのは分からなくもない。というか、その可能性はあるだろうと思ってはいた。一方、弱いCapabilityでも個人情報を扱うことはあり得るので、本質的には別次元の問題。

ともあれ、このアプリは個人情報を取得しないという一文であっても、Microsoftストアのシステム上必要なのであれば書くが、Yesを選択すると事実と異なる虚偽の記載となって、後でペナルティ等はないのかと質問したところ(しつこく聞こえるかもしれないが、虚偽の記載は何であれ後で不利に利用されかねない)、以下の回答。
  • ここでYesを選択することによって、ペナルティを課されることはない。
ということで、確認はしたので、Privacy policyを作成してサブミッションを通過させた。

以上、デスクトップアプリをMicrosoftストアに出すにはDesktop Bridgeが必要、Desktop BridgeはrunFullTrustが必要、MicrosoftストアはrunFullTrustだとPrivacy policyが必要、よって、導き出される結論は、デスクトップアプリをMicrosoftストアに出すにはPrivacy policyが必要ということになる。

その後、ダッシュボードは修正されて、11月25日現在、以下のようになっている(Wifinianのもの)。

CapabilitiesとPrivacy policyの関係が明示されたので、その点は分かりやすくなった。

2018/09/08

Desktop App Converterの完全削除

Desktop App Converter(DAC)を使ったことがあれば知ってのとおり、DACは対象アプリのインストーラをコンテナ技術を使って実行するので、DACを実行するOSと同じバージョンのBaseImageを必要とする。

このため、DACを使うには初めに、
  1. MicrosoftストアからDACをインストールする。
  2. OSに合ったBaseImageをダウンロードし、DACでSetupする。
という手順が必要となる。

さて、DACによる対象アプリのAppxパッケージ化が完了し、不要となったDACを削除するときは逆に、
  1. DACをアンインストールする(ストアアプリなので簡単)。
  2. BaseImageを削除する。
で終了かといえば、実はそんなことはない。

というのも、DACをSetupしたときにBaseImageから展開されたファイル群はDACをアンインストールしても削除されないので。具体的には以下のパスに存在する。
C:\ProgramData\Microsoft\Windows\Images
これらのファイルは現在のBuild 17134のもので約1.5GBあるが、アクセス権限の関係で簡単には削除できない。これを美しく消す方法はないかと調べてみたら、ちゃんと公式にあった。
このCleanupオプションを使えば、全部きれいに消すには以下のコマンドとなる。
DesktopAppConverter.exe -Cleanup All

これは当然にDACをアンインストール前に行う必要があるので、手順を改めれば以下のようになる。
  1. DACでCleanupする。
  2. DACをアンインストールする。
  3. BaseImageを削除する。
ちなみに、BaseImageはSetup後はなくてもConvertは可能なので、Setupした時点でもう不要かもしれない。