Version: 2017.2
Путеводитель по оборудованию под iOS
iOS 2D Texture Overrides

iOS Player Settings

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

Note that Unity iOS requires 7.0 or higher. iOS 6.0 and earlier are not supported.

Resolution and presentation

Свойство: Функция:
Идентификация
(Данная настройка одинакова как для Android, так и для iOS устройств) 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 Check this box if you want orientation changes to animate the screen rotation rather than just switch. This is only visible when Default Orientation is set to Auto Rotation.
Allowed Orientations for Auto Rotation (only visible when 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 (home button on the left side).
Landscape Left Allow landscape left orientation (home button is on the right side).
Multitaking Support
Requires Fullscreen Check this box if your game requires fullscreen.
Строка состояния
Status Bar Hidden Определяет будет ли скрыта строка состояния во время запуска приложения или нет.
Status Bar Style Define the style of the status bar when the application launches. The options are Default, Black Translucent and Black Opaque.
Disable Depth and Stencil Check this box to disable the depth and stencil buffers.
Show Loading Indicator Select how the loading indicator be displayed. The options are Don’t Show, White Large, White, and Gray.

Icon

Свойство: Функция:
Override for iPhone Смотрите, может вам захочется назначить свои собственные иконки, которые будут использоваться в вашей игре под iPhone/iPad. Иконки различных размеров должны заполнять квадратные рамки, расположенные ниже.
Prerendered icon Если не отмечено, то к иконке iOS приложения будут применены эффекты сгиба (bevel) и блеска (sheen).

Splash Image

There are two ways to implement splash images on iOS: Launch Images and Launch Screens.

Launch Images

Launch Images are static splash screen images that occupy the entire screen.

For devices that use iOS 7, Launch Images are the only launch screen option. There is no support for versions prior to iOS 7.0. For devices that use iOS 8 or newer, you can use either Launch Images or Launch Screens.

Launch Images are defined in an Asset catalog (Images.xcassets/LaunchImage). Always add a Launch Screen for each supported size and orientation combination.

Only iPhone 6+ supports landscape orientation; other iPhones can only use portrait. Launch Images are selected in the following order:

  • The specific Launch Image override, if the texture is set
  • Default Unity splash screen launch image, which is a solid blue-black color

You need to set all Launch Images for your build.

Launch Screens

A Launch Screen is an XIB file from which iOS creates a splash screen dynamically on the device.

Launch Screens have a limitation, in that it is not possible to display different contents depending on orientation on iPad devices. Therefore, Launch Screens are only supported on iPhone devices. All iPhones support landscape Launch Screens; however, due to a bug in iOS, Landscape Left is shown instead of Landscape Right on certain iOS versions.

Свойство: Функция:
Mobile Splash Screen Определяет текстуру, которая будет использована для заставки в iOS. Стандартный размер заставки равен 320x480. (Он одинаков как для Android, так и для iOS)
iPhone 3.5"/Retina Specifies texture which should be used for iOS 3.5" Retina Splash Screen. Splash Screen size is 640x960.
iPhone 4"/Retina Specifies texture which should be used for iOS 4" Retina Splash Screen. Splash Screen size is 640x1136.
iPhone 4.7"/Retina Specifies texture which should be used for iOS 4.7" Retina Splash Screen. Splash Screen size is 750x1334.
iPhone 5.5"/Retina Specifies texture which should be used for iOS 5.5" Retina Splash Screen. Splash Screen size is 1242x2208.
iPhone 5.5" Landscape/Retina Specifies texture which should be used for iOS 5.5" Landscape/Retina Splash Screen. Splash Screen size is 2208x1242.
iPad Portrait Определяет текстуру, которая будет использована для альбомной ориентации заставки в iPad. Стандартный размер заставки равен 768x1024.
iPad Landscape Определяет текстуру, которая будет использована для альбомной ориентации заставки в iPad. Стандартный размер заставки равен 1024x768.
iPad Portrait/Retina Определяет текстуру, которая будет использована в высоком разрешении для портретной ориентации заставки в iPad. Стандартный размер заставки равен 1536x2048.
iPad Landscape/Retina Определяет текстуру, которая будет использована в высоком разрешении для альбомной ориентации заставки в iPad. Стандартный размер заставки равен 2048x1536.
Launch Screen type Allows you to select between the launch screen types
- None The behavior is as if only launch images are used.
- Default A launch screen that is very much like a launch image. One image is selected for portrait and landscape. The selection order: iPhone 6+ launch images, shared mobile launch image, default unity launch image for iPhone 6+. The images are displayed using aspect-fill mode.
- Image with background, relative size A center-aligned image is shown, with the rest of area filled with solid color. The image size is user-specified percentage of the screen size, computed in the smaller dimension (vertical on landscape, horizontal in portrait orientations). User also specifies background color and images for portrait and landscape orientations. Image selection order: the user-specified image, shared mobile launch image, default unity launch image for iPhone 6+. The images are displayed using aspect-fill mode.
- Image with background, constant size Same as relative size option except that the size of the image is defined by user-specified number of points.
- Custom Xib An user-specified XIB file from any location.

In Unity Personal Edition the Unity Splash Screen displays as soon as engine initialises, in addition to your chosen splash screen.

Debugging and Crash Reporting

Свойство: Функция:
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

Свойство: Функция:
Визуализация
Rendering Path The rendering path enabled for the game.
Automatic Graphics API Allows you to select which graphics API is used. When checked, Unity will include Metal, and GLES2 as a fallback for devices where Metal is not supported. When unchecked, you can manually pick and reorder the graphics APIs. Manually picking just one API will adjust your app’s info.plist which will result in appropriate app store restrictions.
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?
Идентификация
###Идентификатор бандлов Строка используется в вашем сертификате обеспечения, полученном из вашего Apple Developer Network аккаунта (относиться как к iOS, так и к Android)
Bundle Version Указывает номер версии сборки бандла, который также указывает на итерацию (выпущен или нет) сам бандл. Версия указывается в общем формате строки, содержащей цифры разделённые между собой точками (например 4.3.2).
Build The build number can be entered here to allow you to keep track of the number of builds that have been made
iOS Developer Team ID Set this property with your Apple Developer Team ID. You can find this on the Apple Developer website under Account > Membership. This sets the Team ID for the generated Xcode project, allowing developers to use the Build and Run functionality. An Apple Developer Team ID must be set here for automatic signing of your app.
Настройки
Scripting Backend Allows you to select between IL2CPP and Mono2x scripting backends. The default is IL2CPP, and in most normal situations there should be no reason to switch to the older Mono2x backend. Unless you are running into bugs specifically relating to IL2CPP, you should not select Mono2x. Mono2x builds are no longer accepted in the App store.
Target Device Which devices are targeted by the game? The options are iPhone Only, iPad Only and iPhone + iPad.
Target SDK Which SDK is targeted by the game? The options are iPhone Only, Device SDK and Simulator SDK.
Target minimum iOS Version Defines the minimum version of iOS that the game will work on.
Use on Demand Resource When enabled allows you to use one demand resources.
Accelerometer Frequency How often is the accelerometer sampled? The options are Disabled (ie, no samples are taken), 15Hz, 30Hz, 60Hz and 100Hz.
Location Usage Description This field allows you to enter the reason for accessing the users location.
Mute Other Audio Sources Enable this if you want your Unity application to stop audio from applications running in the background. Disable this if you want audio from background applications to continue playing alongside your Unity application.
Prepare iOS for Recording When selected, the microphone recording APIs are initialised. This makes recording latency lower, though on iPhones it re-routes audio output via earphones only.
Requires Persistent WiFi Specifies whether the application requires a Wi-Fi connection. iOS maintains the active Wi-Fi connection while the application is running.
Behaviour in Background Указывает, требуется ли приложению завершить свою работу при сворачивании на тех iOS устройствах, где поддерживается многозадачность.
- Suspend This is the standard behaviour, the app is suspended, but not quit.
- Exit Instead of suspending, the app will quit when the home button is pressed.
- Custom You can implement your own behaviour with background processing. See an example here.
Allow downloads over HTTP (nonsecure) When this option is enabled it will allow you to download content over HTTP. Default and reccomended is HTTPS.
Supported URL schemes A list of supported URL schemes.
Disable HW Statistics By default, Unity iOS apps send anonymous HW statistics to Unity so we can provide you with aggregated information to help you make decisions as a developer. These stats can be found at http://stats.unity3d.com/. Checking this option disables the sending of these statistics for your app.
Architecture Allows you to select which architecture to target. Universal is recommended default. Some apps that are shipping on high-end devices only might consider selecting the Arm64-only option. Armv7 is for consistency purposes.
- Universal The recommended option. Supports both architectures.
- Armv7 Support only the older Armv7 architecture.
- Arm64 Support only the newer Arm64 architecture.
Scripting Define Symbols Пользовательские флаги компиляции (обратитесь к странице [платформо-зависимая компиляция] для более подробной информации).
Оптимизация
Api Compatibility Level Определяет активный .NET API профиль. См. ниже
- .Net 2.0 Библиотеки .Net 2.0. Максимальная совместимость с .net, самый большой размер файлов
- .Net 2.0 Subset Подмножество полной совместимости с .net, меньший размер файлов
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 компилятора. Дополнительные опции AOT компилятора.
Разрешение экрана Определяет версию iPhone OS SDK для сборки в среде Xcode
- Device SDK Запуск SDK на текущем оборудовании.
- Simulator SDK Запуск SDK только на симуляторе.
Target iOS Version Specifies lowest iOS version where final application will able to run. Selecting a lower version will mean more devices will be able to run your app. Selecting a higher version means you gain access to features introduced in those higher versions, but users who have not upgraded their device will not be able to use the app. Selecing the ‘Unknown’ option allows you to pick one in your xcode project instead (in case there are newer/beta versions of iOS which have not yet been added to our list in the editor).
Strip Engine Code Enable code stripping. (This setting is only available with the IL2CPP scripting backend.)
###Оптимизация вызова скриптов Optionally disable exception handling for a speed boost at runtime. See iOS Optimization for details.
- Slow and Safe Полная обработка исключений окажет некоторое влияния на производительность самого устройства
- Fast but no Exceptions Нет данных предусмотренных для исключений на устройстве, но при этом игра будет работать быстрее
Vertex Compression Select which vertex channels should be compressed. Compression can save memory and bandwidth but precision will be lower.
Optimize Mesh Data Удаляет все данные из мешей, которые не требуются применённым к ним материалам (касательные, нормали, цвета, 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. 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. Перетащите .net узлы для уровня API совместимости рассматриваемый в отношении отражателя (reflector). Их можно найти в Frameworks/Mono/lib/mono/YOURSUBSET/
  2. Также перетащите в вашу стороннюю сборку.
  3. Нажмите правой кнопкой на вашей сторонней библиотеке и выберите “Analyze”.
  4. В отчёте по анализу, проверьте секцию под названием “Depends on”. Всё что зависит от сторонней сборки, но доступно вам лишь на уровне совместимости .net, будет выделено там красным цветом.

Детали

Идентификатор бандлов

Bundle Identifier строка должна совпадать с резервным профилем создаваемой игры. Базовой структурой идентификатора является com.CompanyName.GameName. Структура зависит от места вашего проживания, поэтому придерживайтесь по-умолчанию строки, предоставляемой вам Apple для вашего аккаунта разработчика (Developer Account). Ваше игровое имя (GameName) настраивается в ваших резервных сертификатах, которые управляются с Apple iPhone Developer Center сайта. Пожалуйста обратитесь к сайту Apple iPhone Developer Center для получения дополнительной информации по тому, как это делается.

Stripping Level

Большинство игр не используют все необходимые dll библиотеки. Используйте эту опцию если вам хочется избавиться от неиспользуемых частей для снижения размера встроенного в iOS устройства проигрывателя. Если ваша игра использует классы, которые могут быть легко извлечены за счёт выделенной вами опции, вы будете оповещены об этом сообщением отладчика (Debug) когда будете делать сборку.

Оптимизация вызова скриптов

Хорошим тоном при разработке под iOS является то, что никогда не стоит полагаться на обработку исключений (либо внутренне, либо путём использования try/catch блоков). При использовании стандартной опции Slow and Safe, любые исключения, которые будут зафиксированы на устройстве будут пойманы и помещены в трассировочный стек. При использовании опции Fast but no Exceptions, любые исключения которые будут зафиксированы повесят игру, в результате чего трассировочный стек так и не будет предоставлен. Однако при этом игра будет работать быстрее, так как процессор не будет нагружаться хранением исключений. При выпуске своей игры в большой мир, лучше всего делать это с включённой опцией Fast but no Exceptions.

Incremental Builds

The C++ code generated by the IL2CPP scripting backend can be updated incrementally, allowing incremental C++ build systems to compile only the changes source files. This can significantly lower iteration times with the IL2CPP scripting backend.

To use incremental builds, choose the “Append” option after selecting “Build” from the “Build Settings” dialog. The “Replace” option will perform a clean build.


  • 2017–31–08 Page amended with editorial review

  • Mute Other Audio Sources added in 5.5

Путеводитель по оборудованию под iOS
iOS 2D Texture Overrides