Apple Mac
WebGL

Como entregar una aplicación para la Mac Store de Apple

  • Asegúrate que tengas los perfiles correctos de aprovisionamiento instalados en Organiser. Verifica también el perfil de aprovisionamiento en System Preferences -> Profiles.

  • Crea conjuntos de íconos de alta resolución. Haz una carpeta llamada UnityPlayer.iconset (o la que esté configurada para mostrarse en info.plist) con los siguientes nombres de imagen dentro. Asegúrate que la carpeta tenga la extensión .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
  • Verifica que las imágenes @2x tengan como tamaño el doble de lo que dice en el nombre. Por ejemplo, 512x512@2x es en realidad una imagen de 1024x1024 con 144 dpi. Desde el Terminal, navega hacia donde esté el directorio .iconset y realiza esta operación.
    iconutil -c icns UnityPlayer.iconset
  • Crea dos archivos llamados info.plist y GAMENAME.entitlements. La forma más fácil de hacerlo es usando http://jemast.com/unity/entitlements.php para que sean generados. Puedes también extrael el info.plist desde el .app generado por Unity y modificarlo. El GAMENAME.entitlements más básico se vé de la siguiente forma, esto asegurará que tus apps se ejecuten en el sandbox de Apple. Este ejemplo no tiene soporte para 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>
  • Haz ajustes para problemas de pantalla completa en Macbook Pro Retina (ver http://forum.unity3d.com/threads/145534-Mountain-Lion-MacBook-Pro-Retina-gt-problem-for-Unity-games](http://forum.unity3d.com/threads/145534-Mountain-Lion-MacBook-Pro-Retina-gt-problem-for-Unity-games)) agregando algo como lo siguiente. ¡Esto necesita ser llamado sólo una vez! Esto creará un parpadeo ya que entra y sale del modo de pantalla completa.
  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;
      }
  }
  • Habilita el botón de UseMacAppStoreValidation en PlayerSettings
  • Ejecuta Unity y construye el .app
  • Reemplaza iconset.icns con lo que creado en el Paso 2 dando clic derecho en el .app y escogiendo Show Contents
  • (Opcional) Reemplaza el UnityPlayerIcon en el .app por un ícono propio
  • Reemplaza el info.plist en el .app con el que fue modificado en el Paso 2.
  • Ajusta los permisos de lectura de todo el contenido del .app. Escribe en el Terminal:
 chmod -R a+xr "/path/to/GAMENAME.app"
  • Firma el .app con los entitlements creados en el Paso 3. Escribe en el Terminal:
 codesign -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"
  • Construye el installer/pkg. Escribe en el Terminal:
 productbuild --component GAMENAME.app /Applications --sign "3rd Party Mac Developer Installer: DEVELOPER NAME" GAMENAME.pkg
  • ¡Haz el envío usando el ApplicationLoader! Asegúrate que tu application_id en iTunesConnect esté en el estado waiting for upload.
Apple Mac
WebGL