Version: 2023.2
언어: 한국어
iOS 환경 설정
iOS용 개발

iOS 플레이어 설정

iOS 플레이어의 플레이어 설정에서는 iOS 플랫폼을 타게팅할 때 Unity가 최종 애플리케이션을 빌드 및 표시하는 방법을 커스터마이즈할 수 있습니다. Edit > Project Settings > Player로 이동한 다음 iOS 탭을 선택하여 액세스할 수 있습니다. 일반 플레이어 설정에 대한 설명은 플레이어 설정을 참조하십시오.

iOS에 대한 Player Settings 섹션.
iOS에 대한 Player Settings 섹션.

프로퍼티 관련 문서는 다음 섹션에서 확인하십시오.

아이콘(Icon)

iOS에 대한 아이콘 설정.
iOS에 대한 아이콘 설정.

Apple 스토어의 애플리케이션 브랜딩을 커스터마이즈하려면 Icon 설정을 사용합니다.

각 iOS 기기에 대해 다음과 같은 유형의 커스텀 아이콘을 업로드 및 할당할 수 있습니다.

설정 설명
Application icons 애플리케이션에 대한 메인 기기 아이콘입니다.
Spotlight icons 스포트라이트 검색 결과에 표시되는 아이콘입니다.
Settings icons 기기의 메인 설정 페이지에 표시되는 아이콘입니다.
Notification icons 애플리케이션에서 전송한 알림에 표시되는 아이콘입니다.
Marketing icons Apple App Store에 사용되는 아이콘입니다.

아이콘 파일은 Unity가 지원하는 모든 이미지 파일이 될 수 있으며, Texture2D 에셋 형식으로 제공됩니다. 아이콘 텍스처가 누락된 경우 Unity는 가장 가까운 크기로 아이콘 텍스처의 크기를 조정하며, 기본적으로 더 큰 텍스처를 사용합니다.

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

다음 Resolution and Presentation 설정에서 화면이 표시되는 모양에 대해 다음을 커스터마이즈할 수 있습니다.

해상도

프로퍼티 설명
Resolution Scaling Mode Resolution Scaling Mode 설정을 사용하면 스케일링을 네이티브 화면 해상도 이하가 되도록 설정할 수 있습니다.
Disabled 스케일링이 적용되지 않고 애플리케이션이 네이티브 화면 해상도로 렌더링합니다.
FixedDPI 이 값을 선택하면 Target DPI 프로퍼티가 표시됩니다.

Target DPI 프로퍼티를 사용하여 게임 화면의 타겟 DPI를 설정합니다. 기기의 네이티브 화면 DPI가 이 값보다 높으면 Unity는 이 설정에 맞게 게임 화면을 다운스케일링합니다. 이는 성능 및 배터리 수명을 최적화하는 데 도움이 됩니다. 특정 DPI 설정을 타게팅하는 데 사용할 수 있습니다.

Unity는 스케일을 최소(타겟 DPI * 요소 / 화면 DPI, 1)로 계산합니다. 인자는 품질 설정에 입력한 Resolution Scaling Fixed DPI Factor 값을 사용합니다.
Reset resolution on window resize 창 크기가 변경되면 화면 해상도를 새 창 크기로 설정합니다. Resolution Scaling ModeFixed DPI로 설정하면 해상도가 Fixed DPI 프로퍼티를 기반으로 다시 계산됩니다.

기타

프로퍼티 설명
Show Loading Indicator 로딩 표시가 나타나는지 여부와 표시 방법을 지정합니다.
Don’t Show 로딩 표시를 나타내지 않습니다.
White Large 흰색 로딩 표시를 크게 나타냅니다.
White 흰색 로딩 표시를 나타냅니다.
Gray 회색 로딩 표시를 나타냅니다.

방향

프로퍼티 설명
Default Orientation 기기 화면 내 애플리케이션 창의 방향을 지정합니다.

참고: Unity는 이 설정에 지정한 값을 Android, iOS, UWP 간에 공유합니다.
Portrait 애플리케이션의 하단이 화면 하단에 맞추어 정렬되는 세로 방향입니다.
Portrait Upside Down 애플리케이션의 하단이 화면 상단에 맞추어 정렬되는 세로 방향입니다.
Landscape Right 애플리케이션의 오른쪽이 화면 상단에 맞추어 정렬되는 가로 방향입니다.
Landscape Left 애플리케이션의 왼쪽이 화면 상단에 맞추어 정렬되는 가로 방향입니다.
Auto Rotation 화면이 Allowed Orientations for Auto Rotation 섹션에 지정한 모든 방향으로 회전할 수 있습니다.
Use Animated Autorotation 사용자가 기기를 회전할 때 애니메이션화된 전환을 활성화합니다. 그렇지 않으면 화면 전환이 즉시 변경됩니다.

참고: 이 프로퍼티는 Default OrientationAuto Rotation으로 설정한 경우에만 표시됩니다.

자동 회전 허용 방향

Allowed Orientations for Auto Rotation 섹션을 사용하여 Default OrientationAuto Rotation으로 설정할 때 애플리케이션이 지원하는 방향을 지정할 수 있습니다. 예를 들어 애플리케이션을 가로 방향으로 고정하되 사용자가 가로 왼쪽과 가로 오른쪽 사이에서 변경할 수 있도록 하는 경우에 유용합니다.

