ついに最終回。Windowsストアにアプリを申請するまでの手順を解説。アプリ公開に必要な機能も実装する。
powered by Insider.NET
いよいよ完成したアプリをWindowsストアに公開するときが来た。今回は、Windowsストアにアプリを申請するまでの手順を解説する。また、公開するために必要な機能がまだ欠けているので、その実装も行う。なお、本稿のサンプルコードは「Dev Center - Windows Store apps サンプル: Windowsストア・アプリ開発入門:第12回」からダウンロードできる。
Windows 8.1(以降、Win 8.1)用のWindowsストアアプリ(以降、Win 8.1アプリ)を開発するには、Win 8.1とVisual Studio 2013(以降、VS 2013)が必要だ。本稿では、Windows 8.1 ProとVisual Studio Express 2013 for Windows*1を使用している。また、前回終了時点のソースコードを用意しておいてほしい(「Windows Store app samples:Windowsストア・アプリ開発入門:第11回」からダウンロード可)。
*1 Visual Studio Express 2013 for Windows(製品版)はマイクロソフトのサイトから無償で入手できる。Expressエディションはターゲットプラットフォームごとに製品が分かれていて紛らわしいが、Windowsストアアプリの開発には「for Windows」を使う(「for Windows Desktop」はデスクトップで動作するアプリ用)。
全体の流れは次のようになる。
1. 開発者アカウント登録
2. 認定要件の確認と対応
2-1 Webページの用意(必要な場合)
2-2 アプリの修正(必要な場合)
3. 提出用のパッケージ作成
4. リリースビルドでのテスト
4-1 WACKによるテスト
4-2 実機でのテスト
5. 提出するグラフィックの作成
6. ストアへ提出
7. 不合格になったときの対処
ストアへ提出する前の準備(1〜5)の順序はこの通りでなくてもよいのだが、本稿ではこの順序で説明していく。なお、別途公開しているサンプルコードは、パッケージへの署名に必要なプロジェクトソース証明書ファイル(.pfx)が含まれておらず、提出用のパッケージは作成できないようになっているのでご注意願いたい(プロジェクトソース証明書ファイルは、Windowsストアアプリのプロジェクトを作成するときに自動生成される)。
本来はその都度、行っておけばよいのだが、連載中にその機会がなく、ここまで来てしまった。ストアに公開してしまえば、しばらくの間はソースコードを見直す機会もなくなるだろう。自分が書いたコードの内容を忘れてしまう前に、不要なコードは消し、長く読みづらくなってしまったメソッドは書き直しておこう。
別途公開しているサンプルコードでは、次の表に示すファイルが不要だったので削除した。また、ここには記さないが、サンプルコードではいくつかのメソッドが書き直してあり、分割したファイルもある。
プロジェクト内のフォルダー | 不要なファイル |
---|---|
AtmarkItReader\Assets\ | DarkGray.png LightGray.png MediumGray.png |
AtmarkItReader\Common\ | ReadMe.txt |
AtmarkItReader\DataModel\ | SampleDataSource.cs SampleData.json |
AtmarkItReader\Strings\ja-JP\ | Resources.resw |
AtmarkItReader\ | AdSamplePage.xaml.txt ItemPage.xaml/.xaml.cs SectionPage.xaml/.xaml.cs |
プロジェクトに含まれていた不要なファイル |
VS 2013を利用するための登録の他に、Windowsストアでアプリを公開する開発者としてのアカウントの登録が必要だ。開発者アカウント登録には、クレジットカードが必須である。開発者アカウントには、次の2種類がある。
開発者アカウントを登録する手順は、MSDNの「開発者アカウントを開く」に記載されている。この手続きが済むと、料金とは別の金額がクレジットカードで決済される。その明細を見て、取引内容欄に載っているコードまたは取引金額をメモし、それをWindowsストアのダッシュボードで入力することで「アカウントの検証」*3が終わり、その金額が口座に返金されるとともに、開発者アカウントの登録が完了する。
また、有料アプリの公開を予定している場合は、「受取りアカウントの設定と税関連の書類」の設定も忘れずにやっておこう。税関連の書類の提出は難しそうに思えるが、日本人の個人用アカウントの場合はチェック/選択が数箇所ある程度で、簡単にオンラインで提出できるようになっている。Windowsストアアプリフォーラムの「W-8 フォーム(税プロファイル)について」で詳しく説明されている。
*2 個人用アカウントで申請するストアアプリでは、Package.appxmanifestの[機能]で次の3つのいずれかにチェックが入っていると不合格になる(MSDN「アカウントの種類、場所、料金」参照)。[エンタープライズ認証]/[共有ユーザー証明書]/[ドキュメント ライブラリ](VS 2013のGUI編集画面には表示されない)
*3 アカウントの検証のために、クレジットカードが必須となっているのである。学生の方などには結構きついハードルで、改善を求める声もあるのだが、今のところクレジットカードのみとなっている。また、会社用アカウントの場合は、さらに会社の存在を証明する書類(法人登記簿謄本や税務署確認印の入った個人事業開業届の写しなど)の提出も求められる。なお、このようにして開発者の身元を明らかにしておくことは、悪意のあるアプリ(マルウェア)をWindowsストアで公開してやろうと考える者に対する防波堤になっているのである。
Windowsストアで公開されるには、「Windows ストア向けアプリ認定要件」に合致していなければならない。長い文書であるが、合致していないものが1つでもあると審査に通らないので、熟読してもらいたい。なお、翻訳がおかしい場合もあるので*4、妙だと感じたら英語の原文に当たってほしい。
認定要件を満たさないと公開できないのだから、本来は開発に取り掛かるときにこれらを検討しておくべきだ。また、要件は改訂されることがあるので、開発中もときどきチェックしておこう*5。
さて、認定要件を調べていくと、ここまで作ってきたアプリでは満たしていない項目が見つかった。次の2点だ。
前者は、インターネット接続を使うアプリでは必須である*6。プライバシーポリシー(=プライバシーに関する声明)を説明するWebページを用意しなければならない。さらに、そのページへのリンクをアプリに作り込む必要もある。後者のサポート情報は、ストアへの申請時に入力しなければならない。メールアドレスでもよいのだが、WindowsストアのWebサイトに掲載されてしまうので、スパムメールのことを考えるとサポート情報を掲載したWebページを用意した方がよいだろう。この後、Webページの作成と、アプリの改修について説明する。
*4 例えば「4. Windowsストアアプリはユーザーを管理する」という見出しがあるが、その原文は「Windows Store apps put the customer in control」となっている。原文では「control」を握っているのは「the customer」であり、日本語訳では意味が逆になっている。ちなみに、「in control」というフレーズは「Microsoft Security & Management Conference 2007」のキャッチコピー「You're in Control」で使われていた。その当時、「in control」の意味を取り違えていたのは筆者だけではなかったようである。
*5 例えば1月の改訂で広告に対する要件が緩和されたことは、前回の注*7に書いた。このように緩和されることもあれば、逆に厳しくなることもあるだろう。
*6 アプリの機能ではインターネットを使っていなくても、広告で使っているなら、やはりプライバシーに関する声明が必要である。
今回はプライバシーポリシーとサポート情報を記載したWebページを用意する。
自分のドメインを持っていないという人は、いろいろ工夫してみてほしい。開発者が所有しているドメインのWebページでなければならない、という制限はない。Facebookのページにプライバシーポリシーを載せている例もあるし、GitHubのGistで済ませている猛者を見たこともある。
プライバシーポリシーとサポート情報は分けてもよいし、同じページに載せても構わない。条件は、そのページをぱっと見たときに分かることであるようだ。筆者は、ページの下の方にサポート情報を載せていたアプリで不合格になったことがある。今回は両方を掲載したWebページを用意した(次の画像)。
アプリが個人情報やプライバシーに関わる情報を送信しないのなら、上の画像のように1行だけの記述で十分のようだ。ただし、どのアプリのプライバシーポリシーであるか、責任の主体はどこにあるのかは、明確に分かるようにしておこう。
Copyright© Digital Advantage Corp. All Rights Reserved.