Legacy Documentation: Version 5.0
iOS Hardware Guide
iOS 2D Texture Overrides

iOS Player Settings

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

This page details the Player Settings specific to iOS. A description of the general Player Settings can be found here.

Resolution And Presentation

Property: Function:
Resolution
Default Orientation (This setting is shared between iOS and Android devices)
Default Orientation The game’s screen orientation. The options are Portrait (home button at the bottom), Portrait Upside Down (home button at the top), Landscape Left (home button on the right side), Landscape Right (home button on the left side) and Auto Rotation (screen orientation changes with device orientation).
Use Animated Autorotation Should orientation changes animate the screen rotation rather than just switch? (Only visible when the Default Orientation is set to Auto Rotation.)
Allowed Orientations for Auto Rotation (Only visible when the Default Orientation is set to Auto Rotation.)
Portrait Allow portrait orientation.
Portrait Upside Down Allow portrait upside down orientation.
Landscape Right Allow landscape right orientation (ie, home button on the left side).
Landscape Left Allow landscape left orientation (home button is on the right side).
Status Bar
Status Bar Hidden Specifies whether the status bar is initially hidden when the application launches.
Status Bar Style Specifies the style of the status bar as the application launches. The options are Default, Black Translucent and Black Opaque.
Use 32-bit Display Buffer Specifies if Display Buffer should be created to hold 32-bit color values (by default, it uses 16-bit values). Use it if you see banding or need alpha in your Image Effects, as they will create RTs in the same format as the Display Buffer.
Disable Depth and Stencil Should the depth and stencil buffers be disabled?
Show Loading Indicator How should the loading indicator be displayed? The options are Don’t Show, White Large, White and Gray.

Icon

Property: Function:
Override for iOS Check if you want to assign a custom icon you would like to be used for your iPhone/iPad game. Different sizes of the icon should fill in the squares below.
Prerendered icon If unchecked iOS applies sheen and bevel effects to the application icon.

Splash Image

Property: Function:
Mobile Splash Screen (Pro-only feature) Specifies texture which should be used for iOS Splash Screen. Standard Splash Screen size is 320x480.(This is shared between Android and iOS)
iPhone 3.5"/Retina (Pro-only feature) Specifies texture which should be used for iOS 3.5" Retina Splash Screen. Splash Screen size is 640x960.
iPhone 4"/Retina (Pro-only feature) Specifies texture which should be used for iOS 4" Retina Splash Screen. Splash Screen size is 640x1136.
iPad Portrait (Pro-only feature) Specifies texture which should be used as iPad Portrait orientation Splash Screen. Standard Splash Screen size is 768x1024.
High Res. iPad Portrait Specifies texture which should be used as the high res iPad Portrait orientation Splash Screen. Standard Splash Screen size is 1536x2048.
iPad Landscape (Pro-only feature) Specifies texture which should be used as iPad Landscape orientation Splash Screen. Standard Splash Screen size is 1024x768.
High res. iPad Landscape (Pro-only feature) Specifies texture which should be used as the high res iPad Landscape orientation Splash Screen. Standard Splash Screen size is 2048x1536.

Debugging and Crash Reporting

Property: Function:
Enable Internal Profiler Enables an internal profiler which collects performance data of the application and prints a report to the console. The report contains the number of milliseconds that it took for each Unity subsystem to execute on each frame. The data is averaged across 30 frames.
On .Net UnhandledException The action taken on .NET unhandled exception. The options are Crash (the application crashes hardly and forces iOS to generate a crash report that can be submitted to iTunes by app users and inspected by developers), Silent Exit (the application exits gracefully).
Log ObjC uncaught exceptions Enables a custom Objective-C Uncaught Exception handler, which will print exception information to console.
Enable Crash Report API Enables a custom crash reporter to capture crashes. Crash logs will be available to scripts via CrashReport API.

Other Settings

