Desktop Bridgeアプリ を Windowsストアへ申請・登録して公開する手順

##■前述：Delphi / C++Builder で作成したDesktop Bridge アプリのWindowsストアへの掲載
Windows 10 Anniversary アップデートによって Win32 アプリケーションを Desktop Bridge (Desktop App Converter) にてUWPアプリへと変換し、自分のPCへインストールしたり、ストアアプリとしてWindowsストアにアップロードすることができるようになりました。

そして、開発環境のDelphi / C++Builder / RAD Studio 10.1 Berlin Update 2 - アニバーサリー エディションがリリースされ、このUpdate 2の新機能として、IDE(開発環境)から Desktop Bridge 技術を使ったWindowsストアアプリを直接ビルドできるようになりました。このビルドしたストアアプリは、自分のPCへインストールしたり、ストアアプリとしてWindowsストアにアップロードすることができます。

この記事では、Delphi / C++Builderを使ってストアプリを作成し、その後、Microsoftに掲載申請し、Windowsストアアプリとして掲載されるまでの手順を記載します。

Delphi / C++ Builder ユーザーでなくとも、**Win32アプリをDesktop App ConverterでUWPアプリとして 変換した後に、Windowsストアへ掲載するまでの手順**として参考になるかと思います。


![image](https://qiita-image-store.s3.amazonaws.com/0/145847/7b9c20a8-890c-f4be-95f7-5240dd2ad204.png)
appxアイコン

###■使用する開発環境 Delphi / C++Builder / RAD Studioについて
この記事でAPPX（Windowsストアアプリ）を作るために使用しているエンバカデロのRAD Studio は、 APPXパッケージにコンバートした作れるサードパーティ製品の一つとしてMicrosoftのWebにリストアップされています。ご参考にリンクを掲載しておきます。

https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root
![win.png](https://qiita-image-store.s3.amazonaws.com/0/145847/0ff0f51f-d267-ad28-44ed-6133c6139995.png)
※英語ページ（最終更新日2016年12月15日の記事）ではRad Studioが記載されていますが、日本語翻訳記事（最終更新日2016年11月30日記事）においてはRAD Studioの記載がありません…。よく見ると、英語と日本語記事では最終更新日が異なっています。その更新日の差によって、記載上の差異も出ているのではないかな、と推測しています。

そしてエンバカデロにおけるこのRAD Studio + デスクトップ ブリッジ スペシャルページが[こちらのリンクです（英語）](https://www.embarcadero.com/jp/products/rad-studio/windows-10-store-desktop-bridge)


###■ローカルPC上で使うWindowsストアアプリ作成の基本について
Delphi / C++Builder / RAD Studioを使ってローカルPC上で使うWindowsストアアプリを作る方法についての基本手順はこちらの記事に掲載しています。: [Delphi / C++Builder で Windows 10 ストアプリ制作！](http://qiita.com/kazais_/items/2091f1a915f3fbd86f17)

上述の記事ではWindowsストアアプリを作成して自分のPC(ローカルPC)にインストールして使う「サイドローディング」についてその手順を紹介しています。まだ一度もWindowsストアアプリを作ったことがない方は、こちらの記事に従って、ローカルPCで動作するアプリの作成をお試しください。
そして**今回は、WindowsストアにアップロードしてWindowsストアで自分のアプリを世界に公開する方法**について、実際に行った手順を基に、実例としてご紹介してまいります。

###■Windowsストアに掲載するまでの手順概略
Widnowsストアに掲載するアプリとしてどんなものを作るかは制作者のアイデア次第ですが、Windowsストアに掲載するためには、アプリに組み込んでおかなければならない情報、その情報の取得、そしてアプリのビルド、そして申請、といった手順が必要になります。まずはその手順概略を記載します。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/54e37294-fa2a-0089-ac64-aede847fdcff.png)

###■ストアアプリ掲載までの道のり各手順を説明
以下、道のり概略で記載した手順の各項目について、実施した内容を記載します。この手順については、2016年12月に行った際に必要となったものです。多くの手順を踏んでいますが、今後、このプロセスは最適化されていくとのことです。ですので、将来、手順が変わってくる可能性もあります。より簡略化されることを期待しましょう。

#### **1. Windowsデベロッパーセンターでアプリ開発契約**
Microsoftの「Windowsデベロッパーセンター」にアプリ開発者として登録します。この登録（契約）によりアプリを申請するページを開けるようになり、また掲載アプリに必要なIDなどを取得できるようになります。

1. https://developer.microsoft.com/ja-jp/store/register にアクセス
1. 既にアプリ開発者登録を行っている方は、「サインイン」をクリック。まだ開発者登録を行っていない方は[サインアップ]ボタンをクリック。 Microsft Dev Center サインインページに遷移します
1. Microsoftアカウントをお持ちの方はそのアカウントでサインイン。持っていない方は「新しいアカウント」の文字をクリックして、マイクロソフトのアカウントを作成してからサインインしてください。
1. サインイン後、アカウントの国情報の登録と、種類選択を行います。個人か法人かで登録料が異なります。<br><p></p>
 ![image](https://qiita-image-store.s3.amazonaws.com/0/145847/fb6d6df5-c115-b15c-8b5d-e248309e1b02.png)
1. 手順に従って入金方法（クレジットカード等）など設定を行い、確認などの手順を済ませて完了です。

これでアプリ開発者登録ができました！

#### **2. アプリ開発者として得られるIDなどをアプリに組み込んでビルド**
デベロッパーセンターでアプリを申請する準備を少し進めて、必要なIDなどを取得します。 そのID情報を開発環境の「プロビジョニング」設定に登録してビルドすることでWindowsストアに必要なIDの組み込みを行ってストアアプリを作成します。

##### ●ID取得手順
1. デベロッパセンターにサインインして、右上に表示されているであろう「ダッシュボード」をクリックします
1. 「新しいアプリの作成」ボタンをクリックします。
1. 「名前を予約してアプリを作成」のページでストアに登録したい任意のアプリ名を入力し、製品名の予約をクリックします。(※この予約名は掲載後にWindowsストアで表示されるアプリ名となります。）
1. 製品名が予約できたら、「アプリ管理」の下の「アプリID]をクリックします。ここで表示される以下情報をとっておきましょう。（テキストでコピペしておくのがよいかと思います）
    * パッケージ/ID/名前
    * パッケージ/ID/発行元
    * パッケージ/プロパティ/発行元表示名
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/76ecd178-48a4-fea8-1297-d3d2e7be6b46.png)

この情報を取得したら、アプリをビルドします。どんなアプリを作るか製作者さんのアイデア次第でありますので、ここは割愛し、Windowsストアにアップロードするアプリのビルドに必要な手順を記載します。

##### ●ストアアプリ ビルド手順
1. RAD Studioでストアにアップロードしたいアプリのプロジェクトを開きます
1. プロジェクトマネージャの[ターゲットプラットフォーム] - 32ビット Windows - [構成] とクリックして表示される [アプリケーションストア]をダブルクリックして選択（アクティブ）状態にします
1. 同じくプロジェクトマネージャのビルド構成を Release に設定します
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/9d10853a-b824-5307-44c6-67265ee5ac2c.png)
<br>

1. ツールバーの[プロジェクト] - [オプション]を選択し、プロジェクトオプションを表示させます
1. プロジェクトオプション ウインドウの左側の「プロビジョニング」を選択し、右側に表示される「Store」ラジオボタンを選択します
1. Storeラジオボタン下に表示されている下記の内容のエディットボックスに、上述の「ID取得」の手順にて取ってきた情報をセットします

|設定内表示名           |アプリIDページ上で表記されている項目    |
|:---------------------|:------------------------------------|
|Package Name          |パッケージ/ID/名前                    |
|Package Display Name  |デベロッパーページで予約した製品名      |
|Publisher             |パッケージ/ID/発行元                   |
|Publisher Display Name|パッケージ/プロパティ/発行元表示名      |
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/8804c1b5-fc3c-3606-46aa-1a37233ebd2d.png)

1. 次に、同じくプロジェクトオプションウインドウの左側の「アプリケーション」を選択し、右側に表示される「ユニバーサル Windows プラットフォーム ロゴの設定」で、「ロゴの読み込み」をクリックして、それぞれ 150x150サイズのストアアプリとして表示するアプリのロゴ(アイコン）と44x44サイズのアプリロゴ（アイコン）を設定します。
2. プロジェクトオプションウインドウの[OK]ボタンをクリックしてウインドウを閉じます
3. ビルドします。[Shift]+[F9]キーを押します。またはツールバー上のビルドボタンでもOKです
4. 問題なくビルドが終わると、ビルドされたappxファイル（ストアアプリファイル)がどこにあるかお知らせするダイアログが開きます。

このアプリのある場所、結構深いところにありますので、記載されているパスを追ってAPPXファイルを見つけてください。
これでストアにアップロードすべきアプリ（APPXパッケージ）を作ることができました！

#### **3. デスクトップ ブリッジ アプリをストアに登録するための申し込み**
ストアアプリの掲載申請は、アプリIDを取得したページにて行うのですが、現在のところ、デスクトップ ブリッジ技術で作成したアプリをWindowsストアに掲載するには、個別にMicrosoftから許可を得る必要があるようです。そこで下記のWebサイトからデスクトップ ブリッジ アプリの用意ができたことをMicrosoftに連絡（申請）します。

https://developer.microsoft.com/ja-jp/windows/projects/campaigns/desktop-bridge

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/59841eb7-074c-bad5-3973-5e4d0be471ca.png)
このページで入力すべき内容を記載します。