참고: 이 섹션은 Orientation 섹션의 Default OrientationAuto Rotation으로 설정한 경우에만 표시됩니다.

프로퍼티 설명
Portrait 애플리케이션의 하단이 화면 하단에 맞추어 정렬되도록 세로 방향으로 설정됩니다.
Portrait Upside Down 애플리케이션의 하단이 화면 상단에 맞추어 정렬되도록 세로 방향으로 설정됩니다.
Landscape Right 애플리케이션의 오른쪽이 화면 상단에 맞추어 정렬되도록 가로 방향으로 설정됩니다.
Landscape Left 애플리케이션의 왼쪽이 화면 상단에 맞추어 정렬되도록 가로 방향으로 설정됩니다.

멀티태스킹 지원

애플리케이션을 전체 화면 모드에서 실행해야 하는 경우 Requires Fullscreen 옵션을 활성화합니다.

상태 표시줄

Status Bar 섹션을 사용하여 iOS 상태 표시줄과 관련된 파라미터를 지정할 수 있습니다.

프로퍼티 설명
Status Bar Hidden 애플리케이션이 실행될 때 상태 표시줄을 숨깁니다.
Status Bar Style 애플리케이션이 실행될 때 상태 표시줄의 스타일을 정의합니다.

추가 해상도 및 프레젠테이션 설정

프로퍼티 설명
Disable Depth and Stencil 뎁스 및 스텐실 버퍼를 비활성화합니다.
Render Over Native UI 애플리케이션이 기본 UI 위에 렌더링되도록 강제 적용합니다. 이 설정을 적용하려면 카메라의 Clear Flags를 알파 값이 1보다 작은 단색으로 설정합니다.

스플래시 이미지

가상 현실 디스플레이에 대한 커스텀 스플래시 이미지를 선택하려면 Virtual Reality Splash Image 설정을 사용합니다.일반적인 스플래시 화면 설정에 대한 내용은 스플래시 화면을 참조하십시오.

실행 화면

iOS의 실행 화면 설정.
iOS의 실행 화면 설정.

실행 화면은 iOS가 기기에서 스플래시 화면을 만드는 데 사용하는 스토리보드 파일입니다. 다음과 같은 제한이 있습니다.

  • iPad의 경우 기기 방향에 따라 다른 콘텐츠를 표시할 수 없습니다.
  • 모든 iPhone은 가로 실행 화면을 지원하지만, 버그로 인해 일부 iOS 버전에서는 Landscape Right 대신 Landscape Left 실행 화면이 표시됩니다.
  • iOS 13 이전에는 스토리보드의 루트 뷰 컨트롤러를 오버라이드할 수 없었기 때문에, 실행 화면이 모든 방향을 지원하며 상태 표시줄 동작과 같은 일부 UI 설정을 무시했습니다. iOS 13부터는 실행 화면이 방향 및 상태 표시줄 모양에 대한 앱의 설정을 완전히 준수합니다.

이러한 제한은 커스텀 스토리보드에도 적용됩니다.

iPhone Launch ScreeniPad Launch Screen 섹션에서 iPhone 및 iPad에 대한 Launch screen type을 선택합니다.

프로퍼티 설명
Default 이 옵션을 선택하면 Unity의 기본 스플래시 화면 배경과 동일한 컬러인 파란색-검정색 단색 이미지가 추가됩니다.이미지는 세로 및 가로 방향 모두에 사용되며, 종횡비 채우기 모드를 사용하여 표시됩니다.
없음 Apple은 더 이상 실행 이미지를 지원하지 않습니다.이 옵션은 이전 버전과의 호환성을 위해 존재합니다.이 옵션을 선택하면 프로젝트에 Unity의 기본 스플래시 화면이 대신 사용됩니다.
Image and background (relative size) 화면 중앙에 이미지를 표시하고 나머지 영역을 단색으로 채웁니다.
Portrait Image 세로 방향에 대한 이미지를 선택합니다.
Landscape Image 가로 방향에 대한 이미지를 선택합니다.
Background Color 이미지가 덮지 않는 스크린 공간을 채울 배경색을 선택합니다.
Fill percentage 이미지 크기를 화면 크기의 백분율로 지정합니다.Unity는 화면의 길이 또는 너비 중 더 작은 것을 기준으로 이미지 크기를 계산합니다(가로 디스플레이의 경우 수직, 세로 디스플레이의 경우 수평).
Image and background (constant size) 화면 중앙에 이미지를 표시하고 해당 영역을 단일 색상으로 채웁니다. Image and background (relative size)와 동일한 옵션이 있지만, 이미지 크기를 백분율이 아닌 점으로 지정한다는 점이 다릅니다.

팁: 포인트와 픽셀은 동일하지 않습니다. 픽셀(px)은 이미지에 있는 하나의 점입니다. 포인트(pt)는 1/72인치의 길이를 측정하는 단위입니다. 픽셀 크기는 화면 크기와 해상도에 상대적인 반면, 포인트 크기는 모든 화면의 크기입니다. 자세한 내용은 크기 단위에 대한 W3C 지침을 참조하십시오.
Custom XIB (Deprecated) 이 옵션을 선택하면 Custom XIB (Deprecated) 버튼이 표시됩니다.
Custom XIB (Deprecated) 커스텀 XIB 파일을 로딩 화면으로 사용하려면 이 버튼을 선택합니다.
Custom Storyboard 이 옵션을 선택하면 Custom Storyboard 버튼이 표시됩니다.
Custom Storyboard 커스텀 스토리보드 파일을 로딩 화면으로 사용하려면 이 버튼을 선택합니다.

