Version: 2017.2
iOS 빌드 프로세스 살펴보기
iOS 스플래시 화면 커스터마이징

Unity XCode 프로젝트 구조

iOS 플랫폼용으로 프로젝트를 빌드할 때 Unity는 XCode 프로젝트가 들어있는 폴더를 생성합니다. 이 프로젝트는 컴파일을 하기 위해, 기기에 배포 전 앱에 서명을 하기 위해 필요하며 앱 스토어에 배포하기 위해 게임을 준비하여 번들화 하도록 해 줍니다.

iOS 프로젝트를 빌드하기 전에 Player Settings 에서 Bundle Identifier 를 설정했는지 확인해야 합니다. 또한 게임을 장치 또는 시뮬레이터에서 실행하기 위한 SDK version 을 선택할 수 있습니다.

Classes 폴더

이 폴더는 Unity 런타임 및 Objective-C를 통합하는 코드를 담고 있습니다. 여기에 저장되어 있는 main.mmUnityAppController.mm/h와 같은 파일이 앱의 엔트리 포인트이며, 자체 AppDelegate를 UnityAppController에서 파생하여 생성할 수 있습니다. AppController.h를 포함하는 플러그인이 있다면 그 대신 간단히 UnityAppController.h를 포함하면 됩니다. Plugins/iOS 폴더에 AppController.mm/h가 있다면 이 파일을 병합하고 파일명을 바꿀 수 있습니다.

또한 iPhone_Profiler.h 파일은 내부 프로파일러를 활성화시키는 조건부 컴파일러를 정의합니다. 이 폴더는 자주 변경되지 않는 코드가 위치하는 곳이며 커스텀 클래스를 여기에 둘 수 있습니다. 덧붙이기 모드가 선택되어 있으면 이 폴더의 변경사항은 빌드 간에 보존되지만 이 기능은 여러 빌드 타겟은 지원하지 않으며 Libraries 폴더가 고정 구조여야 합니다.

내부 프로파일러는 빠르고, 비간섭적이며, 기본 정보를 제공합니다.

  • 프레임 시간을 가장 많이 소비하는 서브시스템
  • .NET 힙 크기
  • 가비지 콜렉션(GC) 이벤트 횟수/지속시간 자세한 내용은 내장 프로파일러를 참조하십시오.

Data 폴더

이 폴더는 직렬화된 게임 에셋 및 .NET 어셈블리(dll 파일)의 전체 코드(또는 스트리핑이 켜져 있을 경우 메타데이터)를 포함합니다. machine.config 파일은 보안, WebRequest 등의 다양한 .NET 서비스의 설정입니다. 이 폴더의 콘텐츠 매 빌드마다 갱신되며, 이 내용을 수정해서는 안 됩니다.

Libraries 폴더

이 폴더는 ARM 어셈블러(s 파일)로 변환된 .NET 어셈블리를 포함합니다. libiPhone-lib.a 파일은 Unity 런타임 정적 라이브러리이며, RegisterMonoModules.cpp는 Unity 네이티브 코드를 .NET과 바인딩합니다. 이 폴더의 내용은 매 빌드마다 갱신되며, 이 내용을 수정해서는 안 됩니다.

기타 새로 생성되는 커스텀 폴더

커스텀 파일은 여기에 저장하면 됩니다.

그래픽 파일

이 파일은 아이콘 및 스플래시 화면(png 파일)입니다. 이 파일은 Unity가 자동으로 관리합니다. 이 파일은 Player Settings 에서 설정할 수 있습니다.

프로퍼티 리스트 파일

info.plist는 Unity의 Player Settings 를 통해 관리합니다. 이 파일은 교체될 때가 아니라 플레이어를 빌드할 때 업데이트됩니다. 꼭 필요한 경우가 아니라면 이 파일을 수정해서는 안 됩니다.

기타 파일

이 파일에는 XCode 프로젝트 파일(xcodeproj 파일) 및 Project Navigator 에서만 표시되는 프레임워크 링크가 포함됩니다.

iOS 빌드 프로세스 살펴보기
iOS 스플래시 화면 커스터마이징