다음을 통해 공유


임시 배포를 위한 Mac Catalyst 앱 게시

Mac Catalyst 앱을 Mac App Store 외부에 배포할 때 등록된 디바이스에서 제한된 수의 사용자에게 앱을 배포하도록 선택할 수도 있습니다. 이를 임시 배포라고 하며, 주로 사용자 그룹 내에서 앱을 테스트하는 데 사용됩니다. 그러나 멤버십 연도당 디바이스는 100개로 제한되며 Apple 개발자 계정에 디바이스를 추가해야 합니다. Apple 개발자 프로그램 및 Apple 개발자 엔터프라이즈 프로그램의 구성원은 이 배포 방식을 사용할 수 있습니다.

Mac Catalyst 앱을 배포하려면 프로비저닝 프로필을 사용하여 앱을 프로비전해야 합니다. 프로비저닝 프로필은 앱의 ID 및 의도한 배포 메커니즘뿐만 아니라 코드 서명 정보를 포함하는 파일입니다.

임시 배포를 사용하여 .NET 다중 플랫폼 앱 UI(.NET MAUI) Mac Catalyst 앱을 Mac App Store 외부에 배포하려면 해당 앱과 관련된 개발 프로비저닝 프로필을 빌드해야 합니다. 이 프로필을 사용하면 앱이 Mac에 설치될 수 있도록 릴리스에 디지털 서명할 수 있습니다. 임시 개발 프로비저닝 프로필에는 앱 ID, 개발 인증서 및 앱을 설치할 수 있는 디바이스 목록이 포함됩니다. 개발 인증서를 만들어 자신 또는 조직을 식별해야 합니다(아직 없는 경우).

임시 배포를 위해 .NET MAUI Mac Catalyst 앱을 프로비전하는 프로세스는 다음과 같습니다.

  1. 인증서 서명 요청을 만듭니다. 자세한 내용은 인증서 서명 요청 만들기를 참조 하세요.
  2. 개발 인증서를 만듭니다. 자세한 내용은 개발 인증서 만들기를 참조하세요.
  3. 앱 ID를 만듭니다. 자세한 내용은 앱 ID 만들기를 참조하세요.
  4. Apple 개발자 계정에 디바이스를 추가합니다. 자세한 내용은 디바이스 추가를 참조 하세요.
  5. 프로비저닝 프로필을 만듭니다. 자세한 내용은 프로비저닝 프로필 만들기를 참조하세요.
  6. 프로비저닝 프로필을 다운로드합니다. 자세한 내용은 Xcode에서 프로비저닝 프로필 다운로드를 참조하세요.

Important

이 문서에서는 Apple 개발자 프로그램의 일부인 Apple 개발자 계정을 사용하여 임시 배포에 대한 프로비저닝을 보여줍니다. 필요한 단계가 대부분 동일하기 때문에 Apple 개발자 엔터프라이즈 프로그램의 일부인 Apple 개발자 계정에도 사용할 수 있습니다.

그런 다음 프로비전이 완료되면 게시를 위해 앱을 준비한 다음, 다음 프로세스를 사용하여 게시해야 합니다.

  1. 필요에 따라 앱에 자격을 추가합니다. 자세한 내용은 자격 추가를 참조 하세요.
  2. 앱의 Info.plist 파일을 업데이트합니다. 자세한 내용은 Info.plist 업데이트를 참조하세요.
  3. 명령줄을 사용하여 앱을 게시합니다. 자세한 내용은 명령줄을 사용하여 게시를 참조 하세요.

인증서 서명 요청 만들기

배포 인증서를 만들기 전에 먼저 Mac의 키 집합 액세스에서 CSR(인증서 서명 요청)을 만들어야 합니다.

  1. Mac에서 키 집합 액세스를 시작합니다.

  2. 키 집합 액세스에서 키 집합 액세스 인증서 도우미 > 인증 기관에서 인증서 요청... 메뉴 항목을 선택합니다.>

  3. 인증서 도우미 대화 상자의 사용자 전자 메일 주소 필드에 전자 메일 주소를 입력합니다.

  4. 인증서 도우미 대화 상자의 일반 이름 필드에 키의 이름을 입력합니다.

  5. 인증서 도우미 대화 상자에서 CA 전자 메일 주소 필드를 비워 둡니다.

  6. 인증서 도우미 대화 상자에서 디스크저장 라디오 단추를 선택하고 계속을 선택합니다.

    인증서 도우미 대화 상자.

  7. 인증서 서명 요청을 알려진 위치에 저장합니다.

  8. 인증서 도우미 대화 상자에서 완료 단추를 선택합니다.

  9. 키 집합 액세스를 닫습니다.

