배포 및 테스트
.NET 다중 플랫폼 앱 UI(.NET MAUI)는 단일 프로젝트 시스템을 사용하여 플랫폼 간 앱의 구성을 관리합니다. 이 구성에는 각 플랫폼에서 앱 빌드 및 패키징을 제어하는 속성 및 설정이 포함됩니다. 자세한 내용은 .NET MAUI 앱에 대한 프로젝트 구성을 참조 하세요.
단위 테스트는 앱 전체에서 오류가 전파되지 않도록 앱의 각 기능 단위가 예상대로 수행되도록 확인합니다. 단위 테스트는 앱의 작은 단위(일반적으로 메서드)를 사용하고, 코드의 나머지 부분에서 격리하고, 예상대로 동작하는지 확인합니다. 자세한 내용은 단위 테스트를 참조하세요.
.NET MAUI 앱의 성능 및 인식된 성능을 높이기 위한 많은 기술이 있습니다. 전체적으로 이러한 기술은 CPU에서 수행하는 작업의 양과 앱에서 사용하는 메모리 양을 크게 줄일 수 있습니다. 자세한 내용은 앱 성능 향상을 참조하세요.
앱을 빌드할 때 .NET MAUI는 ILLink라는 링커를 사용하여 트리밍이라는 기술로 앱의 전체 크기를 줄일 수 있습니다. ILLink는 컴파일러에서 생성된 중간 코드를 분석하여 크기를 줄입니다. 사용되지 않는 메서드, 속성, 필드, 이벤트, 구조체 및 클래스를 제거하여 앱을 실행하는 데 필요한 코드 및 어셈블리 종속성만 포함하는 앱을 생성합니다. 자세한 내용은 .NET MAUI 앱 트리밍을 참조 하세요.
Android
Android 에뮬레이터에서 앱을 디버그하고 테스트할 수 있으며, 다양한 구성으로 실행하여 다양한 디바이스를 시뮬레이션할 수 있습니다. 가상 디바이스에서 각 구성이 호출됩니다. 에뮬레이터에서 앱을 배포하고 테스트할 때 Pixel 휴대폰과 같은 물리적 Android 디바이스를 시뮬레이션하는 미리 구성된 가상 디바이스 또는 사용자 지정 가상 디바이스를 선택합니다. 자세한 내용은 Android 에뮬레이터의 디버그를 참조 하세요.
Android 에뮬레이터를 사용하면 앱을 빠르게 개발하고 테스트할 수 있지만 실제 Android 디바이스에서 앱을 테스트할 수도 있습니다. 디바이스에서 실행하려면 디바이스에서 개발자 모드를 사용하도록 설정하고 개발 머신에 연결해야 합니다. 자세한 내용은 디버깅을 위해 Android 디바이스 설정을 참조 하세요.
Android용 .NET MAUI 앱을 배포할 때 APK(Android 패키지) 또는 AAB(Android 앱 번들) 파일을 생성합니다. APK는 Android 디바이스에 앱을 설치하는 데 사용되며 AAB는 Android 스토어에 앱을 게시하는 데 사용됩니다. 프로젝트에 대한 몇 가지 구성 변경만으로 배포를 위해 앱을 패키지할 수 있습니다. 자세한 내용은 Android용 .NET MAUI 앱 게시를 참조 하세요.
iOS
.NET MAUI를 사용하여 네이티브 iOS 앱을 빌드하려면 Mac에서만 실행되는 Apple의 빌드 도구에 액세스해야 합니다. 이 때문에 Visual Studio는 네트워크에 액세스할 수 있는 Mac에 연결하여 .NET MAUI iOS 앱을 빌드해야 합니다. Visual Studio의 Mac 쌍 기능은 Windows에서 생산성을 높일 수 있도록 Mac 빌드 호스트를 검색, 연결, 인증 및 기억합니다. 자세한 내용은 iOS 개발을 위해 Mac에 페어링을 참조하세요.
Mac에 페어링과 결합하면 Windows용 원격 iOS 시뮬레이터를 사용하여 Visual Studio와 함께 Windows에 표시된 iOS 시뮬레이터에서 앱을 테스트할 수 있습니다. 자세한 내용은 Windows용 원격 iOS 시뮬레이터를 참조 하세요.
.NET MAUI iOS 앱을 개발하는 동안 시뮬레이터 외에도 물리적 디바이스에 앱을 배포하여 테스트해야 합니다. 디바이스 전용 버그 및 성능 문제는 메모리 또는 네트워크 연결과 같은 하드웨어 제한 사항으로 인해 디바이스에서 실행할 때 발생할 수 있습니다. 물리적 디바이스에서 앱을 테스트하려면 디바이스를 프로비전해야 하며 Apple은 디바이스가 테스트에 사용된다는 사실을 알려야 합니다. 디바이스 프로비저닝에 대한 자세한 내용은 iOS용 디바이스 프로비저닝을 참조하세요.
Visual Studio는 USB 케이블을 사용하여 iOS 디바이스를 Mac에 연결하여 .NET MAUI 앱을 배포하고 디버그하는 대신 무선으로 디바이스에 .NET MAUI iOS 앱을 배포하고 무선으로 디버그할 수 있습니다. 자세한 내용은 .NET MAUI iOS 앱에 대한 무선 배포를 참조 하세요.
또는 핫 다시 시작을 사용하면 Mac 빌드 호스트 없이도 Visual Studio에서 64비트 로컬 디바이스에 iOS 앱을 신속하게 배포할 수 있습니다. 또한 로컬로 연결된 iOS 디바이스에 이미 있는 기존 앱 번들에 새 변경 내용을 푸시하여 전체 패키지 다시 빌드의 필요성을 제거합니다. 코드 파일, 리소스 및 프로젝트 참조에 대한 변경 내용을 지원하므로 개발 중에 앱의 변경 내용을 빠르게 테스트할 수 있습니다. 자세한 내용은 핫 다시 시작을 사용하여 로컬 디바이스에 iOS 앱 배포를 참조하세요.
iOS용 .NET MAUI 앱을 배포할 때 .ipa 파일을 생성합니다. .ipa 파일은 iOS 앱을 저장하는 iOS 앱 보관 파일입니다. iOS에서 .NET MAUI 앱을 배포하려면 프로비저닝 프로필을 사용하여 앱을 프로비전해야 합니다. 프로비저닝 프로필은 앱의 ID 및 의도한 배포 메커니즘뿐만 아니라 코드 서명 정보를 포함하는 파일입니다. iOS용 .NET MAUI 앱을 게시하는 방법에 대한 자세한 내용은 iOS용 .NET MAUI 앱 게시를 참조하세요.
iOS에서 .NET MAUI 앱은 앱과 시스템 리소스 또는 사용자 데이터 간의 액세스를 제한하는 규칙 집합을 제공하는 샌드박스에서 실행됩니다. Apple은 기능을 확장하고 iOS 앱이 수행할 수 있는 작업의 범위를 넓히기 위한 수단으로 앱 서비스라고도 하는 기능을 제공합니다. 기능은 앱의 프로비저닝 프로필에 추가되며, 앱에 서명하는 코드를 사용할 때 사용됩니다. 자세한 내용은 기능을 참조하세요.
Mac Catalyst
.NET MAUI Mac Catalyst 앱을 배포할 때 .app 또는 .pkg 파일을 생성합니다. .app 파일은 설치 없이 실행할 수 있는 자체 포함 앱인 반면 .pkg 설치 관리자에 패키지된 앱입니다. .NET MAUI Mac Catalyst 앱을 배포하려면 프로비저닝 프로필을 사용하여 앱을 프로비전해야 합니다. 프로비저닝 프로필은 앱의 ID 및 의도한 배포 메커니즘뿐만 아니라 코드 서명 정보를 포함하는 파일입니다. .NET MAUI Mac Catalyst 앱을 게시하는 방법에 대한 자세한 내용은 .NET MAUI Mac Catalyst 앱 게시를 참조 하세요.
Mac Catalyst에서 .NET MAUI 앱은 앱과 시스템 리소스 또는 사용자 데이터 간의 액세스를 제한하는 규칙 집합을 제공하는 샌드박스에서 실행됩니다. Apple은 기능을 확장하고 iOS 앱이 수행할 수 있는 작업의 범위를 넓히기 위한 수단으로 앱 서비스라고도 하는 기능을 제공합니다. 기능은 앱의 프로비저닝 프로필에 추가되며, 앱에 서명하는 코드를 사용할 때 사용됩니다. 자세한 내용은 기능을 참조하세요.
Windows
개발자 모드를 사용하도록 설정해야 하는 로컬 Windows 컴퓨터에서 앱을 테스트하고 디버그할 수 있습니다. 자세한 내용은 Windows에서 .NET MAUI 앱 배포 및 디버그를 참조하세요.
Windows용 .NET MAUI 앱을 배포할 때 다른 시스템에 배포하기 위해 앱 및 해당 종속성을 폴더에 게시할 수 있습니다. 앱을 MSIX 패키지로 패키지할 수도 있습니다. 이 패키지는 앱을 설치하는 사용자에게 많은 이점이 있습니다. 자세한 내용은 Windows용 .NET MAUI 앱 게시를 참조 하세요.
.NET MAUI