참고: Unity Personal 구독에서 Unity 스플래시 화면은 선택한 스플래시 화면 전에 표시됩니다.

커스텀 스토리보드

iPhone 또는 iPad에 대한 Launch screen type 드롭다운 메뉴에서 Custom Storyboard 옵션을 선택하면 Custom Storyboard 버튼이 나타납니다.

Custom Storyboard 버튼을 클릭하여 기기에서 게임이 시작될 때 표시할 스토리보드를 선택합니다. 여기에 스토리보드를 표시하려면 먼저 Xcode에서 스토리보드를 생성하고 프로젝트에 복사해야 합니다. 자세한 내용은 스토리보드, 씬 및 연결을 참조하십시오.

커스텀 스토리보드를 사용하지 않는 경우 Unity의 빌트인 실행 화면을 사용하여 스플래시 이미지를 구현할 수 있습니다.

디버깅 및 크래시 보고

디버깅 및 크래시 보고 설정을 사용하여 앱의 성능에 대한 데이터를 수집하고 크래시를 해결하십시오.

디버깅

프로퍼티 설명
내부 프로파일러 활성화(지원 중단 예정) 이 기능은 지원 중단 예정이며 Unity의 향후 버전에서 삭제됩니다. 대신 프로파일러 창을 사용하십시오.

프로파일러는 애플리케이션 성능 데이터를 수집하여 콘솔에 보고서를 출력합니다. 이 보고서에는 각 Unity 보조 시스템이 각 프레임에서 실행되는 데 걸리는 시간(밀리초)이 30프레임의 평균으로 표시됩니다.

크래시 보고

프로퍼티 설명
On .Net UnhandledException 처리되지 않은 .NET 예외가 발생했을 때 Unity가 수행할 작업을 선택합니다.
Crash 애플리케이션 크래시가 발생할 경우 사용자가 iTunes에 제출하고 개발자가 크래시를 해결하는 데 사용할 수 있는 크래시 보고서를 생성합니다.
Silent Exit 애플리케이션이 오류 없이 종료되며 크래시 보고서도 생성되지 않습니다.
Log Obj-C Uncaught Exceptions 콘솔에 Objective-C를 확인할 수 없는 예외 정보를 출력합니다.
Enable Crash Report API 크래시를 캡처하기 위해 커스텀 크래시 리포터를 활성화합니다. CrashReport API를 통해 크래시 로그에 액세스하기 위한 스크립트를 사용할 수 있습니다.

기타 설정

Other Settings 섹션에서 다양한 플레이어 설정을 구성할 수 있습니다. 제공되는 옵션들은 다음의 그룹으로 나뉩니다.

렌더링(Rendering)

다음 설정을 사용하여 Unity가 iOS 플랫폼용으로 애플리케이션을 렌더링하는 방법을 커스터마이즈합니다.

