Я занимаюсь созданием конвейера Xamarin Forms для GitLab CI. До сих пор я не создал надлежащего проекта, просто пока использую совершенно новый проект. Я думаю, что на данный момент стоит отметить, что мой GitLab runner работает на той же машине, на которой я разрабатываю.
В моем конвейере на этапе сборки я запускаю следующее:
nuget restore
msbuild /p:AndroidBuildApplicationPackage=True %PROJECT_NAME%.sln
Это продолжает сборку проекта, но достигает точки, когда он не может найти debug.keystore:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2434,2): error XA4310: `$(AndroidSigningKeyStore)` file `C:\Windows\system32\config\systemprofile\AppData\Local\Xamarin\Mono for Android\debug.keystore` could not be found. [C:\GitLabRunner\builds\fBx_Tw1B\0\xamarin3\xamarin-example-project\example\example.Android\example.Android.csproj]
Я выполнил ту же команду через Powershell, и она работает, и я обнаружил, что хранилище debug.keystore находится в моей пользовательской папке appdata, а не там, где указано, что оно отсутствует при выполнении через GitLab runner.
Подводя итог, можно сказать, что команда работает, когда выполняется для проецирования себя, поскольку она использует хранилище debug.keystore, найденное в папке AppData моего пользователя, и не работает, если она запускает ту же команду через GitLab runner, когда пытается найти ее в папке неправильная папка AppData.
Кстати, я новичок в формах Xamarin, и если у кого-то есть конвейер GitLab CI для собственного проекта Xamarin.forms, буду признателен за любые рекомендации!
Спасибо!