개발 인증서 만들기

CSR을 사용하면 ID를 확인하는 개발 인증서를 생성할 수 있습니다. Apple 개발자 계정의 Apple ID를 사용하여 개발 인증서를 만들어야 합니다.

  1. 웹 브라우저에서 Apple 개발자 계정에 로그인합니다.

  2. Apple 개발자 계정에서 인증서, ID 및 프로필 탭을 선택합니다.

  3. 인증서, 식별자 및 프로필 페이지에서 단추를 선택하여 + 새 인증서를 만듭니다.

  4. [새 인증서 만들기] 페이지에서 [계속] 단추를 선택하기 전에 Apple 개발 라디오 단추를 선택합니다.

    Apple 개발 인증서를 만듭니다.

  5. 새 인증서 만들기 페이지에서 파일 선택을 선택합니다.

    인증서 서명 요청을 업로드합니다.

  6. 업로드할 파일 선택 대화 상자에서 이전에 만든 인증서 요청 파일(파일 확장명 포함 파일)을 선택한 다음 업로드.certSigningRequest 선택합니다.

  7. 새 인증서 만들기 페이지에서 [계속] 단추를 선택합니다.

    배포 인증서를 계속 생성합니다.

  8. 인증서 다운로드 페이지에서 다운로드 단추를 선택합니다.

    배포 인증서를 다운로드합니다.

    인증서 파일(확장명 있는 파일 .cer )이 선택한 위치에 다운로드됩니다.

  9. Mac에서 다운로드한 인증서 파일을 두 번 클릭하여 키 집합에 인증서를 설치합니다. 인증서는 키 집합 액세스내 인증서 범주에 표시되며 Apple Development시작합니다.

    개발 인증서를 보여 주는 키 집합 액세스입니다.

    참고 항목

    키 집합 액세스에서 전체 인증서 이름을 기록해 둡다. 앱에 서명할 때 필요합니다.

개발 프로필 만들기

임시 개발 프로비저닝 프로필을 사용하면 .NET MAUI Mac Catalyst 앱에 디지털 서명하여 특정 Mac에 설치할 수 있습니다. 임시 개발 프로비저닝 프로필에는 앱 ID, 개발 인증서 및 앱을 설치할 수 있는 디바이스 목록이 포함됩니다.

앱 ID 만들기

배포하는 앱을 식별하려면 앱 ID가 필요합니다. 앱 ID는 앱을 고유하게 식별하는 역방향 DNS 문자열과 유사하며 앱의 번들 식별자와 동일해야 합니다. 테스트를 위해 디바이스에 앱을 배포할 때 사용한 것과 동일한 앱 ID를 사용할 수 있습니다.

앱 ID에는 두 가지 유형이 있습니다.

  • 와일드카드. 와일드카드 앱 ID를 사용하면 단일 앱 ID를 사용하여 여러 앱을 일치시킬 수 있으며 일반적으로 양식을 com.domainname.*사용합니다. 와일드카드 앱 ID는 여러 앱을 배포하는 데 사용할 수 있으며 앱별 기능을 사용하도록 설정하지 않는 앱에 사용해야 합니다.
  • 명시적. 명시적 앱 ID는 단일 앱에 고유하며 일반적으로 형식 com.domainname.myid을 사용합니다. 명시적 앱 ID를 사용하면 일치하는 번들 식별자를 사용하여 하나의 앱을 배포할 수 있습니다. 명시적 앱 ID는 일반적으로 Apple Pay 또는 Game Center와 같은 앱별 기능을 사용하도록 설정하는 앱에 사용됩니다. 기능에 대한 자세한 내용은 기능을 참조 하세요.

