From 2404c54bb65ef5051f9ec7b2a3fdcb50c56a27e1 Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Thu, 12 Jun 2025 10:53:51 -0400 Subject: [PATCH] feat: add temporary key file for package signing --- .github/workflows/dotnet-desktop.yml | 91 +++++++++++-------- .../BetterLyrics.WinUI3 (Package).wapproj | 1 - ...s.WinUI3 (Package)_TemporaryKey_Base64.txt | 1 + .../Package.appxmanifest | 2 +- .../BetterLyrics.WinUI3.csproj | 22 ++++- .../BetterLyrics.WinUI3/Program.cs | 1 + 6 files changed, 77 insertions(+), 41 deletions(-) create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package)_TemporaryKey_Base64.txt diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 197fa13..9217075 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -5,58 +5,75 @@ name: WinUI 3 MSIX app on: push: - branches: [ dev ] + branches: [main] pull_request: - branches: [ dev ] + branches: [main] jobs: - build: - strategy: matrix: configuration: [Release] - platform: [x86, x64] + platform: [x64, x86] - runs-on: windows-latest # For a list of available runner types, refer to - # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on + runs-on: + windows-latest # For a list of available runner types, refer to + # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on env: - Solution_Name: BetterLyrics.sln # Replace with your solution name, i.e. App1.sln. + Solution_Name: your-solution-name # Replace with your solution name, i.e. App1.sln. steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 - # Install the .NET Core workload - - name: Install .NET Core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 8.0.x + # Install the .NET Core workload + - name: Install .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 6.0.x - # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v2 + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v1.0.2 - - name: Add CommunityToolkit-Labs NuGet source - run: | - dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json --name CommunityToolkit-Labs --store-password-in-clear-text + # Add the NuGet source for the CommunityToolkit-Labs + - name: Add CommunityToolkit-Labs NuGet source + run: | + dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json --name CommunityToolkit-Labs --store-password-in-clear-text - # Restore the application to populate the obj folder with RuntimeIdentifiers - - name: Restore the application - run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration - env: - Configuration: ${{ matrix.configuration }} + # Restore the application to populate the obj folder with RuntimeIdentifiers + - name: Restore the application + run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration + env: + Configuration: ${{ matrix.configuration }} - # Create the app package by building and packaging the project - - name: Create the app package - run: msbuild + # Decode the base 64 encoded pfx and save the Signing_Certificate + - name: Decode the pfx + run: | + $pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.BASE64_ENCODED_PFX }}") + $certificatePath = "GitHubActionsWorkflow.pfx" + [IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte) - # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact - - name: Upload MSIX package - uses: actions/upload-artifact@v4 - with: - name: MSIX Package - path: ${{ env.Solution_Name }}\\bin + # Create the app package by building and packaging the project + - name: Create the app package + run: msbuild $env:Solution_Name /p:Configuration=$env:Configuration /p:Platform=$env:Platform /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:AppxPackageDir="$env:Appx_Package_Dir" /p:GenerateAppxPackageOnBuild=true + env: + Appx_Bundle: Never + Appx_Package_Build_Mode: SideloadOnly + Appx_Package_Dir: Packages\ + Configuration: ${{ matrix.configuration }} + Platform: ${{ matrix.platform }} + + # Remove the pfx + - name: Remove the pfx + run: Remove-Item -path GitHubActionsWorkflow.pfx + + # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact + - name: Upload MSIX package + uses: actions/upload-artifact@v2 + with: + name: MSIX Package + path: ${{ env.Solution_Name }}\\Packages diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package).wapproj b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package).wapproj index f529e1b..132e8a3 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package).wapproj +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package).wapproj @@ -81,7 +81,6 @@ - diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package)_TemporaryKey_Base64.txt b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package)_TemporaryKey_Base64.txt new file mode 100644 index 0000000..e58c5b7 --- /dev/null +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/BetterLyrics.WinUI3 (Package)_TemporaryKey_Base64.txt @@ -0,0 +1 @@ +MIIJxAIBAzCCCYAGCSqGSIb3DQEHAaCCCXEEggltMIIJaTCCBfIGCSqGSIb3DQEHAaCCBeMEggXfMIIF2zCCBdcGCyqGSIb3DQEMCgECoIIE9jCCBPIwHAYKKoZIhvcNAQwBAzAOBAhJLA5itR/OVAICB9AEggTQ8TFQ7XOQGqTePCd17UnUxq6J0spC6VeSV1jmeL/Ory/0IPdNPY8uUJ9GKCm+MMLeGTMyc7JrTk5RJsJrkoYh2VLBcLpVsR0Glita86gpRxjtHbDncO+vbYdwFbFhkETS1ulQPoUG2AVIPv3TGh/FTHPEXz5H4yhXEQI6IQZuDmUNpfQZgMZrVVJd4HhdOkRbY3RLtC/ZygzJ75lKbqr1G5a/nGYj7Ev6i5PDyAkVgBk2BB4JsqqHgpzCc5CuMrX8AM+JdKFTw/E7rhRfUaOTBFf8iNesXczL6Nz67eL8G27C0mSEEoOBEBtyduMbMBfZTAEcSW43fZGODCovuMYozSmaVp6M7zK3oJngXgLVbFA9Y/8K3wx9lBa4M/TkMpMFaZJdpOYxCZfusyA4zbrFojZNo2Mgs6QE5dkkM/TKrygOalsBEp/tnXTux2ymYFmlZa0giWy35gW/DJlAEdGohdwkiHM2Cx7OsjHuMxYg7QwrFWogYiCqOkhe2HCxc4FJ30E7sOYy4CSpyaH2DmaiIft1u2bqCkaDKXbiUTemFjEj0liWY8t0YrtekscqLtzrzQNw7HOF+dmENhEMhzlollO+WpIGkIOPKcOsnQNz/nyh7Tf+w98FEPAU8LpV7TtL/32FSxNkzlVqbPAcf2Gd4AoxFbgI/7iylT7PtDX00VIpfXI16V16Y+onnqISt9WpuXat4JDI+saPWtwZ5cc7ag/T1+1CYHZGk3aagbLIG4cCq31e7l6JiQGk2IWYyVFPSbdM/SuscxFKXXDgzP8ncnRayG0TgceHG1EE499wRrIOZ6kjpf9KIzrbplp9BhrVloxeBv3vIBfr8RYZj4Dx5kSIRB4swfTmGbXbTvbzHGOKunGPBtoAYzkh/npukg1qC7yyYtdD33FFxWvzfffPL+fG5yTpzeZnl6708Rc2/hWl0X4CpDXNL5LyFXC8U1FRoPdhle6ZC0TBQiQYnvmrulrQg1qdz/io+KMo+cGCeUcED5vNYsfHes70b4rK8OQEUpylLFR1tdxQYa33MgCP2UgxNx/YDmkUJE3Ob0rFmMyexFr+eNDRWW/hjgQVZZnk17sXW89GMqeU1pVimsgzTmJxd+zF+kXwl1s61nKFRB6ciY+7TFG5NjFEal6LrR+gGmJQy4tJiT0CW36Z9PpCdCW8mH3Koyfez8hAJUsRV53zb9zoodjnluCyWK9Gmdcoc83MG3ci1BnI/oJlMBxdH3dyo1kBSISDLKSCwIjH8YtEy13UxyTbeMMXzChvXZDLfoNZRF814KGCL0pHoFB2E071JqylA3+M+aAFJuON2zQFxHRPmq7edu9qKTk5Gl0MwiyXL+3JgzHx3sP09bTutQ1WbK3XtQBwEesPTvb/zn4zYWucQ16lnLKB9eoigIak0T3l/RwIrOuB/UOme0d2+Sg/oRilXmyuLBOFe7rltbyCDfcec8awRrFrYnrVbpjqoR7mJfqjzcxzDeR+A0xexw685JaaIhZb3HOfLai/kkVL+T2u8v9kJoTMxSMgflZnVQVGGWlzkpSa/UjRHuY1eyei31Etx2oEkKyxrhsNfDKJW1cb1cz2HSJjfTLX0zddGCid1/Ybw07gvGvK+vJ6L6Yk8UhMR3w5OMigq+n2Uvwxgc0wEwYJKoZIhvcNAQkVMQYEBAEAAAAwVwYJKoZIhvcNAQkUMUoeSAA4AGQAOQBlADQAOABhAGYALQA2ADQAMwBkAC0ANABmAGMAOQAtADkAZgBiADgALQAyAGEAMAA4ADYAYQBiAGMAOQA4ADAANjBdBgkrBgEEAYI3EQExUB5OAE0AaQBjAHIAbwBzAG8AZgB0ACAAUwB0AHIAbwBuAGcAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByMIIDbwYJKoZIhvcNAQcGoIIDYDCCA1wCAQAwggNVBgkqhkiG9w0BBwEwHAYKKoZIhvcNAQwBAzAOBAh2zSJ8hNTeugICB9CAggMoaLLJIncuT4WpBJfnFkWcUY3V/Y2eGGMdI0kDMr0eq2OOYp9EPvejvUDH7+/NNynAOLVG5zDZpZ64WyKRMLISQyLdwphHk9Y1MhqsyUpssd/2ZbX9RDX34pJctjumsYAmJ8Msd4Uww0CUYYvKobv/ZH85a7ZSsjcgL9szTL6TeaRxqy2WGUVhizePraV5RmgG6XjdCpgRGMAqw7gQGmdjsEOu7XkOF51zYucTSzaDQ+V8CDQByo93/h2EIl2HFt+s1ZCkX8dzQ0t4cujV8cch0X6Oqk/ASxSNQvFmYkK5DSAXIIdXRFRVFeoH59B60xRnzD5jkawRCgtBcKIwFheC07tgyUgxaKIyIVjeqbGu57E8jeZ0LzBK/JgYuEYWi+CXy0X8oPQQkVIFo6QaUhNQKfo8CQqhrcbyOU8RnowJk9e6dCi0J3ikTGCsH1iG4rb0eZpILL3Lc/pK3/3nz11zDo0aX/pY0QyUbGDNWwxOAog6p7sEVvnhLdXqIRv4JROXaJ8daZif0a3sk5eyGoL3exdwbc0URs4S2GHNXtQbPAVcy2fpNs7lFTxCJogBP/2r7xQRSWh91jmk30hMBF7jzopsBvLhaPjqLH1bWhFTHhPZDrZeFBifspPGKIKyI4yACDe0aGWlvUJeBBUUVxylaIL+Gw27tjz0WgYYbBnxCi4ctqyptFvLgEuwFZLZer2z9v4JfHVH+OyByKkxmosy9Gps7oYzFdMAuXYVcVbXvJMd/J9tHuQqa1AsWpvZUgz/t5iX/cGvOAo73ocG/LH9DOpAWWF7P/g0obbZc4OadbczYqGvj2sXLcoD8vtsoaO2R1wgAM7Yso16FSzmbbuuDJJd4jYW66DOZUrW51GeDbryzoVQXNoM4FywODV8mOazmOsctEfw0W+Y0Wm9Kilhk5ZDaod6X5yvDtijVckW8LNH+T8Fw+bdhY4qOnMRIx65kgRAqip7/CJz4192JEy+klgTWhKhPymMQ6kc38dzvqOsJ1FnoKkI3gFoBbvA5sxqT0H62H3JBg2dguNI5tMClhKqqT3fXn4Mm7zCsQ+q3eCZkFUnlx6INjA7MB8wBwYFKw4DAhoEFNt3F1xfgcfeLrleMeCsQR8O4lO3BBR+WPfZWb25fbc5jNXu0sAs7I1S1wICB9AAAAAAAAAAAA== diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest index 53e5611..8cbaefe 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest @@ -10,7 +10,7 @@ diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj index 58f3199..dc14e14 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj @@ -17,10 +17,16 @@ - + - + @@ -61,5 +67,17 @@ app.manifest Logo.ico true + True + False + False + False + False + True + SettingsVersion + None + AssemblyVersion.None.Beta + 2025.6.0-beta-02 + 2025.6.12.1435 + 2025.6.12.1435 diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Program.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Program.cs index b0e56ca..e1bb84b 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Program.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Program.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; +using System.Xml.Linq; using Microsoft.UI.Dispatching; using Microsoft.UI.Xaml; using Microsoft.Windows.AppLifecycle;