Version: 2019.4
macOS Player: C++ IL2CPP용 소스 코드 플러그인
Apple TV

Mac 앱 스토어에 애플리케이션 배포

이 페이지에서는 애플리케이션을 Mac 앱 스토어에 배포하는 절차에 대해 설명합니다.

먼저 키체인에 올바른 프로비저닝 프로파일인 “3rd Party Mac Developer Application” 및 “3rd Party Mac Developer Installer” 프로파일이 설치되었는지 확인해야 합니다. 자세한 방법은 서명 ID 및 인증서 유지관리에 대한 Apple의 개발자 문서를 참조하십시오.

Edit > Project Settings 로 이동하여 Player 카테고리를 선택합니다. Standalone 타겟을 선택하고 Other Settings 섹션을 펼친 다음 Mac App Store Options 로 이동합니다.

Unity는 이러한 설정을 자동으로 앱의 info.plist 파일에 CF 키로 적용합니다(자세한 내용은 CF 키에 대한 Apple의 개발자 문서 참조).

Mac 앱 스토어 옵션
Mac 앱 스토어 옵션
프로퍼티 기능
Bundle Identifier iTunesConnect App의 번들 식별자를 입력합니다. 연결된 info.plist 파일에서는 CFBundleIdentifier로 표시됩니다.

자세한 내용은 CFBundleIdentifier에 대한 Apple 개발자 문서를 참조하십시오.
Build 앱 버전의 빌드 번호를 입력합니다. 연결된 info.plist 파일에서는 CFBundleVersion으로 표시됩니다.

자세한 내용은 CFBundleVersion에 대한 Apple 개발자 문서를 참조하십시오.
Category 앱 타입에 상응하는 스트링을 입력합니다. 앱 스토어는 이 스트링을 사용하여 앱의 분류를 결정합니다. 기본적으로 이 옵션은 게임 카테고리(public.app-category.games)로 설정됩니다.

사용 가능한 카테고리 타입의 목록은 LSApplicationCategoryType에 대한 Apple 개발자 문서를 참조하십시오.
Mac App Store Validation 활성화하면 앱에 Mac 앱 스토어의 유효한 영수증이 포함되어 있을 때에만 앱이 실행됩니다. 사용자가 게임을 구매하지 않은 기기에서 게임을 실행하는 것을 방지합니다. 자체 영수증 확인을 구현하였다면 이 설정을 비활성화하십시오.

Mac App Store Validation 설정을 활성화한 다음 앱을 빌드(File > Build Settings… > Build)합니다.

그런 다음 GAMENAME.entitlements 파일을 생성하고 아무 위치에나 저장합니다. 이렇게 하는 가장 쉬운 방법은 빈 Mac 앱을 생성하는 것입니다. 이렇게 하려면 Xcode를 열고 macOS 템플릿을 사용하여 새 프로젝트를 생성한 후 성능 표시줄로 이동하여 앱 샌드박스를 활성화합니다. 그러면 기본 .entitlements 파일이 자동으로 생성됩니다.


 <?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>

Xcode 또는 기타 텍스트 에디터에서 info.plist 파일을 열고 다음 키를 추가합니다.

<key>LSApplicationCategoryType</key>

<string>{VALID APP CATEGORY, e.g.: public.app-category.kids-games }</string>

<key>CFBundleSignature</key>

<string>{4 LETTER CREATOR CODE, e. g.:  GMAD }</string>

Xcode 8.0 이상 버전을 사용한다면 info.plist 파일에 다음 필드도 추가해야 합니다.

<key>CFBundleSupportedPlatforms</key>

    <array>
    
        <string>MacOSX</string>
        
    </array>

다음으로 .app의 모든 콘텐츠에 대한 읽기 권한을 수정합니다. 이렇게 하려면 macOS 터미널에 다음을 입력합니다.

 chmod -R a+xr "/path/to/GAMENAME.app"

이전에 생성한 .entitlements로 .App에 서명합니다. 이렇게 하려면 macOS 터미널에 다음을 입력합니다.

codesign -o runtime -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"

참고: -o runtime 스위치는 코드 사인에 Hardened Runtime을 활성화하도록 명령합니다. 이는 macOS 10.14 이후 앱이 App Store 및 Apple 공증 서비스의 검증을 통과하기 위한 요구 사항입니다.

설치 프로그램/패키지를 빌드합니다. 이렇게 하려면 macOS 터미널에 다음을 입력합니다.

 productbuild --component GAMENAME.app /Applications --sign "3rd Party Mac Developer Installer: DEVELOPER NAME" GAMENAME.pkg

마지막으로 Xcode ApplicationLoader를 사용하여 앱을 제출합니다.

공증

공증은 Apple이 악성 컴포넌트를 검사하기 위해 사용하는 프로세스입니다. 이는 자동화된 시스템이며, 앱 검토가 아닙니다.

Apple 개발자 문서에 다음 내용이 명시되어 있습니다.

“macOS 10.14.5부터 새 개발자 ID 인증서로 서명된 소프트웨어와 모든 신규 또는 업데이트된 커널 확장은 실행 공증을 받아야 합니다. macOS 10.15부터 2019년 6월 1일 이후 빌드되고 개발자 ID로 배포된 모든 소프트웨어는 공증을 받아야 합니다. 하지만 Mac App Store를 통해 배포한 소프트웨어는 공증을 받을 필요가 없습니다. App Store 제출 프로세스에 이미 그와 동등한 보안 검사가 포함되기 때문입니다.”

자세한 내용은 배포 전 macOS 소프트웨어 공증에 대한 Apple 개발자 문서를 참조하십시오.

커스텀 아이콘

Unity는 기본적으로 Player 설정(Edit > Project Settings를 연 다음 Player 카테고리 선택)의 Icon 패널에서 지정한 아이콘 이미지의 크기를 축소하여 .icns 파일을 생성합니다. 이를 통해 macOS Finder와 OS 독에 앱 아이콘이 어떻게 표시되는지 결정됩니다. 그러나 원하는 경우 앱의 아이콘을 커스텀 아이콘으로 교체할 수 있습니다.

  • 폴더를 만들고 폴더 이름을 UnityPlayer.iconset(또는 info.plistCFBundleIconFile/Icon File 필드에 설정된 이름)로 지정하고 다음 이미지 이름을 삽입합니다. 이 폴더에는 .iconset 확장자로 된 파일이 포함되어 있어야 합니다.
    icon_16x16.png

        icon_16x16@2x.png

        icon_32x32.png

        icon_32x32@2x.png

        icon_128x128.png

        icon_128x128@2x.png

        icon_256x256.png

        icon_256x256@2x.png

        icon_512x512.png

        icon_512x512@2x.png

@2x.png 이미지는 파일 이름에 명시된 크기의 두 배여야 합니다. 예를 들어 512x512@2x.png 이미지는 실제 크기가 1024x1024인 이미지여야 합니다. macOS 터미널에서 .iconset 디렉토리가 있는 디렉토리로 이동한 후 다음 커맨드를 입력합니다.

    iconutil -c icns UnityPlayer.iconset

마지막으로 .app 파일을 마우스 오른쪽 버튼으로 클릭하고 Show Contents 를 선택한 후 iconset.icns를 만들어 둔 것으로 바꿉니다.


  • 2017–05–18 페이지 게시됨

  • Unity 5.6에서 업데이트된 기능

macOS Player: C++ IL2CPP용 소스 코드 플러그인
Apple TV