Version: 5.3
iOS 하드웨어 가이드
iOS 2D 텍스처 오버라이드

iOS 플레이어 설정(iOS Player Settings)

이 페이지에서는 iOS 관련 Player Settings 에 대해 자세하게 설명합니다. 일반 플레이어 설정에 대한 설명은 여기에서 확인할 수 있습니다.

Unity iOS를 사용하려면 7.0 이상이 필요합니다. iOS 6.0 이전 버전은 지원되지 않습니다.

해상도 및 프레젠테이션(Resolution and Presentation)

프로퍼티: 기능:
Orientation
Default Orientation
이 설정은 iOS 및 Android 기기에서 동일합니다.
게임의 화면 방향입니다. 다음 옵션이 있습니다.
Portrait(하단에 홈 버튼),
Portrait Upside Down(상단에 홈 버튼),
Landscape Left(오른쪽에 홈 버튼),
Landscape Right(왼쪽에 홈 버튼), 그리고
Auto Rotation(기기 방향에 따라 화면 방향 변경)
Use Animated Autorotation 방향을 변경할 때 단순히 전환만 하지 않고 화면 회전에 애니매이션 효과를 적용하려면 이 상자를 선택합니다. Default OrientationAuto Rotation 으로 설정된 경우에만 표시됩니다.
Allowed Orientations for Auto Rotation(Default OrientationAuto Rotation 으로 설정된 경우에만 표시됨)
Portrait 포트레이트 방향을 사용할 수 있습니다.
Portrait Upside Down 상하 반전된 세로 방향을 사용합니다.
Landscape Right 오른쪽 가로 방향(홈 버튼이 왼쪽 에 위치)을 사용합니다.
Landscape Left 풍경 왼쪽 방향(홈 버튼이 오른쪽 에 위치)을 사용할 수 있습니다.
Multitaking Support
Requires Fullscreen 게임을 전체 화면으로 표시해야 하는 경우 이 상자를 선택합니다.
** Status Bar**
Status Bar Hidden 애플리케이션 실행 시 상태 표시줄을 숨기려면 이 상자를 선택합니다.
Status Bar Style 애플리케이션 실행 시 표시되는 상태 표시줄의 스타일을 정의합니다. 옵션은 Default, Black Translucent, Black Opaque 입니다.
Disable Depth and Stencil 뎁스 및 스텐실 버퍼를 비활성화하려면 이 상자를 선택합니다.
Show Loading Indicator 로딩 인디케이터를 표시할 방법을 선택합니다. 옵션은 Don’t Show, White Large, White, Gray 입니다.

아이콘

프로퍼티: 기능:
Override for iPhone iPhone/iPad 게임에서 사용하려는 커스텀 아이콘을 할당하려면 이 상자를 선택합니다. 다양한 크기의 아이콘이 아래 상자에 채워집니다. 누락된 아이콘 텍스처가 있는 경우 가장 비슷한 크기의 아이콘 텍스처(해상도가 더 큰 텍스처 우선)가 적절히 확대/축소됩니다.
Prerendered icon 선택하지 않으면 iOS의 표준 스타일 효과가 애플리케이션 아이콘에 적용됩니다.

스플래시 이미지

iOS에서 스플래시 이미지를 구현하는 두 가지 방법은 Launch ImageLaunch Screen 입니다.

실행 이미지

Launch Images 는 화면 전체를 차지하는 정적 스플래시 화면 이미지입니다.

iOS 7을 사용하는 디바이스에는 Launch Images 실행 화면 옵션만 있습니다. iOS 7.0 이전 버전은 지원되지 않습니다. iOS 8 이상을 사용하는 디바이스에서는 Launch Images 또는 Launch Screens 중에서 하나를 사용할 수 있습니다.

Launch Images 는 에셋 카탈로그(Images.xcassets/LaunchImage)에 정의되어 있습니다. 항상 지원되는 각 크기 및 방향 조합마다 Launch Images 를 추가해야 합니다.

iPhone 6+만 가로 방향을 지원합니다. 나머지 iPhone에서는 세로 방향만 사용할 수 있습니다. 실행 이미지의 선택 순서는 다음과 같습니다.

  • 텍스처가 설정된 경우 특정 Launch Image 오버라이드
  • 블루블랙 컬러인 디폴트 Unity 스플래시 화면 실행 이미지

빌드의 모든 Launch Images 를 설정해야 합니다.

실행 화면