|Web項目         |説明            |
|:---------------|:--------------|
|First Name | 名前（苗字を除く）。ただし後に記載するWeb URLのページ上で、この名前がどこかに記載されていなければならない|
|Last Name| 苗字。ただし後に記載するWeb URLのページ上で、この苗字がどこかに記載されていなければならない|
|Email Address| email アドレス。デベロッパーアカウント email アドレスと一致させておく必要がある。また後に記載するWeb URLのページ上で、このメールアドレスか名前+苗字情報が記載されていなければならない|
|Company Name| 企業名 （任意）|
|APP Website| あなたのアプリやゲームが掲載されているWebか、あなたのアプリを提供しているページのURL。このURL上のページに上述の名前+名字もしくはemailアドレスと一致する記載がなされている必要がある模様|
|Select your current magnetization model| 収益モデルを選択|
|Select Your country | 国を選択。日本であれば Japan を選択|
|please provide aany other....| アプリに関する追加情報を記載。オプショナルとはなっているものの、Microsoftがどんなアプリか申請を受ける上で理解をするために記載したほうがよい。例えば、「ゲームアプリで、パズル要素があり、xxxのタイルを並べて…」といったアプリの説明など

すべて記載したら「Submit」をクリックして終わりです。
**数日後**、問題が無ければMicrosoftよりメールアドレスお確認するメールが届きます（英文）。
そのメールの中でどちらかのボタンを押すように記載されています。