프로퍼티 설명
Color Space 렌더링에 사용할 색 공간을 선택합니다. 자세한 내용은 리니어 렌더링 개요를 참조하십시오.
Gamma 감마 색 공간은 일반적으로 프레임 버퍼 포맷에 대해 채널당 8비트로 제한되는 구형 하드웨어의 조명을 계산하는 데 사용됩니다. 이제 모니터는 디지털 방식이지만 여전히 감마로 인코딩된 신호를 입력으로 사용합니다.
Linear 리니어 색 공간 렌더링은 더 정밀한 결과를 제공합니다. 리니어 색 공간에서 작업하도록 선택하면 에디터는 기본적으로 sRGB 샘플링을 사용합니다. 텍스처가 리니어 색 공간에 있는 경우, 리니어 색 공간에서 작업하고 각 텍스처에 대해 sRGB 샘플링을 비활성화해야 합니다.
Color Gamut 렌더링에 사용할 색 영역을 추가하거나 제거할 수 있습니다. 더하기(+) 아이콘을 클릭하면 사용 가능한 영역의 리스트를 확인할 수 있습니다. 색 영역은 모니터나 화면과 같은 특정 기기에서 사용 가능한 색상 범위를 정의합니다. sRGB 영역은 기본적이며 필수 영역입니다.
Multithreaded Rendering 그래픽스 API 호출을 Unity의 메인 스레드에서 별도의 워커 스레드로 이동하려면 이 옵션을 활성화합니다. 그러면 메인 스레드에 대한 CPU 사용이 많은 애플리케이션의 성능을 개선할 수 있습니다.
Static Batching 정적 배칭을 사용하려면 이 옵션을 활성화합니다.
Dynamic Batching 빌드에 동적 배칭을 사용하려면 체크박스를 선택합니다(기본적으로 활성화됨).
Sprite Batching Threshold 배칭 시 사용되는 최대 버텍스 임계값을 제어합니다.
GPU SKinning 이 옵션을 활성화하면 Metal GPU 컴퓨트 스키닝을 사용하여 CPU 리소스를 확보할 수 있습니다.
Graphics Jobs (Experimental) 이 옵션을 활성화하면 Unity가 그래픽스 작업(렌더 루프)을 다른 CPU 코어에서 실행 중인 워커 스레드로 오프로드하도록 지시합니다. 이는 병목 현상이 발행할 수 있는 메인 스레드의 Camera.Render에서 소요되는 시간을 줄이기 위한 것입니다.
참고: 이 기능은 실험 단계에 있습니다. 이 기능을 사용해도 프로젝트의 성능이 개선되지 않을 수 있으며, 새로운 크래시가 발생할 수 있습니다.
Texture compression format iOS의 기본 텍스처 압축 포맷으로 ASTC나 PVRTC를 선택합니다. 자세한 내용은 텍스처 압축 포맷 개요를 참조하십시오.
Normal Map Encoding 노멀 맵 인코딩을 설정하려면 XYZ 또는 DXT5nm-style을 선택합니다. 이 설정은 노멀 맵에 사용되는 인코딩 방식과 압축 형식에 영향을 줍니다. DXT5nm-style 노멀 맵은 품질이 더 높지만 셰이더에서 디코딩하는 데 비용이 더 많이 듭니다.
Lightmap Encoding 라이트맵의 인코딩 방식과 압축 형식을 정의합니다.
Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다.
HDR Cubemap Encoding HDR 큐브맵의 인코딩 방식과 압축 형식을 정의합니다.
Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다. 자세한 내용은 라이트맵: 기술 정보를 참조하십시오.
Lightmap Streaming 라이트맵에 밉맵 스트리밍을 사용하려면 이 옵션을 활성화합니다. Unity는 라이트맵을 생성할 때 이 설정을 모든 라이트맵에 적용합니다.
참고: 이 설정을 사용하려면 Texture Streaming Quality 설정을 활성화해야 합니다.
Streaming Priority 밉맵 스트리밍 시스템의 모든 라이트맵에 대한 우선순위를 설정합니다. Unity는 라이트맵을 생성할 때 이 설정을 모든 라이트맵에 적용합니다.
숫자가 클수록 우선순위가 더 높습니다. 유효값 범위는 –128에서 127까지입니다.
Frame Timing Stats CPU/GPU 프레임 타이밍 통계를 수집하려면 이 옵션을 활성화합니다.
Allow HDR Display Output 애플리케이션이 실행될 때 HDR 모드 출력을 활성화합니다. 이 기능을 지원하는 디스플레이에서만 작동합니다. 디스플레이가 HDR 모드를 지원하지 않는 경우 게임은 표준 모드에서 실행됩니다.
Use HDR Display Output 메인 디스플레이가 HDR을 지원하는지 확인하며, 지원하는 경우 애플리케이션이 실행될 때 HDR 출력으로 전환합니다.

참고 이 옵션은 Allow HDR Display Output이 활성 상태인 경우에만 사용할 수 있습니다.
Swap Chain Bit Depth 스왑 체인 버퍼의 각 컬러 채널에서 비트 수를 선택합니다. Bit Depth 10 또는 Bit Depth 16을 선택할 수 있습니다. 비트 뎁스에 대한 자세한 내용은 D3DHDRDisplayBitDepth에 대한 스크립팅 API 페이지를 참조하십시오.

참고 이 옵션은 Use HDR Display Output이 활성 상태인 경우에만 사용할 수 있습니다.
Bit Depth 10 Unity는 R10G10B10A2 버퍼 포맷과 Rec2020 기본을 ST2084 PQ 인코딩과 함께 사용합니다.
Bit Depth 16 Unity는 R16G16B16A16 버퍼 포맷과 Rec709 기본을 리니어 컬러(인코딩 없음)와 함께 사용합니다.
Virtual Texturing 씬에 고해상도 텍스처가 많은 경우 이 옵션을 활성화하면 GPU 메모리 사용량과 텍스처 로딩 시간을 줄일 수 있습니다. 자세한 내용은 가상 텍스처링을 참조하십시오.

참고: 이 설정을 적용하려면 Unity 에디터를 다시 시작해야 합니다.
360 Stereo Capture Unity가 양안 360 이미지와 동영상을 캡처할 수 있는지를 나타냅니다. 자세한 내용은 스테레오 360 이미지 및 동영상 캡처를 참조하십시오.
Load/Store Action Debug Mode 모바일 플랫폼에서 렌더링 문제를 일으킬 수 있는 정의되지 않은 픽셀을 강조 표시합니다. 이는 Unity 에디터 게임(Game) 뷰에 영향을 주며, Build Settings에서 Development Build를 선택한 경우 빌드된 애플리케이션에 영향을 줍니다. 자세한 내용은 LoadStoreActionDebugModeSettings를 참조하십시오.

식별

앱의 식별 정보를 입력합니다.

프로퍼티 설명
Override Default Bundle Identifier 번들 식별자를 수동으로 설정할 수 있는지를 나타냅니다.
참고:이 설정은 macOS, iOS, tvOS, Android에 영향을 미칩니다.
Bundle Identifier 빌드 중인 애플리케이션의 번들 식별자를 입력합니다. 식별자의 기본 구조는 com.CompanyName.ProductName입니다. 이 구조는 거주 국가에 따라 달라질 수 있으므로 항상 Apple이 개발자 계정에 제공하는 문자열을 기본값으로 사용하십시오. 프로비저닝 인증서에서 ProductName을 사용할 수 있습니다.

번들 식별자는 com.YourCompanyName.YourProductName 명명 규칙을 따라야 하며, 영숫자 및 하이픈 문자만 포함해야 합니다. 자세한 내용은 CFBundleIdentifier를 참조하십시오.
중요: 유효하지 않은 문자를 입력하면 모두 하이픈으로 자동 교체됩니다.