Launch Screen 은 iOS가 스플래시 화면을 디바이스에 동적으로 만드는 데 사용하는 XIB 파일입니다.

Launch Screen 은 iPad 디바이스에서 방향에 따라 다양한 콘텐츠를 표시할 수 없다는 한계가 있습니다. 따라서 Launch Screen 은 iPhone 디바이스에서만 지원됩니다. 모든 iPhone은 가로 Launch Screen 을 지원하지만, iOS의 버그로 인해 특정 iOS 버전에서는 Landscape Right 대신 Landscape Left 가 표시됩니다.

프로퍼티: 기능:
Mobile Splash Screen iOS 스플래시 화면에 사용할 텍스처를 지정합니다. 표준 스플래시 화면 크기는 320x480입니다. 설정은 Android와 iOS에서 동일합니다.
iPhone 3.5\“/Retina|iOS 3.5\“ 레티나 스플래시 화면에 사용할 텍스처를 지정합니다. 스플래시 화면 크기는 640x960입니다.| |iPhone 4\"/Retina|iOS 4\” 레티나 스플래시 화면에 사용할 텍스처를 지정합니다. 스플래시 화면 크기는 640x1136입니다.| |iPhone 4.7\”/Retina iOS 4.7\“ 레티나 스플래시 화면에 사용할 텍스처를 지정합니다. 스플래시 화면 크기는 750x1334입니다.| |iPhone 5.5\"/Retina|iOS 5.5\\” 레티나 스플래시 화면에 사용할 텍스처를 지정합니다. 스플래시 화면 크기는 1242x2208입니다.
iPhone 5.5\" Landscape/Retina iOS 5.5\" 가로/레티나 스플래시 화면에 사용할 텍스처를 지정합니다. 스플래시 화면 크기는 2208x1242입니다.
iPad Portrait iPad 세로 방향 스플래시 화면으로 사용할 텍스처를 지정합니다. 표준 스플래시 화면 크기는 768x1024입니다.
iPad Landscape iPad 가로 방향 스플래시 화면으로 사용할 텍스처를 지정합니다. 표준 스플래시 화면 크기는 1024x768입니다.
iPad Portrait/Retina iPad 레티나 가로 방향 스플래시 화면으로 사용할 텍스처를 지정합니다. 표준 스플래시 화면 크기는 1536x2048입니다.
iPad Landscape/Retina iPad 레티나 가로 방향 스플래시 화면으로 사용할 텍스처를 지정합니다. 표준 스플래시 화면 크기는 2048x1536입니다.
Launch Screen type 실행 화면 타입을 선택할 수 있습니다.
- None 실행 이미지만 사용하는 것처럼 동작합니다.
- Default 실행 이미지와 매우 유사한 실행 화면입니다. 이미지 하나가 세로와 가로에 모두 사용됩니다. 선택 순서는 iPhone 6+ 실행 이미지, 공유 모바일 실행 이미지, iPhone 6+ 디폴트 Unity 실행 이미지 순입니다. 이미지는 비율 유지 채우기 모드(aspect-fill mode)로 표시됩니다.
- Image with background, relative size 가운데 맞춤 이미지가 표시되고, 나머지 영역은 단색으로 채워집니다. 이미지 크기는 화면 크기의 사용자 지정 백분율로, 더 작은 수치(가로 방향에서는 수직, 세로 방향에서는 수평)로 산출됩니다. 사용자는 또한 세로와 가로 방향의 배경색과 이미지도 지정합니다. 이미지 선택 순서는 사용자 지정 이미지, 공유 모바일 실행 이미지, iPhone 6+ 디폴트 Unity 실행 이미지 순입니다. 이미지는 가로 세로 채우기 모드로 표시됩니다.
- Image with background, constant size 상대 크기(relative size) 옵션과 같지만, 이미지 크기가 사용자가 지정한 포인트 수로 정의됩니다.
- Custom Xib 위치에 관계 없이 사용자가 지정한 XIB 파일입니다.

