Apple Mac
WebGL

Apple Mac 스토어에 응용 프로그램 제출 방법

  • 올바른 프로비저닝 프로파일(Provisioning profiles)이 오거나이저(Organiser)에 설치되어 있는지 확인 하십시오. System Preferences->Profiles에서도 프로비저닝 프로파일을 확인하십시오.

  • 고해상도 Icon Set을 만드십시오. UnityPlayer.iconset(또는 info.plist에서 표시 설정)라는 이름의 폴더를 만들고 다음 이미지 이름을 포함합니다. 폴더 이름에는 ’. 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와 이름이 붙은 이미지는 써진 크기의 2배 크기인 것을 확인합니다. 즉, 512x512 @2x의 경우 1024x1024 이미지이고 144 dpi입니다. 터미널에서 .iconset 디렉토리가 배치되어 있는 디렉토리로 이동하여 다음 명령을 실행합니다 :
    iconutil -c icns UnityPlayer.iconset

*info.plistGAMENAME.entitlements파일을 만듭니다. 가장 간단한 방법은 http://jemast.com/unity/entitlements.php에 생성한 것을 사용하는 것 입니다. Unity에서 생성된 .app에서 info.plist를 추출하여 수정하는 방법도 있습니다. 기본적인 GAMENAME.entitlements는 다음과 같이 표시되고 Apple 샌드 박스에서 응용 프로그램을 실행할 수 있도록 합니다. iCloud 대응은 하지 않습니다. :

 <?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>
  • Modify the following sections of the info.plist file to make it suitable for your app:
<key>CFBundleDevelopmentRegion</key>
<string>{YOUR REGION}</string>
<key>CFBundleGetInfoString</key>
<string>{DESCRIPTIVE INFO}</string>
<key>CFBundleIdentifier</key>
<string>com.{YOUR COMANY}.{YOUR APP NAME}</string>
<key>CFBundleName</key>
<string>{YOUR APP NAME}</string>
<key>CFBundleShortVersionString</key>
<string>{VERSION NUMBER, e.g. 1.0.0}</string>
<key>CFBundleSignature</key>
<string>{4 LETTER CREATOR CODE, e. g.:  GMAD }</string>
<key>CFBundleVersion</key>
<string>{VERSION NUMBER, e.g. 100}</string>
  • Add this key to the info.plist file :
<key>LSApplicationCategoryType</key>
<string>{VALID APP CATEGORY, e.g.: public.app-category.kids-games }</string>
  if (Screen.fullScreen)
  {
      //MacBook Pro Retina 15: width = 2880 , MacBook Pro Retina 13: width = 2496 ?
      //could check device model name, but not sure now about retina 13 device model name
      //if last resolution is almost retina resolution...
      var resolutions : Resolution[] = Screen.resolutions;
      if (resolutions.length && resolutions[resolutions.length - 1].width > 2048)
      {
          Screen.fullScreen = false;
          yield;
          Screen.fullScreen = true;
          yield;
      }
  }
  • PlayerSettings에서 UseMacAppStoreValidation 활성화
  • Unity를 실행하고 app을 빌드
  • iconset.icns을 2 단계에서 만든 것으로 대체하기 위해 .app을 오른쪽 클릭하여 Show Contents를 선택
  • (옵션) .app에 있는 UnityPlayerIcon을 자신의 것으로 대체 *. app의 info.plist를 2단계에서 수정한 것으로 대체
  • .app의 모든 콘텐츠 읽기 권한을 수정. 터미널의 경우 :
 chmod -R a+xr "/path/to/GAMENAME.app"

*. App을 3단계에서 만든 Entitlments에서 서명합니다. 터미널의 경우 :

 codesign -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"
  • 인스톨러/pkg를 빌드. 터미널의 경우 :
 productbuild --component GAMENAME.app /Applications --sign "3rd Party Mac Developer Installer: DEVELOPER NAME" GAMENAME.pkg
  • Application Loader를 사용하여 보냅니다. iTunesConnect가 waiting for upload 상태임을 application_id 로 확인합니다.
Apple Mac
WebGL