Version: 5.4
Apple Mac
WebGL

Как разместить приложение в Apple Mac Store.

*Убедитесь в наличии верных профилей снабжения, установленных в органайзер. Также проверьте профиль в Настройки системы -> Профили.

  • Создайте набор иконок в высоком разрешении. Создайте папку с именем “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 в два раза больше чем картинка без этого окончания. Таким образом, 512x512@2x на самом деле иконка размером 1024х1024 и с разрешением 144 dpi. С помощью Терминала перейдите в папку, в которой находится папка с расширением .iconset и выполните команду.
    iconutil -c icns UnityPlayer.iconset
  • Create an info.plist and a GAMENAME.entitlements file. To do this, extract the info.plist from the Unity generated .app and modify it. The most basic GAMENAME.entitlements looks like this and it makes sure your app runs in the Apple sandbox. This one has no iCloud support:
 <?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;
      }
  }
  • Включите UseMacAppStoreValidation в PlayerSettings
  • Запустите Unity и создайте .app
  • Замените iconset.icns, созданный во 2-м шаге, нажатием ПКМ на .app и Show Contents
  • (Опционально) Замените UnityPlayerIcon в .app самостоятельно
  • Замените info.plist в .app модифицированным из 2-го шага.
  • Fix read permissions on all the content in the .app. In the Terminal type:
 chmod -R a+xr "/path/to/GAMENAME.app"
  • Sign the .App with the created entitlements from Step 3. In the Terminal type:
 codesign -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"
  • Build the installer/pkg. In the Terminal type:
 productbuild --component GAMENAME.app /Applications --sign "3rd Party Mac Developer Installer: DEVELOPER NAME" GAMENAME.pkg
  • Отправьте с помощью ApplicationLoader! Убедитесь в том,что ваш application_id в iTunesConnect находится в состоянии waiting for upload.
Apple Mac
WebGL