이 프로퍼티를 설정하려면 Override Default Bundle Identifier를 활성화합니다.
Version 번들의 릴리스 버전 번호 문자열(예: 4.3.6)을 입력합니다.

이 값은 관련 info.plist 파일에 CFBundleShortVersionString으로 표시됩니다. 자세한 내용은 CFBundleShortVersionString을 참조하십시오.
Build 이 버전의 앱에 대한 빌드 번호를 입력합니다.

이 값은 관련 info.plist 파일에 CFBundleVersion으로 표시됩니다. 자세한 내용은 CFBundleVersion을 참조하십시오.
Signing Team ID Apple 개발자 팀 ID를 입력합니다. 이 ID는 Apple 개발자 웹사이트의 Xcode 도움말에서 찾을 수 있습니다. 이렇게 하면 생성된 Xcode 프로젝트의 팀 ID가 설정되어 개발자가 Build and Run 기능을 사용할 수 있습니다. 앱의 자동 서명을 위해서는 Apple 개발자 팀 ID를 입력해야 합니다.

자세한 내용은 팀 프로비저닝 프로파일 생성을 참조하십시오.
Automatically Sign 이 옵션을 활성화하면 Xcode가 빌드를 자동으로 서명하도록 명령합니다.

설정

프로퍼티 설명
Scripting Backend 사용할 스크립팅 백엔드를 선택합니다.스크립팅 백엔드는 Unity가 프로젝트에서 C# 코드를 컴파일하고 실행하는 방식을 결정합니다.
Mono C# 코드를 .NET 공용 중간 언어(CIL)로 컴파일하고 공용 언어 런타임을 사용하여 해당 CIL을 실행합니다.자세한 내용은 Mono를 참조하십시오.
IL2CPP C# 코드를 CIL로 컴파일하고, CIL을 C++로 전환한 다음, 해당 C++을 네이티브 기계어 코드로 컴파일하여 런타임에 바로 실행할 수 있습니다.자세한 내용은 IL2CPP를 참조하십시오.
API Compatibility Level 프로젝트에서 사용할 수 있는 .NET API를 선택합니다. 이 설정은 타사 라이브러리와의 호환성에 영향을 줄 수 있습니다. 그러나 에디터별 코드(에디터 디렉토리 내의 코드 또는 에디터별 어셈블리 정의 내의 코드)에는 영향을 주지 않습니다.

팁: 타사 어셈블리에 문제가 발생하는 경우 아래의 API Compatibility Level 섹션에서 제안해 볼 수 있습니다.
.Net Framework .NET Framework 4 (.NET Standard 2.0 프로파일의 모든 항목과 추가 API 포함)와 호환됩니다. .NET Standard 2.0에 포함되지 않은 API에 액세스하는 라이브러리를 사용하는 경우 이 옵션을 선택하십시오. 크기가 큰 빌드를 생성하며, 일부 플랫폼에서는 추가 API를 사용하지 못할 수 있습니다. 자세한 내용은 추가 클래스 라이브러리 어셈블리 레퍼런스를 참조하십시오.
.Net Standard 2.1 크기가 작은 빌드를 생성하며, 크로스 플랫폼을 완벽하게 지원합니다.
Editor Assemblies Compatibility Level 에디터 어셈블리에서 사용할 .NET API를 선택합니다.
.NET Framework .NET Framework 4(.NET Standard 2.1 프로파일의 모든 항목과 추가 API 포함)와 호환됩니다. .NET Standard 2.1에 포함되지 않은 API에 액세스하는 라이브러리를 사용하는 경우 이 옵션을 선택하십시오. 크기가 큰 빌드를 생성하며, 일부 플랫폼에서는 추가 API를 사용하지 못할 수 있습니다. 자세한 내용은 추가 클래스 라이브러리 어셈블리 레퍼런스를 참조하십시오.
.NET Standard .NET Standard 2.1과 호환됩니다. 크기가 작은 빌드를 생성하며, 크로스 플랫폼을 완벽하게 지원합니다.
IL2CPP Code Generation Unity가 IL2CPP 코드 생성을 관리하는 방식을 정의합니다.

참고: 이를 사용하려면 Scripting BackendIL2CPP로 설정합니다.
C++ Compiler Configuration IL2CPP 생성 코드를 컴파일할 때 사용되는 C++ 컴파일러 설정을 선택합니다.
Debug Debug 설정은 모든 최적화를 해제하므로 코드 빌드 속도는 빨라지지만 실행 속도는 느려집니다.
Release Release 설정을 사용하면 최적화가 가능하므로 컴파일된 코드가 더 빠르게 실행되고 바이너리 크기는 더 작아지지만 컴파일하는 데 더 오래 걸립니다.
Master Master 설정은 가능한 모든 최적화를 가능하게 하여 성능을 최대한 끌어올립니다.예를 들어 MSVC++ 컴파일러를 사용하는 플랫폼에서 이 옵션을 사용하면 링크 타임 코드를 생성할 수 있습니다.이 설정을 사용하여 코드를 컴파일하면 릴리스 설정을 사용할 때보다 훨씬 오래 걸릴 수 있습니다.Unity는 빌드 시간 증가가 허용되는 경우 Master 설정을 사용하여 게임의 최종 버전을 빌드할 것을 권장합니다.
IL2CPP Stacktrace Information 스택 추적에 포함할 정보를 선택합니다. 자세한 정보 유형은 IL2CPP를 사용하는 관리 스택 추적을 참조하십시오.
Method Name 관리되는 각 메서드를 스택 추적에 포함합니다.
Method Name, File Name, and Line Number 파일 및 줄 번호 정보와 관리되는 각 메서드를 스택 추적에 포함합니다.