In Unity Personal Edition the Unity Splash Screen displays as soon as engine initialises, in addition to your chosen splash screen. 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 애플리케이션의 성능 데이터를 수집하고 리포트를 콘솔로 출력하는 내부 프로파일러를 활성화합니다. 리포트에는 각 Unity 서브시스템이 각 프레임을 실행하는 데 소요된 밀리초 수가 포함됩니다. 30프레임의 평균 데이터가 사용됩니다.
On .Net UnhandledException .NET 처리되지 않은 예외에 대해 취하는 조치입니다. 옵션은 Crash( 애플리케이션에 크래시를 발생시켜 iOS가 크래시 보고서를 생성하여 앱 사용자가 iTunes에 제출하고 개발자가 검토하게 함)와 Silent Exit(애플리케이션이 정상적으로 종료됨)입니다.
Log ObjC uncaught exceptions 커스텀 Objective-C를 확인할 수 없는 예외 핸들러를 활성화하여 예외 정보를 콘솔로 출력합니다.
Enable Crash Report API 커스텀 크래시 리포터가 크래시를 캡처하게 합니다. 크래시 로그는 CrashReport API를 통해 스크립트에 제공됩니다.

기타 설정

프로퍼티: 기능:
Rendering
Rendering Path 게임에서 활성화된 렌더링 경로입니다.
Automatic Graphics API 사용할 그래픽스 API를 선택할 수 있습니다. 확인란을 선택하면 Unity가 메탈을 포함시키고, 메탈이 지원되지 않는 디바이스를 위해 GLES2를 백업으로 포함시킵니다. 확인란을 선택하지 않으면 그래픽스 API를 수동으로 선택하고 순서를 바꿀 수 있습니다. API를 수동으로 하나만 선택하면 앱의 info.plist가 조정되어 해당 앱 스토어 제약으로 이어집니다.
Static Batching 빌드에 정적 배칭을 사용할 때 설정합니다(디폴트로 활성화됨).
Dynamic Batching 빌드에 동적 배칭을 사용할 때 설정합니다(디폴트로 활성화됨).
GPU Skinning DX11/ES3 GPU 스키닝 활성화 여부를 설정합니다.
Identification
Bundle Identifier Apple 개발자 네트워크 계정의 권한 설정 인증서에 사용되는 문자열입니다(iOS와 Android에서 동일함).
Bundle Version 번들의 반복 횟수(릴리스되거나 릴리스되지 않음)를 식별하는 번들의 빌드 버전 번호를 지정합니다. 버전은 점으로 구분된 숫자가 포함된 문자열의 일반적인 포맷으로 지정됩니다(예: 4.3.2).
Build 빌드 번호를 여기에 입력하여 제작된 빌드 수를 추적할 수 있습니다.
Apple Developer Team ID Apple 개발자 팀 ID를 사용하여 이 프로퍼티를 설정합니다. Apple 개발자 웹사이트의 Account > Membership에서 해당 프로퍼티를 찾을 수 있습니다. 프로퍼티는 생성된 Xcode 프로젝트의 팀 ID를 설정하고, 개발자는 이를 통해 빌드 및 실행 기능을 사용할 수 있습니다. 앱이 자동으로 서명되도록 하려면 여기에서 Apple 개발자 팀 ID를 설정해야 합니다.
Configuration
Scripting Backend IL2CPP와 Mono2x 스크립팅 백엔드 중에서 선택할 수 있습니다. 디폴트는 IL2CPP이며, 일반적인 상황에서는 대부분 이전 Mono2x 백엔드로 전환할 이유가 없습니다. 명확하게 IL2CPP와 관련된 버그가 발생하는 경우를 제외하고, Mono2x를 선택하면 안 됩니다. Mono2x 빌드는 앱 스토어에 더 이상 승인되지 않습니다.
Target Device 게임의 타겟 디바이스를 설정합니다. 옵션은 iPhone Only, iPad OnlyiPhone + iPad입니다.
Target SDK 게임의 타겟 SDK를 설정합니다. 옵션은 iPhone Only, Device SDKSimulator SDK입니다.
Target minimum iOS Version 게임이 작동하는 iOS 최소 버전을 정의합니다.
Use on Demand Resource 활성화하면 하나의 디멘드 리소스를 사용할 수 있습니다.
Accelerometer Frequency 가속 센서의 샘플링 주기를 설정합니다. 옵션은 Disabled(샘플링 안 함), 15Hz, 30Hz, 60Hz100Hz입니다.
Location Usage Description 사용자 위치에 액세스하는 이유를 이 필드에 입력할 수 있습니다.
Override iPod Music 선택하면 애플리케이션 실행 시에 사용자의 iPod 음악이 음소거됩니다. 선택하지 않으면 사용자의 iPod 음악이 배경에서 계속 재생됩니다.
Prepare iOS for Recording 선택하면 마이크 녹음 API가 초기화됩니다. 그러면 녹음 지연 속도가 감소하지만 iPhone에서는 오디오 출력을 이어폰을 통해서만 재전송합니다.
Requires Persistent WiFi 애플리케이션을 사용하려면 Wi-Fi에 접속해야 하는지 지정합니다. iOS에서는 애플리케이션 실행 중에 활성 Wi-Fi 연결이 유지됩니다.
Behaviour in Background 사용자가 홈 버튼을 누르면 애플리케이션이 수행할 작업을 지정합니다.
- Suspend 기본 동작이며, 앱이 일시중지되지만 종료되지는 않습니다.
- Exit 홈 버튼을 누르면 앱이 일시중지되지 않고 종료됩니다.
- Custom 배경 프로세싱을 사용하여 원하는 동작을 구현할 수 있습니다. 여기서 예제를 확인할 수 있습니다.
Allow downloads over HTTP (nonsecure) 옵션을 활성화하면 HTTP를 통해 콘텐츠를 다운로드할 수 있습니다. 디폴트 설정인 HTTPS가 권장됩니다.
Supported URL schemes 지원되는 URL 스키마의 리스트입니다.
Disable HW Statistics 기본적으로, Unity iOS 앱에서는 개발자가 결정을 내리는 데 도움이 되는 종합 정보를 제공할 수 있도록 익명 HW 통계를 Unity로 보냅니다. 통계는 http://stats.unity3d.com/에서 확인할 수 있습니다. 이 옵션을 선택하면 앱에 대한 통계를 보내는 기능이 비활성화됩니다.
Architecture 타겟으로 지정할 아키텍처를 선택할 수 있습니다. 디폴트인 Universal이 권장됩니다. 고급 디바이스에 탑재되는 일부 앱에서는 Arm64-only 옵션을 선택하는 것이 좋을 수 있습니다. Armv7은 일관성을 유지하기 위해 사용됩니다.
- Universal 권장 옵션입니다. 두 아키텍처를 모두 지원합니다.
- Armv7 이전 Armv7 아키텍처만 지원합니다.
- Arm64 새 Arm64 아키텍처만 지원합니다.
Scripting Define Symbols 커스텀 컴파일 플래그입니다. 자세한 내용은 플랫폼 종속 컴파일 페이지를 참조하십시오.
Optimization
Api Compatibility Level 사용중인 .NET API 프로파일을 지정합니다. 자세한 내용은 아래를 참조하십시오.
- .Net 2.0 .NET 2.0 라이브러리입니다. .NET 호환성 최대, 파일 크기 최대
- .Net 2.0 Subset 전체 .NET 호환성의 부분 집합, 파일 크기 작음
Prebake Collision Meshes 빌드 시간에 충돌 데이터를 메시에 추가할지 설정합니다.
Preload Shaders 플레이어가 시작될 때 셰이더를 로드할지 설정합니다.
Preloaded Assets 플레이어 시작 시 로드할 에셋 배열입니다.
AOT compilation options 추가적인 AOT 컴파일러 옵션입니다.
SDK Version Xcode에서 빌드하는 데 사용할 iPhone OS SDK 버전을 지정합니다.
- Device SDK 실제 하드웨어에서 실행할 SDK입니다.
- Simulator SDK 시뮬레이터에서만 실행할 SDK입니다.
Target iOS Version 최종 애플리케이션을 실행할 수 있는 가장 낮은 iOS 버전을 지정합니다. 낮은 버전을 선택하면 더 많은 디바이스에서 앱을 실행할 수 있습니다. 높은 버전을 선택하면 높은 버전에 새로 도입된 기능을 이용할 수 있지만 디바이스를 업그레이드하지 않은 사용자는 앱을 사용할 수 없습니다. ‘Unknown’ 옵션을 선택하면 xcode 프로젝트에서 버전을 대신 선택할 수 있습니다(에디터에 아직 리스트에 추가되지 않은 최신/베타 iOS 버전이 있는 경우).
Strip Engine Code 코드 스트리핑을 활성화합니다. 설정은 IL2CPP 스크립팅 백엔드에서만 사용 가능합니다.
Script Call Optimization Optionally disable exception handling for a speed boost at runtime
- Slow and Safe 전체 예외 처리가 진행됩니다(Mono 스크립팅 백엔드 사용 시 디바이스 성능에 약간 영향을 미칠 수 있음).
- Fast but no Exceptions 디바이스의 예외에 대한 데이터가 제공되지 않습니다(Mono 스크립팅 백엔드 사용 시 게임 실행 속도가 빨라짐).
Vertex Compression 압축할 버텍스 채널을 선택합니다. 압축하면 메모리와 대역폭을 절약할 수 있지만 정밀도가 떨어집니다.
Optimize Mesh Data 메시에 적용된 머티리얼이 사용하지 않는 데이터(탄젠트, 노멀, 컬러, UV)를 메시에서 제거합니다.

