Создание приложений Xamarin для Android
Важно!
Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio до полного прекращения его использования, существует несколько рекомендуемых вариантов, на которые можно перейти.
Узнайте больше о сроках поддержки и альтернативных вариантах.
Чтобы приступить к созданию первого приложения Xamarin Android, необходимо:
- Подключитесь к учетной записи службы репозитория (GitHub, Bitbucket, VSTS, Azure DevOps).
- Выберите репозиторий и ветвь, в которой находится ваше приложение.
- Выберите проект Android, который вы хотите создать.
- Настройте первую сборку.
Примечание
Чтобы приложение выполнялось на реальном устройстве, необходимо подписать сборку с помощью допустимого KeyStore.
1. Связывание репозитория
Если вы ранее не подключались к учетной записи службы репозитория, сначала это необходимо сделать. После подключения учетной записи выберите репозиторий, в котором находится проект Xamarin. Для настройки сборки для репозитория необходимо иметь разрешения администратора и на вытягивание.
2. Выбор ветви
Выбрав репозиторий, выберите ветвь, которую вы хотите создать. По умолчанию в Центре приложений перечислены все активные ветви.
3. Настройка сборки
Проект Xamarin необходимо настроить перед первой сборкой.
3.1. Триггеры сборки
По умолчанию служба сборки использует непрерывную интеграцию, поэтому новая сборка активируется при каждой отправке разработчиком в настроенную ветвь. Если вы предпочитаете запускать новые сборки вручную, этот параметр можно изменить в области конфигурации.
3.2. Проект и конфигурация
Доступные проекты в репозитории будут заполнены, если они находятся в диапазоне анализа. Выберите правильный проект для сборки Android и выберите соответствующую конфигурацию.
Примечание
Для достижения оптимальной производительности анализ в настоящее время ограничен четырьмя уровнями каталогов, включая корень репозитория.
3.3. Версия Mono
Центр приложений позволяет использовать различные среды Mono, в комплекте с соответствующим пакетом SDK для Xamarin.Android для сборок. Таким образом, мы сохраняем обратную совместимость, а также поддерживаем новейшие функции. По умолчанию для конфигурации новой ветви используется последняя стабильная версия Mono. Вы можете использовать одну из предыдущих сред Mono для создания старых версий платформ или библиотек.
При выборе версии Mono в конфигурации сборки пакет sdk для Xamarin.Android отображается рядом с ней. Дополнительные сведения об обновлениях версии пакета SDK для Xamarin см. в блоге о выпуске Xamarin.
3.3.1. Версия .NET Core
Правильная версия .NET Core будет выбрана автоматически на основе версии Mono, используемой для сборки, и ее нельзя будет перезаписать. Сопоставление Mono с .NET Core, используемой нашими службами, можно просмотреть в следующей таблице:
Mono | .NET Core |
---|---|
<= 5,18 | 2.2.105 |
6,0 | 2.2.300 |
6.4 | 3.0.100 |
6.6 | 3.1.100 |
6,8 | 3.1.200 |
6.10 | 3.1.300 |
6,12 | 3.1.401 |
3.4. Сборка пакета приложений Android (.aab)
Пакет приложений Android — это формат распространения, который используется для создания оптимизированных пакетов APK для определенных устройств. Его можно загрузить в Магазин Play. Дополнительные сведения о пакете приложений Android см. в официальной документации по Android, а также в заметках о выпуске Xamarin.Android 9.4, которые также помогут вам решить, нужно ли создавать пакет вместе с обычными .apk.
Переключите параметр пакета приложений .aab
Android, чтобы создать и .apk
. .csproj
Если файл содержится aab
в свойстве AndroidPackageFormat
, этот параметр будет автоматически включен. Сборка .aab
поддерживается для Xamarin.Android 9.4 и более поздних версий.
3.5. Приращение номера версии
Если этот параметр включен, код версии в AndroidManifest.xml приложения автоматически увеличивается для каждой сборки. Изменение происходит до сборки и не будет зафиксировано в репозитории.
3.6. подписывание кода;
При успешной сборке .apk
будет создан файл и дополнительный .aab
файл, если он включен. Чтобы выпустить сборку в Play Store, она должна быть подписана с помощью допустимого хранилища ключей и псевдонима. Чтобы подписать сборки, созданные из ветви, включите подписывание кода в области конфигурации, отправьте хранилище ключей и укажите необходимые значения в области конфигурации. Вы можете ознакомиться с более подробными инструкциями по подписи кода. Будет .aab
подписан с использованием того же удостоверения, что и .apk
.
3.7. Запуск успешной сборки на реальном устройстве
Используйте созданный .apk
файл, чтобы проверить, запускается ли приложение на реальном устройстве. Это добавит еще примерно 10 минут к общему времени сборки. Дополнительные сведения см. в руководстве по интеграции тестов.
3.8. Восстановление NuGet
NuGet.config
Если файл возвращен в репозиторий и находится рядом с .sln
файлом или на корневом уровне репозитория, Центр приложений восстанавливает частные веб-каналы NuGet при их добавлении, как показано в примере ниже. Учетные данные можно безопасно добавлять с помощью переменных среды:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="MyGet" value="https://www.myget.org/F/MyUsername/api/v2/index.json" />
<add key="MyAuthNuget" value="https://nuget.example.com/v2/index.json" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<MyAuthNuget>
<add key="Username" value="$USER_VARIABLE" />
<add key="ClearTextPassword" value="$PASSWORD_VARIABLE" />
</MyAuthNuget>
</packageSourceCredentials>
</configuration>
Если у вас есть сложные конфигурации и вам нужны дополнительные сведения, см . статью Настройка поведения NuGet.
3.9. Распространение сборки
Каждую успешную сборку из ветви можно настроить для распространения в ранее созданную группу рассылки или место назначения хранилища. Вы можете добавить новую группу рассылки или настроить подключение к хранилищу из службы распространения. Всегда существует группа рассылки по умолчанию с именем "Участники совместной работы", в которую входят все пользователи, имеющие доступ к приложению.
Примечание
При распространении в Google Play Store предпочтительнее использовать пакет приложений Android (.aab
), который будет распространяться, если он включен. Для групп рассылки Центра приложений и назначений Intune магазинов будет использоваться обычный .apk
.aab
, даже если также создается .
4. Результаты сборки
После активации сборки сборка будет находиться в одном из следующих состояний:
- queued — сборка находится в очереди, ожидающей освобождения ресурсов.
- building — сборка выполняется.
- succeeded — сборка успешно завершена.
- failed — сборка остановлена со сбоями. Вы можете устранить неполадки, скачав и проверив журнал сборки.
- canceled — сборка была отменена действием пользователя или истекло время ожидания.
4.1. Журналы сборки
Для завершенной сборки (успешной или неудачной) скачайте журналы, чтобы понять, как она прошла. Центр приложений предоставляет архив со следующими файлами:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1>
|-- <build-step-2>
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
Журналы шагов сборки (расположенные build/
в каталоге архива) помогают понять, на каком этапе и почему сборка завершилась сбоем.
4.2. Приложение (.apk)
Файл .apk
представляет собой упакованный файл приложения Android, в котором хранится приложение Android. Если сборка была правильно подписана .apk
, файл можно установить на реальном устройстве и развернуть в Магазине Play. Если сборка не подписана, приложение можно запустить в эмуляторе или использовать для других целей.
Поддерживаемые версии и требования
Центр приложений поддерживает проекты переносимой библиотеки классов (PCL) и .NET Standard . Сведения о версиях .NET Standard см. в статье Облачные компьютеры сборки.
Центр приложений не поддерживает компоненты из хранилища компонентов Xamarin, и мы рекомендуем использовать пакеты NuGet, когда они доступны. Если вы используете компонент, который невозможно заменить, свяжитесь с нами. См . справку и отзывы.