참고: 이 옵션을 사용하면 빌드 시간과 빌드된 프로그램의 최종 크기가 증가할 수 있습니다.
Use incremental GC 가비지 컬렉션을 여러 프레임에 걸쳐 분산하는 점진적 가비지 컬렉션을 사용하여 가비지 컬렉션과 관련된 프레임 기간의 스파이크를 줄입니다.자세한 내용은 자동 메모리 관리를 참조하십시오.
Allow downloads over HTTP HTTP를 통한 콘텐츠 다운로드를 허용할지 여부를 나타냅니다.기본 옵션은 Not allowed로 설정되어 있는데, 이는 권장 프로토콜이 더 안전한 HTTPS이기 때문입니다.
Not Allowed HTTP를 통한 다운로드를 허용하지 않습니다.
Allowed in Development Builds 개발 빌드에서는 HTTP를 통한 다운로드만 허용합니다.
Always Allowed 개발 및 릴리스 빌드에서 HTTP를 통한 다운로드를 허용합니다.
Camera Usage Description 기기의 카메라에 액세스하는 이유를 입력합니다.
Microphone Usage Description 기기의 마이크에 액세스하는 이유를 입력합니다.
Location Usage Description 기기의 위치에 액세스하는 이유를 입력합니다.
Use On-Demand Resources 온디맨드 리소스를 사용하고 Variant map for app slicing을 활성화합니다.
Accelerometer Frequency 가속 센서를 샘플링하는 빈도를 선택합니다. 더 나은 성능을 위해서는 더 낮은 빈도를 선택해야 합니다. 앱에서 가속 센서를 사용하지 않는 경우 Disabled를 선택합니다.
Mute Other Audio Sources Unity 애플리케이션이 백그라운드에서 실행 중인 애플리케이션의 오디오를 중지할지를 나타냅니다. 이 옵션을 활성화하지 않으면 백그라운드 애플리케이션의 오디오가 Unity 애플리케이션과 함께 계속 재생됩니다.
Prepare iOS for Recording 마이크 녹음 API를 초기화합니다. 그러면 녹음 지연 속도가 감소하지만 iPhone에서는 오디오 출력을 이어폰을 통해 재전송합니다.
Force iOS Speakers when Recording 헤드폰이 연결되어 있고 녹음 중인 경우에도 휴대폰의 오디오 출력을 내부 스피커를 통해 전송합니다.
Requires Persistent WiFi Wi-Fi 연결을 요청하려면 이 옵션을 활성화합니다. 이렇게 하면 앱이 실행되는 동안 Wi-Fi 연결이 활성 상태로 유지됩니다.
Supported URL schemes 지원되는 URL 체계의 목록입니다.

새 체계를 추가하려면 Size 프로퍼티의 값을 늘린 다음 표시되는 새 Element 상자에서 열 URL 레퍼런스를 설정합니다.
Target Device 앱이 타게팅하는 기기를 선택합니다.
Target SDK 앱이 타게팅하는 SDK를 선택합니다.

참고: 올바른 SDK를 선택해야 합니다. 예를 들어 Unity에서 Device SDK를 선택하고 Xcode의 Simulator를 타게팅하는 경우 빌드가 실패할 수 있습니다.
Target minimum iOS Version 앱이 작동하는 iOS의 최소 버전을 선택합니다.
Enable ProMotion Support ProMotion 디스플레이에서 고주파수 새로고침 속도(120Hz)를 사용합니다. 이 경우 앱이 더 많은 배터리 전력을 사용해야 할 수 있습니다.
Requires ARKit support 앱 스토어에 퍼블리시할 때 앱을 iPhone 6s/iOS 11 이상의 기기로 제한합니다.
Automatically add capabilities entitlements.plist 파일을 생성하고 앱에서 구현하는 iOS API(예: 게임 센터 또는 알림)에 대한 기능을 추가합니다. 자세한 내용은 자격을 참조하십시오.
Defer system gestures on edges 사용자가 시스템 제스처를 실행하기 위해 두 번 스와이프해야 하는 모서리를 하나 이상 선택합니다.
Hide home button on iPhone X 앱이 실행 중인 경우 iPhone X 기기에서 홈 버튼을 숨깁니다.
Render Extra Frame on Pause 앱을 일시 정지하는 프레임 후에 추가 프레임을 생성합니다. 이를 통해 앱은 백그라운드에서 실행될 때 일시 정지 상태를 표시하는 그래픽을 표시할 수 있습니다.
Enable Custom Background Behaviors 사용자가 앱을 백그라운드로 보낼 경우 앱이 할 수 있는 작업을 선택합니다. 예시는 BackgroundFetch GitHub 프로젝트를 참조하십시오.
Variant map for app slicing Variant map for app slicing 섹션을 확장하여 스크립트에서 설정된 배리언트 이름 목록을 찾습니다. 배리언트에 대한 자세한 내용은 앱 슬라이싱을 참조하십시오.