참고: 올바른 SDK를 선택해야 합니다. 예를 들어 디바이스 를 선택한 후 Xcode에서 시뮬레이터를 타겟으로 지정하면 빌드에 실패하고 많은 오류 메시지가 나타납니다.

API 호환성 수준

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. 알아보고자 하는 API 호환성 레벨에 대한 .NET 어셈블리를 Reflector로 드래그합니다. 이러한 어셈블리는 Frameworks/Mono/lib/mono/YOURSUBSET/에서 확인할 수 있습니다.
  2. 확인하려는 타사 어셈블리도 드래그합니다.
  3. 타사 어셈블리를 마우스 오른쪽 버튼으로 클릭하고 “분석”을 선택합니다.
  4. 분석 리포트에서 “종속성” 섹션을 살펴보십시오. 타사 어셈블리가 사용하고 있지만 .NET 호환성 레벨에서는 사용할 수 없는 모든 항목이 빨간색으로 표시됩니다.

세부 정보

번들 식별자

Bundle Identifier 문자열은 빌드하는 게임의 권한 설정 프로파일과 일치해야 합니다. 식별자의 기본 구조는 com.CompanyName.GameName 입니다. 이 구조는 국제적으로 거주 지역에 따라 다를 수 있으므로, 항상 Apple에서 개발자 계정용으로 제공한 문자열을 디폴트로 사용해야 합니다. GameName은 Apple iPhone 개발자 센터 웹사이트에서 관리할 수 있는 권한 설정 인증서에서 설정됩니다. 작업이 수행되는 방법에 대한 자세한 내용은 Apple iPhone 개발자 센터 웹사이트를 참조하십시오.

