From 7de66577d23e6b7297b113efbaa96cda6fdd550f Mon Sep 17 00:00:00 2001 From: skyace65 Date: Fri, 22 May 2020 22:28:02 -0400 Subject: [PATCH] Document automatic signing of UWP apps --- .../workflow/export/exporting_for_uwp.rst | 26 ++++++++++++++---- .../export/img/UWP_export_signing.png | Bin 0 -> 12041 bytes .../workflow/export/img/UWP_sign_tool.png | Bin 0 -> 14994 bytes 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 getting_started/workflow/export/img/UWP_export_signing.png create mode 100644 getting_started/workflow/export/img/UWP_sign_tool.png diff --git a/getting_started/workflow/export/exporting_for_uwp.rst b/getting_started/workflow/export/exporting_for_uwp.rst index 85299d3b2..d5a98fe4f 100644 --- a/getting_started/workflow/export/exporting_for_uwp.rst +++ b/getting_started/workflow/export/exporting_for_uwp.rst @@ -8,8 +8,8 @@ installed as a Windows App or submitted to the Windows Store. Exporting UWP packages also works from any platform, not only from Windows. However, if you want to install and run the app, you need to sign it with a -trusted signature. Currently, Godot does not support signing of packages, so you -need to use external tools to do so. +trusted signature. Godot supports automatic signing of packages with +external tools. Also, make sure the Publisher Name you set when exporting the package matches the name used on the certificate. @@ -60,10 +60,26 @@ app. Open the Command Prompt as Administrator and run the following command:: Certutil -addStore TrustedPeople MyKey.cer -Signing the package -------------------- +Setting up automatic signing +---------------------------- -Finally, use ``SignTool.exe`` from the Windows SDK or Visual Studio:: +To setup automatic signing on export you need to go to Editor Settings > Export > Uwp. +From there you need to click on the folder for ``Signtool``, and navigate to +the ``SignTool.exe`` file on your computer. + +.. image:: img/UWP_sign_tool.png + +After setting that up close the editor settings, go to Project > Export, +and select the UWP preset. Under the ``Signing`` options click on the folder +next to ``Certificate`` and go to the certificate file. Then enter the +pfxPassword in the password field. + +.. image:: img/UWP_export_signing.png + +Your project will now be automatically signed on export. + +If you want to sign an exported app manually run ``SignTool.exe`` and use the +following command. SignTool sign /fd SHA256 /a /f MyKey.pfx /p pfxPassword package.appx diff --git a/getting_started/workflow/export/img/UWP_export_signing.png b/getting_started/workflow/export/img/UWP_export_signing.png new file mode 100644 index 0000000000000000000000000000000000000000..55ee4406250aa6fcfbfee7a204779deef5a0772a GIT binary patch literal 12041 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 literal 0 HcmV?d00001