새 앱 ID를 만들려면 다음을 수행합니다.

  1. Apple 개발자 계정에서 인증서, ID 및 프로필이동합니다.

  2. 인증서, 식별자 및 프로필 페이지에서 식별자 탭을 선택합니다.

  3. 식별자 페이지에서 단추를 선택하여 + 새 앱 ID를 만듭니다.

  4. 새 식별자 등록 페이지에서 [계속] 단추를 선택하기 전에 앱 ID 라디오 단추를 선택합니다.

    앱 ID를 만듭니다.

  5. 새 식별자 등록 페이지에서 계속 단추를 선택하기 전에 앱을 선택합니다.

    앱 ID 등록.

  6. 앱 ID 등록 페이지에서 설명을 입력하고 명시적 또는 와일드카드 번들 ID 라디오 단추를 선택합니다. 그런 다음, 역방향 DS 형식으로 앱의 번들 ID를 입력합니다.

    앱의 번들 식별자를 지정합니다.

    Important

    입력한 번들 ID는 앱 프로젝트의 Info.plist 파일에 있는 번들 식별자에 해당해야 합니다.

    .NET MAUI 앱의 번들 식별자는 프로젝트 파일에 애플리케이션 ID 속성으로 저장됩니다. Visual Studio의 솔루션 탐색기 .NET MAUI 앱 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 그런 다음 MAUI 공유 > 일반 탭으로 이동합니다. 애플리케이션 ID 필드에는 번들 식별자가 나열됩니다.

    애플리케이션 ID 필드의 값이 업데이트되면 Info.plist번들 식별자 값이 자동으로 업데이트됩니다.

  7. 앱 ID 등록 페이지에서 앱에서 사용하는 기능을 선택합니다. 이 페이지와 앱 프로젝트의 Entitlements.plist 파일 모두에서 모든 기능을 구성해야 합니다. 자세한 내용은 기능자격을 참조하세요.

  8. 앱 ID 등록 페이지에서 계속 단추를 선택합니다.

  9. 앱 ID 확인 페이지에서 등록 단추를 선택합니다.

디바이스 추가

임시 배포를 위한 프로비저닝 프로필을 만들 때 프로필에는 앱을 실행할 수 있는 디바이스가 포함되어야 합니다. 프로비저닝 프로필에 추가할 디바이스를 선택하기 전에 먼저 Apple 개발자 계정에 디바이스를 추가해야 합니다. 이 작업은 다음 단계를 통해 수행할 수 있습니다.

  1. 이 Mac대한 Apple > 메뉴 항목을 선택합니다.

  2. 개요 탭에서 시스템 보고서... 단추를 선택합니다.

  3. 시스템 보고서에서 하드웨어 확장기를 선택하여 하드웨어 개요를 확인합니다. 보고서에는 uUID(범용 고유 식별자)가 macOS 10.15 이하의 하드웨어 UUID표시되거나 macOS 11.0 이상에서 프로비저닝 UDID가 표시됩니다.

  4. 하드웨어 UUID 또는 프로비전 UDID 값을 선택하고 클립보드에 복사합니다.

  5. 웹 브라우저에서 Apple 개발자 계정의 디바이스 섹션으로 이동하여 단추를 클릭합니다 + .

  6. 새 디바이스 등록 페이지에서 플랫폼을 macOS설정하고 새 디바이스의 이름을 제공합니다. 그런 다음 클립보드의 식별자를 디바이스 ID(UUID) 필드에 붙여넣고 계속 단추를 클릭합니다.

    이름을 지정하고 고유한 디바이스 식별자를 입력하여 디바이스를 등록합니다.

  7. 새 디바이스 등록 페이지에서 정보를 검토한 다음 등록 단추를 클릭합니다.

.NET MAUI Mac Catalyst 앱을 배포하려는 모든 Mac에 대해 임시 배포를 사용하여 위의 단계를 반복합니다.

프로비저닝 프로필 만들기

앱 ID가 만들어지면 개발 프로비저닝 프로필을 만들어야 합니다. 이 프로필을 사용하면 앱이 특정 Mac에 설치될 수 있도록 디지털 서명할 수 있습니다.

