Ошибка проекта UWP в действиях GitHub из-за недопустимого сертификата APPX0107
ITNOA
У меня есть проект в GitHub, которые имеют проект UWP в здесь.
Я хочу настроить GitHub Actions для этого проекта с этой конфигурацией main.yml
Когда GitHub Actions хотят создать мое решение с помощью следующих команд
- name: Library build
run: |
cd src
nuget restore
msbuild PCLAppConfig.sln /verbosity:normal /t:Rebuild /p:Configuration=Release
Я вижу сбойную ошибку с ошибкой ниже в здании UWP
2020-03-23T13:07:20.1871936Z "D:\a\PCLAppConfig\PCLAppConfig\src\PCLAppConfig.sln" (Rebuild target) (1) ->
2020-03-23T13:07:20.1872322Z "D:\a\PCLAppConfig\PCLAppConfig\src\DemoApp\DemoApp.UWP\DemoApp.UWP.csproj" (Rebuild target) (10) ->
2020-03-23T13:07:20.1872524Z (_GenerateCurrentProjectAppxManifest target) ->
2020-03-23T13:07:20.1872807Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(2650,5): warning APPX0107: The certificate specified is not valid for signing. For more information about valid certificates, see http://go.microsoft.com/fwlink/?LinkID=241478. [D:\a\PCLAppConfig\PCLAppConfig\src\DemoApp\DemoApp.UWP\DemoApp.UWP.csproj]
2020-03-23T13:07:20.1873172Z
2020-03-23T13:07:20.1873447Z
2020-03-23T13:07:20.1873657Z "D:\a\PCLAppConfig\PCLAppConfig\src\PCLAppConfig.sln" (Rebuild target) (1) ->
2020-03-23T13:07:20.1873802Z "D:\a\PCLAppConfig\PCLAppConfig\src\DemoApp\DemoApp.UWP\DemoApp.UWP.csproj" (Rebuild target) (10) ->
2020-03-23T13:07:20.1873935Z (_GenerateAppxPackageFile target) ->
2020-03-23T13:07:20.1874153Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3402,5): error APPX0107: The certificate specified is not valid for signing. For more information about valid certificates, see http://go.microsoft.com/fwlink/?LinkID=241478. [D:\a\PCLAppConfig\PCLAppConfig\src\DemoApp\DemoApp.UWP\DemoApp.UWP.csproj]
2020-03-23T13:07:20.1874919Z
2020-03-23T13:07:20.1875022Z 4 Warning(s)
2020-03-23T13:07:20.1875125Z 1 Error(s)
2020-03-23T13:07:20.1875697Z
2020-03-23T13:07:20.1875988Z Time Elapsed 00:03:28.50
2020-03-23T13:07:20.6575030Z ##[error]Process completed with exit code 1.
примечание, если я бегу msbuild PCLAppConfig.sln /verbosity:normal /t:Rebuild /p:Configuration=Release
на локальном компьютере сборка прошла успешно и не содержит ошибок, и я могу запустить приложение UWP локально.
У меня вопрос, в чем моя проблема? и как я могу это решить?
Спасибо
1 ответ
Вы должны установить PackageCertificateKeyFile и убедиться, что файл отправляется на GitHub. И вы должны добавить пароль в свой файл pfx.
/p:PackageCertificateKeyFile=Package_TemporaryKey.pfx /p:PackageCertificatePassword="123"
Пожалуйста, замените Package_TemporaryKey.pfx
и пароль.
Если вы не хотите отправлять файл pfx на GitHub, вы можете использовать секреты github
Первый - проанализировать файл pfx как строку base64.
Второй - устанавливает строку base64 файла pfx в секреты github.
И затем вы можете использовать эту строку base64 перед началом сборки.
Decode the Base64 encoded Pfx
- name: Decode the Pfx
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}")
$currentDirectory = Get-Location
$certificatePath = Join-Path -Path $currentDirectory -ChildPath $env:Wap_Project_Directory -AdditionalChildPath $env:SigningCertificate
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
И вы можете найти мой пример кода в github
редактировать
Я прочитал ваш код и нашел DemoApp.UWP_TemporaryKey.pfx
а также Windows_TemporaryKey.pfx
файл. Потому что у меня очень низкая скорость Интернета, и не могли бы вы очистить свой код с помощьюgit clean -xdf
а затем использовать командную строку для локальной компиляции? Возможно, вам следует явно указать, какой файл использовать.