스트리핑 레벨

대부분의 게임에는 필요한 dll이 모두 사용되지 않습니다. 옵션을 통해 사용되지 않은 부분을 제거하여 iOS 디바이스에서 빌드된 플레이어의 크기를 줄일 수 있습니다. 현재 선택된 옵션을 통해 일반적으로 제거되는 클래스를 게임에서 사용 중인 경우, 빌드를 만들 때 디버그 메시지가 표시됩니다.

스크립트 호출 최적화(Script Call Optimization)

iOS에서 바람직한 개발 방법은 내부적으로든 try/catch 블록을 사용하든 예외 처리에 절대 의존하지 않는 것입니다. 디폴트인 Slow and Safe 옵션을 사용하면 디바이스에서 발생하는 예외가 발견되고 스택 트레이스가 제공됩니다. Fast but no Exceptions 옵션을 사용하면 예외가 발생할 경우 게임이 충돌하고 스택 트레이스가 제공되지 않습니다. 또한 예외 정보에 대한 프로젝트별 코드 액세스가 가능하도록 AppDomain.UnhandledException 이벤트가 발생합니다. Mono 스크립팅 백엔드를 사용할 경우 프로세서 성능이 예외를 처리하는 데 유용되지 않으므로 게임 실행 속도가 빨라집니다. Fast but no Exceptions 옵션은 IL2CPP 스크립팅 백엔드 사용 시 성능상 이점이 없습니다. 게임을 세상에 공개할 때는 Fast but no Exceptions 옵션을 사용하여 출시하는 것이 가장 좋습니다.

증분 빌드

IL2CPP 스크립팅 백엔드를 통해 생성되는 C++ 코드는 점진적으로 업데이트할 수 있으므로, 증분 C++ 빌드 시스템은 변경 사항 소스 파일만 컴파일할 수 있습니다. 이 방법으로 IL2CPP 스크립팅 백엔드를 사용하여 반복 시간을 크게 단축할 수 있습니다.

증분 빌드를 사용하려면 “ Build Settings” 다이얼로그에서 “ Build”를 선택한 후 “ Append” 옵션을 선택합니다. “ Replace” 옵션을 선택하면 클린 빌드가 수행됩니다.

iOS 하드웨어 가이드
iOS 2D 텍스처 오버라이드