임시 배포를 위한 프로비저닝 프로필을 만들려면 다음을 수행합니다.

  1. Apple 개발자 계정의 인증서, 식별자 및 프로필 페이지에서 프로필 탭을 선택합니다.

  2. 프로필 탭에서 단추를 클릭하여 + 새 프로필을 만듭니다.

  3. 새 프로비저닝 프로필 등록 페이지에서 계속 단추를 클릭하기 전에 macOS 앱 개발 라디오 단추를 선택합니다.

    임시 배포에 대한 프로비저닝 프로필을 등록합니다.

  4. 프로비전 프로필 생성 페이지에서 Mac Catalyst 라디오 단추를 선택합니다. 그런 다음 앱 ID 드롭다운에서 계속 단추를 클릭하기 전에 이전에 만든 앱 ID를 선택합니다.

    앱 ID를 선택합니다.

  5. 프로비전 프로필 생성 페이지에서 계속 단추를 클릭하기 전에 개발 인증서에 해당하는 확인란을 선택합니다.

    개발 인증서를 선택합니다.

  6. 프로비전 프로필 생성 페이지에서 앱이 설치될 디바이스를 선택한 다음 계속 단추를 클릭합니다.

    프로비저닝 프로필에 디바이스를 추가하는 스크린샷

  7. 프로비전 프로필 생성 페이지에서 생성 단추를 클릭하기 전에 프로비전 프로필의 이름을 입력합니다.

    프로비저닝 프로필을 생성합니다.

    참고 항목

    앱에 서명할 때 필요하므로 프로비저닝 프로필 이름을 기록해 둡다.

  8. 프로비전 프로필 생성 페이지에서 필요에 따라 다운로드 단추를 클릭하여 프로비전 프로필을 다운로드합니다.

    참고 항목

    지금 프로비저닝 프로필을 다운로드할 필요는 없습니다. 대신 Xcode에서 이 작업을 수행합니다.

Xcode에서 프로비저닝 프로필 다운로드

Apple 개발자 계정에서 프로비저닝 프로필을 만든 후 Xcode는 앱 서명에 사용할 수 있도록 다운로드할 수 있습니다.

  1. Mac에서 Xcode를 시작합니다.

  2. Xcode에서 Xcode > 기본 설정... 메뉴 항목을 선택합니다.

  3. 기본 설정 대화 상자에서 계정 탭을 선택합니다.

  4. 계정 탭에서 단추를 클릭하여 + Apple 개발자 계정을 Xcode에 추가합니다.

    기본 설정의 Xcode 계정 대화 상자.

  5. 계정 유형 팝업에서 Apple ID를 선택한 다음 계속 단추를 클릭합니다.

    Xcode는 팝업을 추가하려는 계정 유형을 선택합니다.

  6. 로그인 팝업에서 Apple ID를 입력하고 다음 단추를 클릭합니다.

  7. 로그인 팝업에서 Apple ID 암호를 입력하고 다음 단추를 클릭합니다.

    Xcode Apple 계정 로그인

  8. 계정 탭에서 인증서 관리... 단추를 클릭하여 배포 인증서가 다운로드되었는지 확인합니다.

  9. 계정 탭에서 수동 프로필 다운로드 단추를 클릭하여 프로비저닝 프로필을 다운로드합니다.

    Xcode Apple 개발자 프로그램 계정 세부 정보입니다.

  10. 다운로드가 완료되기를 기다린 다음 Xcode를 닫습니다.

자격 추가

Apple의 앱 샌드박스는 앱이 손상될 경우 손상을 포함하도록 Mac 앱의 시스템 리소스 및 사용자 데이터에 대한 액세스를 제한합니다. Mac App Store를 통해 배포되는 Mac Catalyst 앱에 대해 사용하도록 설정해야 하며 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>

앱 샌드박스 자격은 형식booleancom.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 파일을 추가 정보로 업데이트해야 합니다.

참고 항목

테스트를 위해 배포할 때 앱의 Info.plist 파일을 업데이트해야 하는 것은 아니지만 최종 테스트된 버전의 앱을 배포할 때 이러한 업데이트가 필요합니다. 따라서 이러한 업데이트를 수행하는 것이 가장 좋습니다.

사용자 인터페이스 관용구 지정

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 를 참조하세요.

앱의 암호화 사용 선언