* はじめたばかりでより情報がほしい場合 [I Want to Learn More]
* すでにアプリのコンバート終えストア配布の準備ができている場合は [I'm Ready to Publish] 

どちらを押した場合にどんな事が起きるのか、詳細は分かりません。私はどちらもクリックしてみましたが、メールがコンファームされた的なメッセージと、マイクロソフトからのメールを受けられるようにメール受信設定しておいて的なメッセージが表示されました。

#### **4. ストア掲載を行うためのアプリ情報登録**
いよいよストアに掲載するためにWeb上の申請フォームに記入し、アプリをアップロードしていきます。 ただ、この申請手順ではおそらく、アプリのアップロードに**まだ**失敗します。アプリを受け取ってもらうためには個別にMicrosoftからの権限認可が必要な模様です。その権限認可のためにMicrosoftと連絡を取り合わなければなならないのですが、それは後述します。
ということで申請について記載していきます。

1. デベロッパーセンターにサインインして、「ダッシュボード」をクリックします。予約しているアプリ名をクリックします。「申請を開始する」のボタンをクリックします。
2. 下記の項目を設定していきます。
    * 価格と使用可能状況
    * プロパティ
    * 年齢区分
    * パッケージ
    * ストア登録情報
    * 認定の注意書き
1. 価格と使用可能状況、プロパティ、年齢区分については、おそらく何も問題なく情報記載を終えることができると思います。
2. 問題はパッケージです。このページにおいて「ここにパッケージをドラッグしてください」と記載されている場所がありますので、「ストアアプリ ビルド手順」ビルド済の APPX をドラッグアンドドロップします。

アップロードしたパッケージが問題なければここでアップロード完了となりますが、おそらく、エラーが表示されます。「IDが異なる」のような治せるエラーであれば修正して再ビルドして下さい。それ以外に、どうしても自分では回避できそうにないエラーが表示されます。
私の場合は、下記の3つのエラーが表示されました。

> パッケージ受領の検証エラー: You need to accept the Centennial Early Adopter Program Addendum before you can submit this app.

> パッケージ受領の検証エラー: パッケージ SlidePuzzle.appx の appx マニフェスト ファイルで次の名前空間を指定するアクセス許可がありません: http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities

> パッケージ受領の検証エラー: Your developer account doesn’t have permission to submit apps converted with the Desktop Bridge at this time. https://aka.ms/desktopbridgeforwindowsstore

ふむ・・・。このエラーが言っているのは：

* 「Centennial Early Adopter Program Addendum」を受諾しなくてはならない
* なにか名前空間を指定するアクセス許可が必要な様子
* デスクトップ ブリッジ でコンバートされたアプリを申請する認可がこのデベロッパーアカウントにない!?

デスクトップ ブリッジ でコンバートされたアプリの申請権限が無い… どういうことだろう？権限申請ができたと思っていたのに…。それに名前空間を指定するアクセス許可についてのリンクを開いてみても、そのページが存在しない。困ったな… と思っていた時に ちょうどMicrosoftさんからメールがあり（今度は日本語）アプリの公開まで支援してくれるとのこと。
[3. デスクトップ ブリッジ アプリをストアに登録するための申し込み]で紹介した手順で申請した人に順次メールをしているのですって！
天の助けとばかりに現状のエラー3つをご報告した結果、いくつかサポートをしていただけました。 次のステップでその内容をお知らせします。

#### **5. デスクトップ ブリッジ で作成したWin32API利用のアプリに必要な権限取得**
メールでご連絡いただいたMicrosoftの方に、3つのエラーをお伝えした結果、「RunFullTrust権限」というものをもらう必要がある旨ご連絡をいただきました。そのために、要求されたアプリのIDやアプリ掲載URL、説明など、[3. デスクトップ ブリッジ アプリをストアに登録するための申し込み]で記載した情報とほぼ同じ情報をを提供し、かつAPPXファイルを送りました。 

その後、アプリに問題は無いと判断してもらい、RunFullTrust権限を与えてもらいました。ちなみにこの権限がストア申請時に必要となる理由とは以下によるものとのこと。
> 通常のUWPでは、基本的にはWin32APIを使用できないのですが、RunFullTrust権限があればWin32 APIが使用できるようになります。
Desktop App ConverterでコンバートされたアプリはWin32 APIを利用できるため、RunFullTrust権限が必要でございます。
また、Desktop App Converterはサイドローディング用に準備されているツールでございまして、Windowsストアへアプリを公開するにはRunFullTrust権限を取得するために今回のようなプロセスが必要となります。

どうやらWin32アプリとして作成し、デスクトップ ブリッジ で変換した（ラッピングした）アプリをWindowsストアにアップロードするためには、この権限をもらわなくてはならないようですね。ご支援、回答いただきましたMicrosoftの担当者様、感謝いたします。


#### **6. Centennial Early Adopter Program Addendumへ参加**
RunFullTrust権限得た後、再度アプリ申請を再開します。

1. Windowsデベロッパー ページにサインインして、アプリ申請のページを再度開きます。
1. 「パッケージ」のページにてアプリ（APPX)をアップロードします。
1. 記のエラーが表示されるので、表示されるリンクに飛び、「Centennial 早期導入プログラム補遺」を受諾します。
    * パッケージ受領の検証エラー: You need to accept the Centennial Early Adopter Program Addendum before you can submit this app.(この文の後ろにURLリンクが続いています）
1. 「パッケージ」のぺージ戻り、再度アプリをアップロードします。
1. ストア登録情報ページで、アプリの説明や、リリースノート、ストア上に表示されるイメージ画像や、ストアで表示されるテキスト情報を記載します。
1. 認定の注意書きで、掲載前にテストするテスターがアプリを理解する上での補足情報を記載します。
1. 上記すべてを登録した後「ストアに提出」 ボタンをクリックすれば 申請は完了です！

アプリステータスが「認定中」となりあとは進捗を待つばかり、です。
問題がなければ数日でストアに掲載されるでしょう。

### ■アプリが掲載されました！
掲載申請手順によってWindowsストアにアプリが掲載されました。
	https://www.microsoft.com/store/apps/9nblggh40lbr
かんたんなアプリでありますが、Windows10アニバーサリーアップデート以降のOSでダウンロードして利用可能です。デスクトップ ブリッジ アプリがどのように動作するかダウンロードしてご確認ください。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/faa1f6df-adf4-bd2a-3495-9fb58d9d43ef.png)

手順は以上です！