{"meta":{"title":"Создание и тестирование приложений Xamarin","intro":"Узнайте, как создать рабочий процесс непрерывной интеграции (CI) в GitHub Actions для создания и тестирования вашего приложения Xamarin.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/tutorials","title":"Учебники"},{"href":"/ru/actions/tutorials/build-and-test-code","title":"Сборка и тестирование кода"},{"href":"/ru/actions/tutorials/build-and-test-code/xamarin-apps","title":"Приложения Xamarin"}],"documentType":"article"},"body":"# Создание и тестирование приложений Xamarin\n\nУзнайте, как создать рабочий процесс непрерывной интеграции (CI) в GitHub Actions для создания и тестирования вашего приложения Xamarin.\n\n## Введение\n\nВ этом руководстве показано, как создать рабочий процесс, выполняющий непрерывную интеграцию (CI) для вашего проекта Xamarin. Создаваемый рабочий процесс позволит увидеть, когда фиксации в запросе на вытягивание вызывают сбои в сборке или тестировании ветви по умолчанию; этот подход поможет убедиться, что ваш код всегда работоспособен.\n\nПолный список доступных версий SDK Xamarin на запусках macOS, размещённых на GitHub Actions, смотрите файл README для версии macOS, которую вы хотите использовать в репозитории [GitHub Actions Runner Images](https://github.com/actions/runner-images/tree/main/images/macos).\n\n## Необходимые компоненты\n\nРекомендуем иметь базовое понимание Xamarin, .NET Core SDK, YAML, опций настройки рабочих процессов и того, как создавать файл рабочего процесса. Дополнительные сведения см. в разделе:\n\n* [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/using-workflows/workflow-syntax-for-github-actions)\n* [Начинаю с .NET](https://dotnet.microsoft.com/learn)\n* [Изучайте Ксамарин](https://dotnet.microsoft.com/learn/xamarin)\n\n## Создание приложений Xamarin.iOS\n\nПример ниже демонстрирует, как изменить стандартные версии Xamarin SDK и создать приложение Xamarin.iOS.\n\n```yaml\nname: Build Xamarin.iOS app\n\non: [push]\n\njobs:\n  build:\n\n    runs-on: macos-latest\n\n    steps:\n    - uses: actions/checkout@v6\n    - name: Set default Xamarin SDK versions\n      run: |\n        $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.12 --ios=14.10\n\n    - name: Set default Xcode 12.3\n      run: |\n        XCODE_ROOT=/Applications/Xcode_12.3.0.app\n        echo \"MD_APPLE_SDK_ROOT=$XCODE_ROOT\" >> $GITHUB_ENV\n        sudo xcode-select -s $XCODE_ROOT\n\n    - name: Setup .NET Core SDK 5.0.x\n      uses: actions/setup-dotnet@v4\n      with:\n        dotnet-version: '5.0.x'\n\n    - name: Install dependencies\n      run: nuget restore <sln_file_path>\n\n    - name: Build\n      run: msbuild <csproj_file_path> /p:Configuration=Debug /p:Platform=iPhoneSimulator /t:Rebuild\n```\n\n## Здание Xamarin. Приложения для Android\n\nПример ниже демонстрирует, как изменить стандартные версии SDK Xamarin и создать Xamarin. Приложение для Android.\n\n```yaml\nname: Build Xamarin.Android app\n\non: [push]\n\njobs:\n  build:\n\n    runs-on: macos-latest\n\n    steps:\n    - uses: actions/checkout@v6\n    - name: Set default Xamarin SDK versions\n      run: |\n        $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.10 --android=10.2\n\n    - name: Setup .NET Core SDK 5.0.x\n      uses: actions/setup-dotnet@v4\n      with:\n        dotnet-version: '5.0.x'\n\n    - name: Install dependencies\n      run: nuget restore <sln_file_path>\n\n    - name: Build\n      run: msbuild <csproj_file_path> /t:PackageForAndroid /p:Configuration=Debug\n```\n\n## Определение версии .NET\n\nЧтобы использовать предустановленную версию .NET Core SDK на раннере GitHub, используйте действие `setup-dotnet`. Это действие находит определённую версию .NET из кэша инструментов на каждом раннере и добавляет необходимые бинарные файлы в `PATH`. Эти изменения будут сохранены для остальной части задания.\n\nДействие `setup-dotnet` — рекомендуемый способ использования .NET с GitHub Actions, поскольку оно обеспечивает согласованное поведение между разными раннерами и разными версиями .NET. Если вы используете самостоятельный раннер, нужно установить .NET и добавить в `PATH`. Дополнительные сведения см. в описании действия [`setup-dotnet`](https://github.com/marketplace/actions/setup-net-core-sdk)."}