Version: 5.3 (switch to 5.4b)
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
  • Создайте файл info.plist и GAMENAME.entitlements. Самый простой способ сделать это - использовать http://jemast.com/unity/entitlements.php чтобы сгенерировать их.Вы также можете извлечь info.plist из сгенерированного в Unity .app и модифицировать его одного. Самое основное 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;
      }
  }
  • Включите UseMacAppStoreValidation в PlayerSettings
  • Запустите Unity и создайте .app
  • Замените iconset.icns, созданный во 2-м шаге, нажатием ПКМ на .app и Show Contents
  • (Опционально) Замените UnityPlayerIcon в .app самостоятельно
  • Замените info.plist в .app модифицированным из 2-го шага.
  • Исправьте права на чтение во всё контенте .app. Введите в терминале:
 chmod -R a+xr "/path/to/GAMENAME.app"
  • Подпишите .app созданным файлом в 3-м шаге. Введите в терминале:
 codesign -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"
  • Скомпилируйте инсталлятор/пакет. Введите в терминале:
 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