참고: 이 프로퍼티를 보려면 Use on-demand resources를 활성화합니다.
Architecture 타게팅할 아키텍처를 선택합니다. iOS에는 ARM64만 사용할 수 있습니다.
Active Input Handling 사용자의 입력을 처리하는 방식을 선택합니다.
Input Manager (Old) 기존의 입력 설정을 사용합니다.
Input System Package (New) 입력 시스템을 사용합니다. 이 옵션을 사용하려면 InputSystem 패키지를 설치해야 합니다.
Both 두 시스템을 모두 사용합니다.

API 호환성 레벨

모든 타겟에 Mono API 호환성 수준을 선택할 수 있습니다. 간혹 타사 .NET 라이브러리에는 .NET 호환성 수준을 벗어난 기능이 사용되기도 합니다. Windows를 사용하는 경우 타사 소프트웨어 ILSpy를 사용하여 발생하는 상황과 해결 방법을 알아볼 수 있습니다. 다음의 단계를 따르십시오.

  1. Windows용 ILSpy를 설치합니다.
  2. 문제가 있는 API 호환성 수준의 .NET 어셈블리를 ILSpy로 드래그합니다. .NET 어셈블리는 Frameworks/Mono/lib/mono/YOURSUBSET/에 있습니다.
  3. 서드파티 어셈블리를 드래그합니다.
  4. 서드파티 어셈블리를 마우스 오른쪽 버튼으로 클릭하고 Analyze를 선택합니다.
  5. 분석 보고서에서 Depends on 섹션을 살펴봅니다.타사 어셈블리가 의존하고 있지만 선택한 .NET 호환성 레벨에서 사용할 수 없는 항목은 빨간색으로 하이라이트됩니다.

셰이더 설정

프로퍼티 설명
Shader Precision Model 샘플러의 기본 정밀도와 셰이더에 사용되는 half의 정의를 선택합니다. Unified를 선택하면 기본 샘플러 정밀도를 최대 정밀도로 설정하고 macOS의 셰이더에서 16비트 부동 소수점 연산을 활성화할 수 있습니다. 자세한 내용은 ShaderPrecisionModel을 참조하십시오.
Strict shader variant matching 셰이더 배리언트가 누락된 경우 오류 셰이더를 사용하여 콘솔에 오류를 표시합니다.
Keep Loaded Shaders Alive 로딩된 모든 셰이더를 활성 상태로 유지하고 언로딩을 방지합니다.

셰이더 배리언트 로딩

이 설정을 사용하여 런타임에 셰이더가 사용하는 메모리 양을 제어할 수 있습니다.

프로퍼티 설명
Default chunk size (MB) 모든 플랫폼에서 Unity가 빌드한 애플리케이션에 저장하는 압축 셰이더 배리언트 데이터 청크의 최대 크기를 설정합니다.기본값은 16입니다.자세한 내용은 셰이더 로딩을 참조하십시오.
Default chunk count 모든 플랫폼에서 Unity가 메모리에 보관하는 압축 해제된 청크 수에 대한 기본 제한을 설정합니다.기본값은 0으로 제한이 없습니다.
Override 이 빌드 타겟에 대해 Default chunk sizeDefault chunk count 를 오버라이드할 수 있습니다.
Chunk size (MB) 이 빌드 타겟에서 Default chunk size (MB) 값을 오버라이드합니다.
Chunk count 이 빌드 타겟에서 Default chunk count 값을 오버라이드합니다.

스크립트 컴파일

iOS에 대한 Script Compilation 설정.
iOS에 대한 Script Compilation 설정.
프로퍼티 설명
Scripting Define Symbols 커스텀 컴파일 플래그를 설정합니다.

자세한 내용은 플랫폼 종속 컴파일을 참조하십시오.
Additional Compiler Arguments 이 리스트에 항목을 추가하여 Roslyn 컴파일러에 추가 인자를 전달합니다.각 추가 인자에 대해 새 항목을 하나씩 사용합니다.
새 항목을 생성하려면 Add(+)를 클릭합니다.항목을 제거하려면 Remove(-)를 클립합니다.

원하는 인자를 모두 추가하면 Apply를 클릭하여 향후 컴파일에 추가 인자를 포함합니다.Revert를 클릭하면 이 리스트를 가장 최근 적용된 상태로 재설정할 수 있습니다.
Suppress Common Warnings C# 경고 CS0169CS0649 표시 여부를 나타냅니다.
Allow ‘unsafe’ Code 사전 정의된 어셈블리(예: Assembly-CSharp.dll)에서 ‘안전하지 않은’ C# 코드 컴파일에 대한 지원을 활성화합니다.
어셈블리 정의 파일(.asmdef)의 경우, .asmdef 파일 하나를 클릭하고 표시되는 인스펙터 창에서 해당 옵션을 활성화합니다.
Use Deterministic Compilation -deterministic C# 플래그를 사용한 컴파일 방지 여부를 나타냅니다. 이 설정을 활성화하면 컴파일된 어셈블리는 컴파일될 때마다 바이트 단위로 동일하게 컴파일됩니다.

자세한 내용은 코드 생성을 제어하는 C# 컴파일러 옵션을 참조하십시오.

최적화(Optimization)

