デスクトップアプリをUWP化したい!
なるほど“DesktopAppConverter”を使って変換ができるのか。
…で、どうやって使うの?なんか途中で止まった!
使い方をわかりやすく解説してほしい。
なるほど“DesktopAppConverter”を使って変換ができるのか。
…で、どうやって使うの?なんか途中で止まった!
使い方をわかりやすく解説してほしい。
ということで、デスクトップアプリをUWP(Universal Windows Platform)化したいのに、DesktopAppConverter(以下DAC)の使い方がわからず、お悩みのそこのあなた。
今回はそんな悩めるあなたのために、DACの使い方を図解つきで解説していきます。
DACの使い方を解説する前に、まずUWPについて軽く触れます。
UWPはWindows10上でなら、PC、スマホなどプラットフォームを選ばず動作する非常に便利なアプリケーションです。
ただ、残念ながらDACだけでは完全なUWPにならないため、スマホ上では動きません。そもそもWindowsPhone自体なくなってしまいましたしね。
あくまでパッケージングのみなのですが、それでも、インストール時や実行時にレジストリへの余計な書き込みがない、SurfacePenのクリックアクションで起動できる、といった利点が挙げられるでしょう。
ところで、SurfaceProいいですよねえ。何より、その美しさ。Corei5以下のモデルは、ファンレスで、タブレット然としたそのボディには、なんと、水冷ユニットを組み込む機能美まで兼ね備え思わず胸が高鳴る…
おっと、本日はDACの解説なのでこのへんにしておきましょう。
それでは、DACの使い方、図解つき解説をどうぞ。
DesktopAppConverterを使用する前に
DesktopAppConverterのインストール
まずは、肝心のDACをインストールしましょう。下記リンクより、インストールページへ飛びます。リンクを開いて、インストールを押すだけです。サクッと次へどうぞ。
DesktopAppConverterインストール
SDKインストール
続いてWindows 10 SDKの最新版をインストールします。Desktop App ConverterではSDKの「Windows App Certification Kit」(Appxへの変換)だけを利用するため、ほかのオプションをインストールする必要はありません。
こちらもサクッといきましょう。
SDKインストール
開発者モードに設定
画像の通り、下記①~④のステップで開発者モードに変更してください。- Windows+IキーでWindowsの設定を開き、「更新とセキュリティ」を選択。
- 「更新とセキュリティ」メニューから、「開発者向け」を選択。
- 「開発者モード」にチェックをつける。
- メッセージボックスが表示されるので、「はい」を選択して、PCを再起動。
- Windows+IキーでWindowsの設定を開き、「更新とセキュリティ」を選択する。
- 「更新とセキュリティ」メニューから、「開発者向け」を選択。
- 「開発者モード」にチェックをつける。
- メッセージボックスが表示されるので、「はい」を選択して、PCを再起動。
ベースイメージの導入
ベースイメージダウンロード
まずは、下記いずれかの方法でお持ちのWindowsのビルド番号をお調べください。- Windows+Rキーを押し[ファイル名を指定して実行]を起動、”winver” と入力。
- [エクスプローラ]を開き、[ファイル]タブ内[ヘルプ]より[バージョン情報]を選択。
- Windows+Rキーを押し[ファイル名を指定して実行]を起動、”winver” と入力。
- [エクスプローラ]を開き、[ファイル]タブ内[ヘルプ]より[バージョン情報]を選択。
上記いずれかの操作で下記画像の画面が表示されるので、赤枠のビルド番号を確認してください。
赤枠のビルド番号と同じバージョンのベースイメージを下記サイトよりダウンロードしてください。
ベースイメージダウンロード
ベースイメージインストール
さあ、お待ちかね。いよいよ、DesktopAppConverterを起動します。ここで注意です。通常の起動ではなく「管理者として実行」する必要がありますので、下記手順に従って起動ください。
- DesktopAppConverter上で、右クリックし、「その他」を選択。
- 「その他」メニュー内の、「管理者として実行」をクリック。
管理者として実行し、無事DACが起動したら、まず、下記の文字列を入力してください。
意味はわからずともいいのです。コピペでOKです。
set-ExecutionPolicy bypass
続いて、先ほどイメージしたベースイメージをインストールします。コピペでいいんです。
…と言いたいところですが、下記は、先ほどダウンロードしたBaseImage-16299.wim(ベースイメージ)をC:\DesktopAppConverterフォルダに保存している場合です。
DesktopAppConverter.exe -Setup -BaseImage C:\DesktopAppConverter\BaseImage-16299.wim -Verbose
- “BaseImage-16299.wim”の保存フォルダフルパスを取得
- 上記コードの”C:\DesktopAppConverter\BaseImage-16299.wim”を、取得したフルパスに変更
またフルパスは、ベースイメージファイル上でShift+右クリック、「パスのコピー」で取得できます。
これらの操作でコードを修正してからコピペしましょう。
ちなみに、こちらのベースイメージのインストールは、変換実行前に毎回行ってください。
過去にベースイメージインストールをしていれば、以下のような画面が表示されるので、Yに続いてEnterを押してください。
Delete all images under 'C:\ProgramData\Microsoft\Windows\Images'? (y/n):
ちなみにここ、こんな感じで結構時間かかります。また、この先にもちょこちょこ時間かかる場面がありますが、ご安心を。
黒い画面しかり、DesktopAppConverterしかり、全体的に処理中の画面って特に何も表示されないことが多いです。
なんかメッセージは表示されるけど、英語だし、ある程度パソコンに詳しくないとよくわからんし、急に止まるし、と不安になります。
しかしコマンドプロンプト、DesktopAppConverterとも最初の~~~~~>(画像赤枠)が表示されない限りは何かしら処理中なので気を強く持ち、コーヒーでも飲んで気長に待ちましょう。
最終的にこちらの画面が表示されれば、成功です。
インストーラ変換
さあさあいよいよ、インストーラを変換しUWP化を進めて参ります。まずは下記コマンドを入力してEnterを押します。
これもコピペではなく、一部変更する必要があります。
DesktopAppConverter.exe -Installer C:\DesktopAppConverter\Installer\krita\4.0.1\krita-x64-4.0.1-setup.exe -InstallerArguments "/S" -Destination C:\DesktopAppConverter\Krita\4.0.1 -PackageName "Krita401" -Publisher "CN=MyPublisher" -Version 1.0.0.0 -MakeAppx -Verbose
上記コマンド内の次の部分を任意の値に書き換えて実行してください。
- インストーラー:[C:\DesktopAppConverter\Installer\krita\4.0.1\krita-x64-4.0.1-setup.exe]
- 保存先フォルダ:[C:\DesktopAppConverter\Krita\4.0.1]
- パッケージ名:[Krita401]
- バージョン:[1.0.0.0]
書き換えにあたり、何点か注意もございますので、下記の注意もご確認ください。
- インストーラーは独立したフォルダに置き(他のファイルを入れない)フルパスで指定してください。
- 変換先のディレクトリを指定してください。
※この指定がスタートメニューで表示される名前となり、変更不可。指定先フォルダは事前に作成しておく。
※うまくいかない場合、サイレントインストール -InstallerArguments “/S” の部分を消して試してみてください。 - パッケージ名を指定してください。
※変換先ディレクトリにパッケージ名でフォルダが作成され、その中にappxとlogファイルが作成される。英数字と_くらいしか使えない。この時のpackagenameがアプリ名となる。こちらも、ここで設定したら変えられない。 - Versionは、[.]区切で4桁必須。
下記の画面が表示されれば、完了です。
appxファイルに署名を登録する
ここまでの操作でappxへの変換が終わると、インストールボタンが表示されます。しかしこれだけではインストールできません。信頼できる証明書を登録する必要があります。まずは証明書からつくっていきましょう。
証明書作成
ここからはDesktopAppConverterではなくコマンドプロンプトで作業をすすめます。- 証明書作成はDesktopAppConverterではなく、コマンドプロンプトで作業します。
- Windows+Rを押して[cmd]と入力して、Enter で開きます。
※管理者権限はなくても平気です。
次に黒い画面こと、コマンドプロンプトにて下記コマンドを任意の値に書き換えた上で実行します。
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\makecert.exe" -r -h 0 -n "CN=MyPublisher" -eku 1.3.6.1.5.5.7.3.3 -pe -sv C:\DesktopAppConverter\cert\my.pvk C:\DesktopAppConverter\cert\my.cer
- makecert.exeファイル:[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\makecert.exe]
- 発行者名:[MyPublisher]
- pvkファイル:[C:\DesktopAppConverter\cert\my.pvk]
- cerファイル:[C:\DesktopAppConverter\cert\my.cer]
- makecert.exeは、ぼくの環境では[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64]にありましたが、わからなければ、[Windows Kits]フォルダで検索してみましょう。
- [CN=MyPublisher]の”MyPublisher”の部分が発行者名となるので、お好きな名前に書き換えてください。
- [C:\DesktopAppConverter\cert\my.pvk]で、作成するpvkファイルをフルパスで指定します。任意のパスに書き換えてください。
- [C:\DesktopAppConverter\cert\my.cer]で、作成するcerファイルをフルパスで指定します。任意のパスに書き換えてください。
- 上記2つの[C:\DesktopAppConverter\cert]部分の「cert」フォルダは事前に作成しないとエラーとなりますので、フォルダを作成してから実行してください。
連続して下記2つのメッセージがでますが、それぞれ「空白」「はい。」でOKです。
- Create Private Key Password
- Without password protection
ここで、[Succeeded]と表示されれば成功です。
さらに作成した証明書から、“.pfx”ファイルも作成する必要があります。
下記コマンド内の次の部分を任意の値に書き換えて実行してください。
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\pvk2pfx.exe" -pvk C:\DesktopAppConverter\cert\my.pvk -spc C:\DesktopAppConverter\cert\my.cer -pfx C:\DesktopAppConverter\cert\my.pfx
- pvk2pfx.exeファイル:[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\pvk2pfx.exe]
- 発行者名:[MyPublisher]
- pvkファイル:[C:\DesktopAppConverter\cert\my.pvk]
- cerファイル:[C:\DesktopAppConverter\cert\my.cer]
- pfxファイル:[C:\DesktopAppConverter\cert\my.pfx]
- pvk2pfx.exeも先ほどのmakecert.exeと同じディレクトリ[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64]内にあると思います。
※こちらも先ほど同様見つからなければ、[Windows Kits]フォルダで検索してみましょう。 - [C:\DesktopAppConverter\cert\my.pvk], [C:\DesktopAppConverter\cert\my.cer]の2つは、先ほど作成した2ファイルをフルパスで指定してください。
- [C:\DesktopAppConverter\cert\my.pfx]で作成するpfxファイルをフルパスで指定します。任意のパスに書き換えてください。
コマンド実行後、下図のように表示されれば成功です。
証明書をアプリに登録
作成した証明書を作成したappxに登録します。下記コマンド内の次の部分を任意の値に書き換えて実行してください。
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\signtool.exe" sign -f C:\DesktopAppConverter\cert\my.pfx -fd SHA256 -v C:\DesktopAppConverter\Krita\4.0.1\Krita401\Krita401.appx
- signtool.exeファイル:[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\signtool.exe]
- 発行者名:[MyPublisher]
- pfxファイル:[C:\DesktopAppConverter\cert\my.pfx]
- appxファイル:[C:\DesktopAppConverter\Krita\4.0.1\Krita401\Krita401.appx]
- signtool.exe も先ほどのディレクトリ[C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64]内にあると思います。
繰り返しになりますが、見つからなければ、[Windows Kits]で検索しましょう。
処理実行後、下の画像のように次のメッセージが表示されれば成功です。
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
Number of warnings: 0
Number of errors: 0
そしていよいよ最後の仕上げとなります。下記手順に従って操作してください。黒い画面はおしまいです!
- 先ほどのコマンドで署名したAppXのプロパティを右クリックで開き、「デジタル署名」タブで署名を選択、「詳細」を押す。
- 「証明書の表示」「証明書のインストール」の順で進む。
- 保存場所は「ローカルコンピューター」を選択し、次へを押す。
- 「証明書をすべて次のストアに配置する」を選択し、 参照から[信頼されたルート証明機関] を選択。([信頼されたユーザー] でも可。)
- 「次へ」を押し、「完了」をクリック。
※「正しくインポートされました。」と表示されれば成功です。
お疲れ様です!
ここまで操作するといよいよ、下図のようにappxファイルを起動し、インストールができるようになります。
これでやっと、(Surface側で設定すれば)SurfacePenのノックで起動するアプリの出来上がりです!
遠い道のりでしたが、ノック起動はめちゃくちゃ便利ですので、ぜひ使い倒してください。