앱에서 암호화를 사용하고 미국 또는 캐나다 외부로 배포하려는 경우 미국 내보내기 규정 준수 요구 사항이 적용됩니다. 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 프로젝트에 NoneSdkOnlyFull대한 링크 모드입니다.
-p:CreatePackage true 빌드가 끝날 때 앱에 대한 패키지(.pkg)가 만들어지도록 설정합니다.
-p:EnableCodeSigning true 코드 서명을 사용하도록 설정합니다.
-p:CodesignKey 코드 서명 키의 이름입니다. 키 집합 액세스에 표시된 대로 배포 인증서의 이름으로 설정합니다.
-p:CodesignProvision 앱 번들에 서명할 때 사용할 프로비전 프로필입니다.
-p:CodesignEntitlements 앱에 필요한 자격을 지정하는 권한 파일의 경로입니다. Platforms\MacCatalyst\Entitlements.plist로 설정합니다.
-p:RuntimeIdentifier 프로젝트의 RID(런타임 식별자)입니다. .NET MAUI Mac Catalyst 앱의 릴리스 빌드는 기본적으로 유니버설 앱을 지원하기 위해 런타임 식별자로 사용 maccatalyst-x64maccatalyst-arm64 사용됩니다. 단일 아키텍처만 지원하려면 지정 maccatalyst-x64 하거나 maccatalyst-arm64.
-p:UseHardenedRuntime true Mac App Store 외부에 배포되는 Mac Catalyst 앱에 필요한 강화된 런타임을 사용하도록 설정합니다.

Warning

.NET MAUI 솔루션을 게시하려고 하면 명령이 솔루션의 dotnet publish 각 프로젝트를 개별적으로 게시하려고 시도하므로 솔루션에 다른 프로젝트 형식을 추가한 경우 문제가 발생할 수 있습니다. 따라서 명령의 dotnet publish 범위를 .NET MAUI 앱 프로젝트로 지정해야 합니다.

프로젝트 파일에서 제공되지 않는 경우 명령줄에 추가 빌드 매개 변수를 <PropertyGroup> 지정할 수 있습니다. 다음 표에서는 몇 가지 일반적인 매개 변수를 나열합니다.

매개 변수
-p:ApplicationTitle 앱의 사용자 표시 이름입니다.
-p:ApplicationId 앱의 고유 식별자(예: com.companyname.mymauiapp.)
-p:ApplicationVersion 앱의 반복을 식별하는 빌드의 버전입니다.
-p:ApplicationDisplayVersion 앱의 버전 번호입니다.
-p:RuntimeIdentifier 프로젝트의 RID(런타임 식별자)입니다. .NET MAUI Mac Catalyst 앱의 릴리스 빌드는 기본적으로 유니버설 앱을 지원하기 위해 런타임 식별자로 사용 maccatalyst-x64maccatalyst-arm64 사용됩니다. 단일 아키텍처만 지원하려면 지정 maccatalyst-x64 하거나 maccatalyst-arm64.

빌드 속성의 전체 목록은 프로젝트 파일 속성을 참조 하세요.

Important

이러한 모든 매개 변수의 값은 명령줄에 제공할 필요가 없습니다. 프로젝트 파일에서도 제공할 수 있습니다. 명령줄과 프로젝트 파일에 매개 변수가 제공되면 명령줄 매개 변수가 우선합니다. 프로젝트 파일에서 빌드 속성을 제공하는 방법에 대한 자세한 내용은 프로젝트 파일에서 빌드 속성 정의를 참조하세요.

예를 들어 다음 명령을 사용하여 등록된 디바이스의 사용자에게 임시 배포를 위해 Mac에서 .pkg 빌드하고 서명합니다.

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true  -p:CodesignKey="Apple Development: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Ad-hoc)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:UseHardenedRuntime=true

참고 항목

.NET 8 dotnet publish 에서 명령은 기본적으로 구성으로 Release 설정됩니다. 따라서 명령줄에서 빌드 구성을 생략할 수 있습니다.

게시는 앱을 빌드, 서명 및 패키지한 다음, .pkg bin/Release/net8.0-maccatalyst/publish/ 폴더에 복사합니다. 단일 아키텍처만 사용하여 앱을 게시하면 bin/Release/net8.0-maccatalyst/{architecture}/publish/ 폴더에 게시됩니다.

서명 프로세스 중에 로그인 암호를 입력하고 다음을 실행하도록 허용 codesign 해야 할 수 있습니다.

Codesign이 Mac에서 앱에 서명하도록 허용합니다.

