Android용 Xamarin 앱 빌드
중요
Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.
첫 번째 Xamarin Android 앱 빌드를 시작하려면 다음을 수행해야 합니다.
- 리포지토리 서비스 계정(GitHub, Bitbucket, VSTS, Azure DevOps)에 연결합니다.
- 앱이 있는 리포지토리 및 분기를 선택합니다.
- 빌드하려는 Android 프로젝트를 선택합니다.
- 첫 번째 빌드를 설정합니다.
참고
앱이 실제 디바이스에서 실행되도록 하려면 유효한 KeyStore를 사용하여 빌드 빌드에 서명해야 합니다.
1. 리포지토리 연결
이전에 리포지토리 서비스 계정에 연결하지 않은 경우 먼저 이 작업을 수행해야 합니다. 계정이 연결되면 Xamarin 프로젝트가 있는 리포지토리를 선택합니다. 리포지토리에 대한 빌드를 설정하려면 관리자 및 끌어오기 권한이 있어야 합니다.
2. 분기 선택
리포지토리를 선택한 후 빌드할 분기를 선택합니다. 기본적으로 App Center는 모든 활성 분기를 나열합니다.
3. 빌드 구성
Xamarin 프로젝트는 첫 번째 빌드 전에 구성해야 합니다.
3.1. 빌드 트리거
기본적으로 빌드 서비스는 연속 통합을 사용하므로 개발자가 구성된 분기에 푸시할 때마다 새 빌드가 트리거됩니다. 새 빌드를 수동으로 트리거하려는 경우 구성 창에서 이 설정을 변경할 수 있습니다.
3.2. 프로젝트 및 구성
리포지토리에서 사용 가능한 프로젝트가 분석 범위 내에 있는 경우 채워집니다. Android 빌드에 대한 올바른 프로젝트를 선택하고 적절한 구성을 선택합니다.
참고
최상의 성능을 위해 분석은 현재 리포지토리의 루트를 포함하여 4개의 디렉터리 수준으로 제한됩니다.
3.3. Mono 버전
App Center를 사용하면 빌드에 대해 각 Xamarin.Android SDK와 함께 번들로 제공되는 다양한 Mono 환경을 사용할 수 있습니다. 이렇게 하면 최신 기능도 지원하면서 이전 버전과의 호환성을 유지합니다. 새 분기 구성의 기본 Mono 버전은 안정적인 최신 버전입니다. 이전 Mono 환경 중 하나를 사용하여 이전 버전의 프레임워크 또는 라이브러리를 빌드하도록 선택할 수 있습니다.
빌드 구성에서 Mono 버전을 선택할 때 번들로 묶인 Xamarin.Android SDK 버전이 바로 옆에 표시됩니다. Xamarin SDK 버전 업데이트에 대한 자세한 내용은 Xamarin 릴리스 블로그를 참조하세요.
3.3.1. .NET Core 버전
적절한 .NET Core 버전은 빌드에 사용되는 Mono 버전에 따라 자동으로 선택되며 덮어쓸 수 없습니다. 아래 표에서 서비스에서 사용하는 .NET Core에 대한 Mono 매핑을 볼 수 있습니다.
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 설명서 및 Xamarin.Android 9.4 릴리스 정보에서 Android 앱 번들에 대한 자세한 내용을 확인할 수 있습니다. 이 정보는 일반 버전과 함께 번들을 빌드할지 여부를 결정하는 데도 도움이 될 수 있습니다..apk.
및 을 생성 .aab
하려면 Android 앱 번들에 대한 옵션을 토글합니다 .apk
. 파일에 속성이 .csproj
aab
AndroidPackageFormat
포함된 경우 이 옵션은 자동으로 설정됩니다. .aab
빌드는 Xamarin.Android 9.4 이상에서 지원됩니다.
3.5. 증분 버전 번호
사용하도록 설정하면 앱 AndroidManifest.xml 버전 코드가 각 빌드에 대해 자동으로 증가합니다. 변경 내용은 빌드 전 발생하며 리포지토리에 커밋되지 않습니다.
3.6. 코드 서명
빌드가 성공하면 파일과 추가 .aab
파일이 생성 .apk
됩니다(사용하도록 설정된 경우). 빌드를 Play 스토어에 릴리스하려면 유효한 키 저장소 및 별칭으로 서명해야 합니다. 분기에서 생성된 빌드에 서명하려면 구성 창에서 코드 서명을 사용하도록 설정하고, Keystore를 업로드하고, 구성 창에 필요한 값을 제공합니다. 자세한 코드 서명 지침을 읽을 수 있습니다. 는 .aab
과 동일한 자격 증명 .apk
을 사용하여 서명됩니다.
3.7. 실제 디바이스에서 성공적인 빌드 시작
새로 생성된 파일을 사용하여 앱이 .apk
실제 디바이스에서 시작되는지 테스트합니다. 이렇게 하면 총 빌드 시간에 약 10분이 더 추가됩니다. 테스트 통합 가이드에는 자세한 정보가 있습니다.
3.8. NuGet 복원
NuGet.config
파일이 리포지토리에 체크 인되어 파일 옆에 .sln
있거나 리포지토리의 루트 수준에 있는 경우 App Center는 아래 예제와 같이 추가되면 프라이빗 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 스토어에 배포하는 경우 Android 앱 번들(.aab
)이 선호되며 사용하도록 설정된 경우 배포됩니다. App Center 메일 그룹 및 Intune 저장소 대상의 경우 도 생성된 경우에도 .aab
일반 .apk
가 사용됩니다.
4. 결과 빌드
빌드가 트리거되면 빌드는 다음 상태 중 하나가 됩니다.
- queued - 빌드가 리소스가 해제되기를 기다리는 큐에 있습니다.
- building - 빌드가 실행 중입니다.
- succeeded - 빌드가 성공적으로 완료되었습니다.
- failed - 실패로 빌드가 중지되었습니다. 빌드 로그를 다운로드하고 검사하여 잘못된 문제를 해결할 수 있습니다.
- canceled - 사용자 작업으로 인해 빌드가 취소되었거나 시간이 초과되었습니다.
4.1. 빌드 로그
완료된 빌드(성공 또는 실패)의 경우 로그를 다운로드하여 빌드가 어떻게 진행되었는지 자세히 알아보세요. App Center는 다음 파일이 포함된 보관 파일을 제공합니다.
|-- 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 스토어에 배포할 수 있습니다. 빌드에 서명되지 않은 경우 에뮬레이터에서 앱을 실행하거나 다른 용도로 사용할 수 있습니다.
지원되는 버전 및 요구 사항
App Center는 PCL(이식 가능한 클래스 라이브러리) 및 .NET Standard 프로젝트를 지원합니다. .NET Standard 버전은 Cloud Build Machines 를 참조하세요.
App Center는 Xamarin 구성 요소 저장소의 구성 요소를 지원하지 않으며 사용할 수 있을 때마다 NuGet 패키지를 사용하는 것이 좋습니다. 교체할 수 없는 구성 요소를 사용하는 경우 문의하세요. 도움말 및 피드백을 참조하세요.