프로퍼티 설명
Prebake Collision Meshes 빌드 시 충돌 데이터를 메시에 추가합니다.
Preloaded Assets 시작 시 로드할 플레이어의 에셋 배열을 설정합니다.
새 에셋을 추가하려면 Size 프로퍼티의 값을 늘린 다음, 표시되는 새 Element 상자에서 로드할 에셋에 대한 레퍼런스를 설정합니다.
AOT Compilation Options AOT(ahead-of-time) 컴파일에 대한 추가 옵션입니다. 이렇게 하면 빌드된 iOS 플레이어의 크기를 최적화할 수 있습니다.
Strip Engine Code Unity Linker 도구가 프로젝트에서 사용하지 않는 Unity 엔진 기능의 코드를 제거하도록 하려면 이 옵션을 활성화합니다. 이 설정은 IL2CPP 스크립팅 백엔드에서만 사용할 수 있습니다. 대부분의 앱은 사용 가능한 모든 DLL을 사용하지 않습니다. 이 옵션은 앱에서 사용하지 않는 DLL을 제거하여 빌드된 플레이어의 크기를 줄입니다. 앱에서 현재 설정에 일반적으로 제거되는 클래스를 하나 이상 사용하는 경우, 앱을 빌드하려고 할 때 Unity가 디버그 메시지를 표시합니다.
Managed Stripping Level Unity가 사용되지 않는 관리되는 (C#) 코드를 얼마나 적극적으로 제거할지 선택합니다. Unity가 앱을 빌드하면 Unity Linker 프로세스는 프로젝트가 사용하는 관리되는 DLL에서 사용되지 않은 코드를 제거할 수 있습니다. 코드를 제거하면 결과 실행 파일의 크기가 작아질 수 있지만, 사용 중인 코드가 제거될 수도 있습니다.

이러한 옵션과 IL2CPP를 사용한 바이트코드 제거에 대한 자세한 내용은 ManagedStrippingLevel을 참조하십시오.
Minimal 클래스 라이브러리, UnityEngine, Windows Runtime 어셈블리를 제거하고 모든 기타 어셈블리를 복사하려면 이 옵션을 사용하십시오.
Low 연결할 수 없는 관리되는 코드를 제거하여 빌드 크기와 Mono/IL2CPP 빌드 시간을 줄입니다.
Medium UnityLinker를 실행하여 Low로 달성할 수 있는 수준 이상으로 코드 크기를 줄입니다. 커스텀 link.xml 파일 지원이 필요할 수 있으며, 일부 리플렉션 코드 경로가 동일하게 작동하지 않을 수 있습니다.
High UnityLinker가 최대한 많은 코드를 제거합니다. 이렇게 하면 코드 크기가 Medium으로 달성할 수 있는 수준 이상으로 줄어들지만 일부 메서드의 관리되는 코드 디버깅이 더 이상 작동하지 않을 수 있습니다. 커스텀 link.xml 파일 지원이 필요할 수 있으며, 일부 리플렉션 코드 경로가 동일하게 작동하지 않을 수 있습니다.
Script Call Optimization 런타임 시점에 속도를 높이기 위해 예외 처리를 비활성화하는 방법을 선택합니다. 자세한 내용은 iOS 최적화를 참조하십시오.
Vertex Compression 채널당 버텍스 압축을 설정합니다. 이는 프로젝트의 모든 메시에 영향을 줍니다.
일반적으로 버텍스 압축은 메모리의 메시 데이터 크기를 줄이고, 파일 크기를 줄이고, GPU 성능을 향상시키는 데 사용됩니다.

버텍스 압축 설정 방법과 이 설정의 제한에 대한 자세한 내용은 메시 데이터 압축을 참조하십시오.
Optimize Mesh Data 사용되지 않는 버텍스 속성을 빌드에 사용된 메시에서 제거하려면 이 옵션을 활성화하십시오. 이 옵션은 메시에 있는 데이터 양을 줄여서 빌드 크기, 로딩 시간, 런타임 메모리 사용량을 줄이는 데 도움이 될 수 있습니다.

경고: 이 설정을 활성화한 경우 런타임 시 머티리얼이나 셰이더 설정을 변경하지 마십시오.

자세한 내용은 PlayerSettings.stripUnusedMeshComponents를 참조하십시오.
Texture MipMap Stripping 모든 플랫폼에 대해 밉맵 스트리핑을 활성화합니다. 빌드 시 사용되지 않는 밉맵을 텍스처에서 제거합니다.
Unity는 밉맵의 값을 현재 플랫폼에 대한 품질 설정과 비교하여 사용되지 않는 밉맵을 판단합니다. 밉맵 값이 현재 플랫폼에 대한 모든 품질 설정 값에서 벗어나는 경우, Unity는 빌드 시 이러한 밉맵을 빌드에서 제거합니다. QualitySettings.masterTextureLimit가 제거된 밉맵 값으로 설정된 경우, Unity는 제거되지 않은 밉맵 값에 최대한 가깝게 값을 설정합니다.

스택 추적

각 로그 타입에 해당하는 옵션을 활성화하여 원하는 로깅 타입을 선택합니다.

프로퍼티 설명
없음 어떤 로그도 기록하지 않습니다.
ScriptOnly 스크립트를 실행할 때만 로그합니다.
Full 항상 로그합니다.

자세한 내용은 스택 추적 로깅을 참조하십시오.

레거시

프로퍼티 설명
Clamp BlendShapes (Deprecated) SkinnedMeshRenderers의 블렌드 셰이프 가중치 범위를 고정하려면 이 옵션을 활성화합니다.

PlayerSettingsiOS

iOS 환경 설정
iOS용 개발