명령에 대한 자세한 내용은 dotnet publishdotnet publish 참조하세요.

프로젝트 파일에서 빌드 속성 정의

명령줄에서 빌드 매개 변수를 지정하는 대신 프로젝트 파일에서 <PropertyGroup>해당 매개 변수를 지정하는 것입니다. 다음 표에서는 몇 가지 일반적인 빌드 속성을 나열합니다.

속성
<ApplicationTitle> 앱의 사용자 표시 이름입니다.
<ApplicationId> 앱의 고유 식별자(예: com.companyname.mymauiapp.)
<ApplicationVersion> 앱의 반복을 식별하는 빌드의 버전입니다.
<ApplicationDisplayVersion> 앱의 버전 번호입니다.
<CodesignKey> 코드 서명 키의 이름입니다. 키 집합 액세스에 표시된 대로 배포 인증서의 이름으로 설정합니다.
<CodesignEntitlements> 앱에 필요한 자격을 지정하는 권한 파일의 경로입니다. Platforms\MacCatalyst\Entitlements.plist로 설정합니다.
<CodesignProvision> 앱 번들에 서명할 때 사용할 프로비전 프로필입니다.
<CreatePackage> true 빌드가 끝날 때 앱에 대한 패키지(.pkg)가 만들어지도록 설정합니다.
<EnableCodeSigning> true 코드 서명을 사용하도록 설정합니다.
<MtouchLink> 프로젝트에 NoneSdkOnlyFull대한 링크 모드입니다.
<RuntimeIdentifier> 프로젝트의 RID(런타임 식별자)입니다. .NET MAUI Mac Catalyst 앱의 릴리스 빌드는 기본적으로 유니버설 앱을 지원하기 위해 런타임 식별자로 사용 maccatalyst-x64maccatalyst-arm64 사용됩니다. 단일 아키텍처만 지원하려면 지정 maccatalyst-x64 하거나 maccatalyst-arm64.
<UseHardenedRuntime> true Mac App Store 외부에 배포되는 Mac Catalyst 앱에 필요한 강화된 런타임을 사용하도록 설정합니다.

빌드 속성의 전체 목록은 프로젝트 파일 속성을 참조 하세요.

Important

이러한 빌드 속성의 값은 프로젝트 파일에 제공할 필요가 없습니다. 앱을 게시할 때 명령줄에서 제공할 수도 있습니다. 이렇게 하면 프로젝트 파일에서 특정 값을 생략할 수 있습니다.

다음 예제에서는 등록된 디바이스의 사용자에게 임시 배포를 위해 Mac Catalyst 앱을 빌드하고 서명하는 일반적인 속성 그룹을 보여 줍니다.

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Apple Development: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp (Ad-hoc)</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>

다음은 조건 검사를 통과하지 않는 한 설정이 처리되지 않도록 조건 검사를 추가하는 예제 <PropertyGroup> 입니다. 조건 검사는 다음 두 항목을 찾습니다.

  1. 빌드 구성이 .로 설정됩니다 Release.
  2. 대상 프레임워크는 텍스트 net8.0-maccatalyst가 포함된 항목으로 설정됩니다.
  3. 플랫폼이 .로 설정됩니다 AnyCPU.

이러한 조건이 실패하면 설정이 처리되지 않습니다. 더 중요한 것은 설정 및 <CodesignProvision> 설정이 <CodesignKey> 설정되지 않아 앱이 서명되지 않는다는 것입니다.

위의 속성 그룹을 추가한 후 터미널을 열고 .NET MAUI 앱 프로젝트의 폴더로 이동하여 Mac의 명령줄에서 앱을 게시할 수 있습니다. 그런 후 다음 명령을 실행합니다.

dotnet build -f net8.0-maccatalyst -c Release

게시는 앱을 빌드, 서명 및 패키지한 다음, .pkg bin/Release/net8.0-maccatalyst/publish/ 폴더에 복사합니다.

테스트를 위해 앱 배포

.pkg 등록된 디바이스의 사용자에게 배포할 수 있으며, .pkg 파일을 두 번 클릭하여 앱을 설치하여 실행할 수 있습니다.

Mac에서 앱을 안전하게 여는 방법에 대한 자세한 내용은 support.apple.com Mac에서 안전하게 앱 열기를 참조하세요.

참고 항목