Mac App Store 배포용 Mac Catalyst 앱 게시
사용자에게 Mac Catalyst 앱을 배포하는 가장 일반적인 방법은 Mac App Store를 사용하는 것입니다. 앱은 App Store Connect라는 온라인 도구를 통해 Mac App Store에 제출됩니다. Apple 개발자 프로그램에 속한 개발자만 이 도구에 액세스할 수 있습니다. Apple Developer Enterprise Program의 구성원은 액세스할 수 없습니다. Mac App Store에 제출된 모든 앱은 Apple의 승인이 필요합니다.
Mac Catalyst 앱을 배포하려면 프로비저닝 프로필을 사용하여 앱을 프로비전해야 합니다. 프로비저닝 프로필은 앱의 ID 및 의도한 배포 메커니즘뿐만 아니라 코드 서명 정보를 포함하는 파일입니다.
.NET 다중 플랫폼 앱 UI(.NET MAUI) Mac Catalyst 앱을 배포하려면 해당 앱과 관련된 배포 프로비저닝 프로필을 빌드해야 합니다. 이 프로필을 사용하면 앱이 Mac에 설치될 수 있도록 릴리스에 디지털 서명할 수 있습니다. 배포 프로비저닝 프로필에는 앱 ID 및 배포 인증서가 포함됩니다. 배포 인증서를 만들어 자신 또는 조직을 식별해야 합니다(아직 없는 경우). 또한 Mac 앱 스토어에 제출하기 위해 앱의 설치 관리자 패키지에 서명하는 Mac 설치 관리자 인증서를 만들어야 합니다.
Mac App Store를 통해 배포할 .NET MAUI Mac Catalyst 앱을 프로비전하는 프로세스는 다음과 같습니다.
- 인증서 서명 요청을 만듭니다. 자세한 내용은 인증서 서명 요청 만들기를 참조 하세요.
- 배포 인증서를 만듭니다. 자세한 내용은 배포 인증서 만들기를 참조 하세요.
- 설치 관리자 인증서를 만듭니다. 자세한 내용은 설치 관리자 인증서 만들기를 참조 하세요.
- 앱 ID를 만듭니다. 자세한 내용은 앱 ID 만들기를 참조하세요.
- 앱 ID를 구성합니다. 자세한 내용은 앱 ID 구성을 참조하세요.
- 프로비저닝 프로필을 만듭니다. 자세한 내용은 프로비저닝 프로필 만들기를 참조하세요.
- 프로비저닝 프로필을 다운로드합니다. 자세한 내용은 Xcode에서 프로비저닝 프로필 다운로드를 참조하세요.
그런 다음 프로비전이 완료되면 게시할 앱을 준비한 다음, 다음 프로세스로 게시해야 합니다.
- 앱에 필요한 자격을 추가합니다. 자세한 내용은 자격 추가를 참조 하세요.
- 앱의 Info.plist 파일을 업데이트합니다. 자세한 내용은 Info.plist 업데이트를 참조하세요.
- 명령줄을 사용하여 앱을 게시합니다. 자세한 내용은 명령줄을 사용하여 게시를 참조 하세요.
인증서 서명 요청 만들기
배포 인증서를 만들기 전에 먼저 Mac의 키 집합 액세스에서 CSR(인증서 서명 요청)을 만들어야 합니다.
Mac에서 키 집합 액세스를 시작합니다.
키 집합 액세스에서 키 집합 액세스 인증서 도우미 > 인증 기관에서 인증서 요청... 메뉴 항목을 선택합니다.>
인증서 도우미 대화 상자의 사용자 전자 메일 주소 필드에 전자 메일 주소를 입력합니다.
인증서 도우미 대화 상자의 일반 이름 필드에 키의 이름을 입력합니다.
인증서 도우미 대화 상자에서 CA 전자 메일 주소 필드를 비워 둡니다.
인증서 도우미 대화 상자에서 디스크에 저장 라디오 단추를 선택하고 계속을 선택합니다.
인증서 서명 요청을 알려진 위치에 저장합니다.
인증서 도우미 대화 상자에서 완료 단추를 선택합니다.
키 집합 액세스를 닫습니다.
배포 인증서 만들기
CSR을 사용하면 ID를 확인하는 배포 인증서를 생성할 수 있습니다. Apple 개발자 계정의 Apple ID를 사용하여 배포 인증서를 만들어야 합니다.
Apple 개발자 계정에서 인증서, ID 및 프로필 탭을 선택합니다.
인증서, 식별자 및 프로필 페이지에서 단추를 선택하여 + 새 인증서를 만듭니다.
[새 인증서 만들기] 페이지에서 [계속] 단추를 선택하기 전에 Apple 배포 라디오 단추를 선택합니다.
새 인증서 만들기 페이지에서 파일 선택을 선택합니다.
업로드할 파일 선택 대화 상자에서 이전에 만든 인증서 요청 파일(파일 확장명 포함 파일)을 선택한 다음 업로드를
.certSigningRequest
선택합니다.새 인증서 만들기 페이지에서 [계속] 단추를 선택합니다.
인증서 다운로드 페이지에서 다운로드 단추를 선택합니다.
인증서 파일(확장명 있는 파일
.cer
)이 선택한 위치에 다운로드됩니다.Mac에서 다운로드한 인증서 파일을 두 번 클릭하여 키 집합에 인증서를 설치합니다. 인증서는 키 집합 액세스의 내 인증서 범주에 표시되며 Apple 배포로 시작합니다.
참고 항목
키 집합 액세스에서 전체 인증서 이름을 기록해 둡다. 앱에 서명할 때 필요합니다.
설치 관리자 인증서 만들기
CSR을 사용하면 Mac App Store에 제출하기 위해 앱의 설치 관리자 패키지에 서명하는 데 필요한 설치 관리자 인증서를 생성할 수 있습니다. Apple 개발자 계정의 Apple ID를 사용하여 설치 관리자 인증서를 만들어야 합니다.
Apple 개발자 계정에서 인증서, ID 및 프로필 탭을 선택합니다.
인증서, 식별자 및 프로필 페이지에서 단추를 선택하여 + 새 인증서를 만듭니다.
[새 인증서 만들기] 페이지에서 [계속] 단추를 선택하기 전에 Mac 설치 관리자 배포 라디오 단추를 선택합니다.
새 인증서 만들기 페이지에서 파일 선택을 선택합니다.
업로드할 파일 선택 대화 상자에서 이전에 만든 인증서 요청 파일(파일 확장명 포함 파일)을 선택한 다음 업로드를
.certSigningRequest
선택합니다.새 인증서 만들기 페이지에서 [계속] 단추를 선택합니다.
인증서 다운로드 페이지에서 다운로드 단추를 선택합니다.
인증서 파일(확장명 있는 파일
.cer
)이 선택한 위치에 다운로드됩니다.Mac에서 다운로드한 인증서 파일을 두 번 클릭하여 키 집합에 인증서를 설치합니다. 인증서는 키 집합 액세스의 내 인증서 범주에 표시되며 타사 Mac 개발자 설치 관리자로 시작합니다.
참고 항목
키 집합 액세스에서 전체 인증서 이름을 기록해 둡다. 앱에 서명할 때 필요합니다.
배포 프로필 만들기
배포 프로비저닝 프로필을 사용하면 .NET MAUI Mac Catalyst 앱을 디지털 서명하여 다른 Mac에 설치할 수 있습니다. Mac App Store 배포에 대한 프로비저닝 프로필에는 앱 ID 및 배포 인증서가 포함됩니다.
앱 ID 만들기
배포하는 앱을 식별하려면 앱 ID가 필요합니다. 앱 ID는 앱을 고유하게 식별하는 역방향 DNS 문자열과 유사하며 앱의 번들 식별자와 동일해야 합니다. 테스트를 위해 디바이스에 앱을 배포할 때 사용한 것과 동일한 앱 ID를 사용할 수 있습니다.
앱 ID에는 두 가지 유형이 있습니다.
- 와일드카드. 와일드카드 앱 ID를 사용하면 단일 앱 ID를 사용하여 여러 앱을 일치시킬 수 있으며 일반적으로 양식을
com.domainname.*
사용합니다. 와일드카드 앱 ID는 여러 앱을 배포하는 데 사용할 수 있으며 앱별 기능을 사용하도록 설정하지 않는 앱에 사용해야 합니다. - 명시적. 명시적 앱 ID는 단일 앱에 고유하며 일반적으로 형식
com.domainname.myid
을 사용합니다. 명시적 앱 ID를 사용하면 일치하는 번들 식별자를 사용하여 하나의 앱을 배포할 수 있습니다. 명시적 앱 ID는 일반적으로 Apple Pay 또는 Game Center와 같은 앱별 기능을 사용하도록 설정하는 앱에 사용됩니다. 기능에 대한 자세한 내용은 기능을 참조 하세요.
새 앱 ID를 만들려면 다음을 수행합니다.
Apple 개발자 계정에서 인증서, ID 및 프로필로 이동합니다.
인증서, 식별자 및 프로필 페이지에서 식별자 탭을 선택합니다.
식별자 페이지에서 단추를 선택하여 + 새 앱 ID를 만듭니다.
새 식별자 등록 페이지에서 [계속] 단추를 선택하기 전에 앱 ID 라디오 단추를 선택합니다.
새 식별자 등록 페이지에서 계속 단추를 선택하기 전에 앱을 선택합니다.
앱 ID 등록 페이지에서 설명을 입력하고 명시적 또는 와일드카드 번들 ID 라디오 단추를 선택합니다. 그런 다음, 역방향 DS 형식으로 앱의 번들 ID를 입력합니다.
Important
입력한 번들 ID는 앱 프로젝트의 Info.plist 파일에 있는 번들 식별자에 해당해야 합니다.
.NET MAUI 앱의 번들 식별자는 프로젝트 파일에 애플리케이션 ID 속성으로 저장됩니다. Visual Studio의 솔루션 탐색기 .NET MAUI 앱 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 그런 다음 MAUI 공유 > 일반 탭으로 이동합니다. 애플리케이션 ID 필드에는 번들 식별자가 나열됩니다.
애플리케이션 ID 필드의 값이 업데이트되면 Info.plist의 번들 식별자 값이 자동으로 업데이트됩니다.
앱 ID 등록 페이지에서 앱에서 사용하는 기능을 선택합니다. 이 페이지와 앱 프로젝트의 Entitlements.plist 파일 모두에서 모든 기능을 구성해야 합니다. 자세한 내용은 기능 및 자격을 참조하세요.
앱 ID 등록 페이지에서 계속 단추를 선택합니다.
앱 ID 확인 페이지에서 등록 단추를 선택합니다.
앱 ID 구성
기본적으로 Mac Catalyst 앱은 iOS 앱과 동일한 번들 ID를 사용하므로 Mac App Store에서 유니버설 구매로 앱을 함께 제공할 수 있습니다. 또는 고유한 번들 ID를 지정하여 앱을 별도의 제품으로 제공할 수 있습니다.
앱 ID를 구성하려면 다음을 수행합니다.
Apple 개발자 계정에서 인증서, ID 및 프로필로 이동합니다.
인증서, 식별자 및 프로필 페이지에서 식별자 탭을 선택합니다.
식별자 페이지에서 방금 만든 앱 ID를 선택합니다.
앱 ID 구성 편집 페이지에서 페이지 아래쪽으로 스크롤하여 Mac Catalyst 기능 확인란을 사용하도록 설정합니다. 그런 다음 구성 단추를 선택합니다.
Mac Catalyst에 대한 번들 ID 구성 팝업에서 기존 Mac 앱 ID 라디오 사용 단추를 선택합니다. 앱 ID 드롭다운에서 Mac Catalyst의 파트너 iOS 앱에 대한 앱 ID 또는 Mac Catalyst 앱을 별도의 제품으로 제공하는 경우 만든 앱 ID를 선택합니다. 그런 다음 저장 단추를 선택합니다.
앱 ID 구성 편집 페이지에서 저장 단추를 선택합니다.
앱 기능 수정 팝업에서 확인 단추를 선택합니다.
프로비저닝 프로필 만들기
앱 ID가 만들어지고 구성되면 배포 프로비저닝 프로필을 만들어야 합니다. 이 프로필을 사용하면 앱이 Mac에 설치될 수 있도록 릴리스에 디지털 서명할 수 있습니다.
Mac App Store 배포에 대한 프로비저닝 프로필을 만들려면 다음을 수행합니다.
Apple 개발자 계정의 인증서, 식별자 및 프로필 페이지에서 프로필 탭을 선택합니다.
프로필 탭에서 단추를 클릭하여 + 새 프로필을 만듭니다.
새 프로비저닝 프로필 등록 페이지에서 계속 단추를 클릭하기 전에 Mac 앱 스토어 라디오 단추를 선택합니다.
프로비전 프로필 생성 페이지에서 Mac 라디오 단추를 선택합니다. 그런 다음 앱 ID 드롭다운에서 계속 단추를 클릭하기 전에 이전에 만든 앱 ID를 선택합니다.
프로비전 프로필 생성 페이지에서 계속 단추를 클릭하기 전에 배포 인증서에 해당하는 라디오 단추를 선택합니다.
프로비전 프로필 생성 페이지에서 생성 단추를 클릭하기 전에 프로비전 프로필의 이름을 입력합니다.
참고 항목
앱에 서명할 때 필요하므로 프로비저닝 프로필 이름을 기록해 둡다.
프로비전 프로필 생성 페이지에서 필요에 따라 다운로드 단추를 클릭하여 프로비전 프로필을 다운로드합니다.
참고 항목
지금 프로비저닝 프로필을 다운로드할 필요는 없습니다. 대신 Xcode에서 이 작업을 수행합니다.
Xcode에서 프로비저닝 프로필 다운로드
Apple 개발자 계정에서 프로비저닝 프로필을 만든 후 Xcode는 앱 서명에 사용할 수 있도록 다운로드할 수 있습니다.
Mac에서 Xcode를 시작합니다.
Xcode에서 Xcode > 기본 설정... 메뉴 항목을 선택합니다.
기본 설정 대화 상자에서 계정 탭을 선택합니다.
계정 탭에서 단추를 클릭하여 + Apple 개발자 계정을 Xcode에 추가합니다.
계정 유형 팝업에서 Apple ID를 선택한 다음 계속 단추를 클릭합니다.
로그인 팝업에서 Apple ID를 입력하고 다음 단추를 클릭합니다.
로그인 팝업에서 Apple ID 암호를 입력하고 다음 단추를 클릭합니다.
계정 탭에서 인증서 관리... 단추를 클릭하여 배포 인증서가 다운로드되었는지 확인합니다.
계정 탭에서 수동 프로필 다운로드 단추를 클릭하여 프로비저닝 프로필을 다운로드합니다.
다운로드가 완료되기를 기다린 다음 Xcode를 닫습니다.
자격 추가
Apple의 앱 샌드박스는 앱이 손상될 경우 손상을 포함하도록 Mac 앱의 시스템 리소스 및 사용자 데이터에 대한 액세스를 제한합니다. Mac App Store를 통해 배포되는 Mac Catalyst 앱에 대해 사용하도록 설정해야 합니다.
.NET MAUI 앱 프로젝트의 Platforms/MacCatalyst 폴더에 Entitlements.plist 파일을 추가하여 이 작업을 수행할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
앱 샌드박스 자격은 형식boolean
의 com.apple.security.app-sandbox
키를 사용하여 정의됩니다. 앱 샌드박스에 대한 자세한 내용은 developer.apple.com App Sandbox를 사용하여 사용자 데이터 보호를 참조하세요. 앱 샌드박스 자격에 대한 자세한 내용은 앱 샌드박스 자격을 참조 하세요.
앱에서 나가는 네트워크 연결을 여는 경우 Entitlements.plist 파일에 형식boolean
의 키도 추가 com.apple.security.network.client
해야 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
나가는 네트워크 연결 권한에 대한 자세한 내용은 developer.apple.com com.apple.security.network.client 를 참조하세요.
Info.plist 업데이트
앱을 게시하기 전에 추가 정보로 Info.plist 파일을 업데이트하여 앱을 Mac App Store에 업로드할 수 있도록 하고 원활한 Mac App Store 검토 프로세스를 보장해야 합니다.
사용자 인터페이스 관용구 지정
Mac Catalyst 앱은 iPad 또는 Mac 사용자 인터페이스 관용구에서 실행할 수 있습니다.
- iPad 사용자 인터페이스 관용구는 iPad와 유사한 모양을 유지하면서 Mac 디스플레이 환경과 일치하도록 앱의 사용자 인터페이스 크기를 조정하도록 macOS에 지시합니다.
- Mac 사용자 인터페이스 관용구는 Mac 표시 환경과 일치하도록 앱의 사용자 인터페이스 크기를 조정하지 않습니다. 일부 컨트롤은 크기와 모양을 변경하며, 컨트롤과 상호 작용하는 것은 컨트롤과
AppKit
상호 작용하는 것과 동일하게 느껴집니다.
기본적으로 .NET MAUI Mac Catalyst 앱은 iPad 사용자 인터페이스 관용구를 사용합니다. 원하는 동작인 경우 앱의 Info.plist 파일이 키 값 UIDeviceFamily
으로 2만 지정하는지 확인합니다.
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
Mac 사용자 인터페이스 관용구를 채택하려면 앱의 Info.plist 파일을 업데이트하여 키 값 UIDeviceFamily
으로 6을 지정합니다.
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
Mac Catalyst 사용자 인터페이스 관용구에 대한 자세한 내용은 Mac Catalyst 앱에 대한 UI 관용구 지정을 참조하세요.
앱의 기본 언어 및 지역 설정
CFBundleDevelopmentRegion
앱의 Info.plist string
에 있는 키를 지역화 네이티브 개발 지역을 나타내는 키로 설정합니다.
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
키 값은 선택적 지역 지정자가 있는 언어 지정자여야 합니다. 자세한 내용은 developer.apple.com CFBundleDevelopmentRegion 을 참조하세요.
저작권 키 설정
NSHumanReadableCopyright
앱의 Info.plist에 있는 키를 사용자가 읽을 수 있는 string
앱의 저작권 알림을 나타내는 키로 설정합니다.
<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>
자세한 내용은 developer.apple.com NSHumanReadableCopyright 를 참조하세요.
앱 범주 설정
범주는 사용자가 Mac 앱 스토어에서 앱을 검색하는 데 도움이 됩니다. Info.plist 파일에서 앱의 기본 범주를 설정할 수 있습니다.
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
자세한 내용은 developer.apple.com LSApplicationCategoryType 을 참조하세요.
참고 항목
앱의 기본 범주는 App Store Connect에서 설정한 기본 범주와 일치해야 합니다.
앱의 암호화 사용 선언
앱에서 암호화를 사용하고 미국 또는 캐나다 외부로 배포하려는 경우 미국 내보내기 규정 준수 요구 사항이 적용됩니다. App Store Connect에 앱 버전을 제출할 때마다 암호화 내보내기 규정 준수 검토를 거칩니다. App Store Connect에서 검토를 안내하는 질문을 하지 않도록 앱의 Info.plist 파일에 필요한 정보를 제공할 수 있습니다.
이 작업은 앱이 암호화를 ITSAppUsesNonExemptEncryption
사용하는지 여부를 나타내는 값으로 boolean
앱의 Info.plist에 키를 추가하여 수행됩니다.
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
자세한 내용은 developer.apple.com 대한 암호화 내보내기 규정 준수를 참조하세요.
명령줄을 사용하여 게시
Mac의 명령줄에서 Mac Catalyst 앱을 게시하려면 터미널을 열고 .NET MAUI 앱 프로젝트의 폴더로 이동합니다. dotnet publish
다음 매개 변수를 제공하여 명령을 실행합니다.
매개 변수 | 값 |
---|---|
-f 또는 --framework |
대상 프레임워크입니다 net8.0-maccatalyst . |
-c 또는 --configuration |
빌드 구성입니다 Release . |
-p:MtouchLink |
프로젝트에 None SdkOnly Full 대한 링크 모드입니다. |
-p:CreatePackage |
true 빌드가 끝날 때 앱에 대한 패키지(.pkg)가 만들어지도록 설정합니다. |
-p:EnableCodeSigning |
true 코드 서명을 사용하도록 설정합니다. |
-p:EnablePackageSigning |
true 생성된 패키지가 서명되도록 설정합니다. |
-p:CodesignKey |
코드 서명 키의 이름입니다. 키 집합 액세스에 표시된 대로 배포 인증서의 이름으로 설정합니다. |
-p:CodesignProvision |
앱 번들에 서명할 때 사용할 프로비전 프로필입니다. |
-p:CodesignEntitlements |
앱에 필요한 자격을 지정하는 권한 파일의 경로입니다. Platforms\MacCatalyst\Entitlements.plist 로 설정합니다. |
-p:PackageSigningKey |
패키지에 서명할 때 사용할 패키지 서명 키입니다. 키 집합 액세스에 표시된 대로 설치 관리자 인증서의 이름으로 설정합니다. |
Warning
.NET MAUI 솔루션을 게시하려고 하면 명령이 솔루션의 dotnet publish
각 프로젝트를 개별적으로 게시하려고 시도하므로 솔루션에 다른 프로젝트 형식을 추가한 경우 문제가 발생할 수 있습니다. 따라서 명령의 dotnet publish
범위를 .NET MAUI 앱 프로젝트로 지정해야 합니다.
프로젝트 파일에서 제공되지 않는 경우 명령줄에 추가 빌드 매개 변수를 <PropertyGroup>
지정할 수 있습니다. 다음 표에서는 몇 가지 일반적인 매개 변수를 나열합니다.
매개 변수 | 값 |
---|---|
-p:ApplicationTitle |
앱의 사용자 표시 이름입니다. |
-p:ApplicationId |
앱의 고유 식별자(예: com.companyname.mymauiapp .) |
-p:ApplicationVersion |
앱의 반복을 식별하는 빌드의 버전입니다. |
-p:ApplicationDisplayVersion |
앱의 버전 번호입니다. |
빌드 속성의 전체 목록은 프로젝트 파일 속성을 참조 하세요.
Important
이러한 모든 매개 변수의 값은 명령줄에 제공할 필요가 없습니다. 프로젝트 파일에서도 제공할 수 있습니다. 명령줄과 프로젝트 파일에 매개 변수가 제공되면 명령줄 매개 변수가 우선합니다. 프로젝트 파일에서 빌드 속성을 제공하는 방법에 대한 자세한 내용은 프로젝트 파일에서 빌드 속성 정의를 참조하세요.
예를 들어 다음 명령을 사용하여 Mac App Store를 통해 배포하기 위해 Mac에서 .pkg 빌드하고 서명합니다.
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"
참고 항목
.NET 8 dotnet publish
에서 명령은 기본적으로 구성으로 Release
설정됩니다. 따라서 명령줄에서 빌드 구성을 생략할 수 있습니다.
게시는 앱을 빌드, 서명 및 패키지한 다음, .pkg bin/Release/net8.0-maccatalyst/publish/ 폴더에 복사합니다. 단일 아키텍처만 사용하여 앱을 게시하면 bin/Release/net8.0-maccatalyst/{architecture}/publish/ 폴더에 게시됩니다.
서명 프로세스 중에 로그인 암호를 입력하고 다음을 허용 codesign
하고 productbuild
실행해야 할 수 있습니다.
명령에 대한 자세한 내용은 dotnet publish를 dotnet publish
참조하세요.
프로젝트 파일에서 빌드 속성 정의
명령줄에서 빌드 매개 변수를 지정하는 대신 프로젝트 파일에서 <PropertyGroup>
해당 매개 변수를 지정하는 것입니다. 다음 표에서는 몇 가지 일반적인 빌드 속성을 나열합니다.
속성 | 값 |
---|---|
<ApplicationTitle> |
앱의 사용자 표시 이름입니다. |
<ApplicationId> |
앱의 고유 식별자(예: com.companyname.mymauiapp .) |
<ApplicationVersion> |
앱의 반복을 식별하는 빌드의 버전입니다. |
<ApplicationDisplayVersion> |
앱의 버전 번호입니다. |
<CodesignKey> |
코드 서명 키의 이름입니다. 키 집합 액세스에 표시된 대로 배포 인증서의 이름으로 설정합니다. |
<CodesignEntitlements> |
앱에 필요한 자격을 지정하는 권한 파일의 경로입니다. Platforms\MacCatalyst\Entitlements.plist 로 설정합니다. |
<CodesignProvision> |
앱 번들에 서명할 때 사용할 프로비전 프로필입니다. |
<CreatePackage> |
true 빌드가 끝날 때 앱에 대한 패키지(.pkg)가 만들어지도록 설정합니다. |
<EnableCodeSigning> |
true 코드 서명을 사용하도록 설정합니다. |
<EnablePackageSigning> |
true 생성된 패키지가 서명되도록 설정합니다. |
<MtouchLink> |
프로젝트에 None SdkOnly Full 대한 링크 모드입니다. |
<PackageSigningKey> |
패키지에 서명할 때 사용할 패키지 서명 키입니다. 키 집합 액세스에 표시된 대로 설치 관리자 인증서의 이름으로 설정합니다. |
빌드 속성의 전체 목록은 프로젝트 파일 속성을 참조 하세요.
Important
이러한 빌드 속성의 값은 프로젝트 파일에 제공할 필요가 없습니다. 앱을 게시할 때 명령줄에서 제공할 수도 있습니다. 이렇게 하면 프로젝트 파일에서 특정 값을 생략할 수 있습니다.
다음 예제에서는 Mac App Store 배포용 Mac Catalyst 앱을 빌드하고 서명하기 위한 일반적인 속성 그룹을 보여 줍니다.
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</PropertyGroup>
다음은 조건 검사를 통과하지 않는 한 설정이 처리되지 않도록 조건 검사를 추가하는 예제 <PropertyGroup>
입니다. 조건 검사는 다음 두 항목을 찾습니다.
- 빌드 구성이 .로 설정됩니다
Release
. - 대상 프레임워크는 텍스트
net8.0-maccatalyst
가 포함된 항목으로 설정됩니다. - 플랫폼이 .로 설정됩니다
AnyCPU
.
이러한 조건이 실패하면 설정이 처리되지 않습니다. 더 중요한 것은 <CodesignKey>
, <CodesignProvision>
및 <PackageSigningKey>
설정이 설정되지 않아 앱이 서명되지 않는다는 것입니다.
위의 속성 그룹을 추가한 후 터미널을 열고 .NET MAUI 앱 프로젝트의 폴더로 이동하여 Mac의 명령줄에서 앱을 게시할 수 있습니다. 그런 후 다음 명령을 실행합니다.
dotnet build -f net8.0-maccatalyst -c Release
참고 항목
.NET 8 dotnet publish
에서 명령은 기본적으로 구성으로 Release
설정됩니다. 따라서 명령줄에서 빌드 구성을 생략할 수 있습니다.
게시는 앱을 빌드, 서명 및 패키지한 다음, .pkg bin/Release/net8.0-maccatalyst/publish/ 폴더에 복사합니다.
Mac 앱 스토어에 업로드
앱이 Apple 배포 인증서로 코드 서명되면 로컬로 실행할 수 없습니다. 대신 로컬 실행을 사용하도록 다시 서명할 App Store Connect에 업로드해야 합니다.
Mac App Store 또는 TestFlight를 통해 앱을 배포하려면 App Store Connect에서 앱 레코드를 만들어야 합니다. 이 레코드에는 앱 스토어에 표시되는 앱에 대한 모든 정보와 배포 프로세스 전체에서 앱을 관리하는 데 필요한 모든 정보가 포함됩니다. 자세한 내용은 developer.apple.com 앱 레코드 만들기를 참조하세요.
Transporter를 사용하여 Mac App Store에 앱을 제출할 수 있습니다. 성공적인 제출을 중지하는 앱 패키지의 오류를 식별하는 데도 도움이 됩니다.
참고 항목
- developer.apple.com 배포 를 위해 앱 준비
.NET MAUI