Property: Function:
Rendering
Rendering Path The rendering path enabled for the game.
Static Batching Set this to use Static batching on your build (enabled by default).
Dynamic Batching Set this to use Dynamic Batching on your build (enabled by default).
GPU Skinning Should DX11/ES3 GPU skinning be enabled?
Identification
Bundle Identifier The string used in your provisioning certificate from your Apple Developer Network account(This is shared between iOS and Android)
Bundle Version Specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The version is specified in the common format of a string containing numbers separated by dots (eg, 4.3.2).
Configuration
Target Device Which devices are targeted by the game? The options are iPhone Only, iPad Only and iPhone + iPad.
Target Resolution What resolution should be used for the game? (This setting does not have any effect on devices with a maximum resolution of 480x320.) The options are Native(Default Device Resolution), Auto (Best Performance), Auto (Best Quality), 320p (iPhone), 640p (iPhone Retina Display) and 768p (iPad).
Graphics Level Select OpenGL ES level to use.
Accelerometer Frequency How often is the accelerometer sampled? The options are Disabled (ie, no samples are taken), 15Hz, 30Hz, 60Hz and 100Hz.
Override iPod Music If selected, the application will silence user’s iPod music. Otherwise user’s iPod music will continue playing in the background.
Prepare iOS for Recording
Requires Persistent WiFi Specifies whether the application requires a Wi-Fi connection. iOS maintains the active Wi-Fi connection while the application is running.
Exit on Suspend Specifies whether the application should quit when suspended to background on iOS versions that support multitasking.
Scripting Define Symbols Custom compilation flags (see the platform dependent compilation page for details).
Optimization
Api Compatibility Level Specifies active .NET API profile. See below
        .Net 2.0 .Net 2.0 libraries. Maximum .net compatibility, biggest file sizes
        .Net 2.0 Subset Subset of full .net compatibility, smaller file sizes
Prebake Collision Meshes Should collision data be added to meshes at build time?
Preload Shaders Should shaders be loaded when the player starts up?
Preloaded Assets An array of assets to be loaded when the player starts up.
AOT compilation options Additional AOT compiler options.
SDK Version Specifies iPhone OS SDK version to use for building in Xcode
        Device SDK SDK to run on actual hardware.
        Simulator SDK SDK to run only on the simulator.
Target iOS Version Specifies lowest iOS version where final application will able to run. The options are 6.0, 7.0 and Unknown.
Stripping Level Options to strip out scripting features to reduce built player size(This setting is shared between iOS and Android Platforms)
        Disabled No reduction is done.
        Strip Assemblies Level 1 size reduction.
        Strip ByteCode Level 2 size reduction (includes reductions from Level 1).
        Use micro mscorlib Level 3 size reduction (includes reductions from Levels 1 and 2).
Script Call Optimization Optionally disable exception handling for a speed boost at runtime
        Slow and Safe Full exception handling will occur with some performance impact on the device
        Fast but no Exceptions No data provided for exceptions on the device, but the game will run faster
Optimize Mesh Data Remove any data from meshes that is not required by the material applied to them (tangents, normals, colors, UV).

Note: Be sure to select the correct SDK - if you select Device, say, but then target the Simulator in Xcode then the build will fail with a lot of error messages.

API Compatibility Level

You can choose your mono api compatibility level for all targets except the webplayer. Sometimes a 3rd party .net dll will use things that are outside of the .net compatibility level that you would like to use. In order to understand what is going on in such cases, and how to best fix it, get “Reflector” on windows.

  1. Drag the .net assemblies for the api compatilibity level in question into reflector. You can find these in Frameworks/Mono/lib/mono/YOURSUBSET/
  2. Also drag in your 3rd party assembly.
  3. Right click your 3rd party assembly, and select “Analyze”.
  4. In the analysis report, inspect the “Depends on” section. Anything that the 3rd party assembly depends on, but is not available in the .net compatibility level of your choice will be highlighted in red there.

Details

Bundle Identifier

The Bundle Identifier string must match the provisioning profile of the game you are building. The basic structure of the identifier is com.CompanyName.GameName. This structure may vary internationally based on where you live, so always default to the string provided to you by Apple for your Developer Account. Your GameName is set up in your provisioning certificates, that are manageable from the Apple iPhone Developer Center website. Please refer to the Apple iPhone Developer Center website for more information on how this is performed.

Stripping Level

Most games don’t use all necessary dlls. With this option, you can strip out unused parts to reduce the size of the built player on iOS devices. If your game is using classes that would normally be stripped out by the option you currently have selected, you’ll be presented with a Debug message when you make a build.

Script Call Optimization

A good development practice on iOS is to never rely on exception handling (either internally or through the use of try/catch blocks). When using the default Slow and Safe option, any exceptions that occur on the device will be caught and a stack trace will be provided. When using the Fast but no Exceptions option, any exceptions that occur will crash the game, and no stack trace will be provided. However, the game will run faster since the processor is not diverting power to handle exceptions. When releasing your game to the world, it’s best to publish with the Fast but no Exceptions option.

iOS Hardware Guide
iOS 2D Texture Overrides