Version: 2022.3
언어: 한국어
iOS 요구사항 및 호환성
Unity Xcode 프로젝트 구조

Unity의 iOS 애플리케이션 빌드 방법

Unity는 Xcode를 사용하여 iOS 애플리케이션을 빌드하므로 빌드 프로세스 및 Unity가 Xcode와 상호작용하는 방법을 파악하는데 유용합니다.최종 빌드의 대부분의 측면을 설정하기 위해서 플레이어 설정과 기타 Unity 창을 사용할 수 있지만, 더 효율적으로 제어하기 위해 Unity가 Xcode 프로젝트를 빌드하고 사용자는 Xcode 프로젝트 파일을 직접 수정해야 합니다.

빌드 프로세스

  1. Unity는 Unity 프로젝트에서 프로젝트 리소스, 코드 라이브러리, 플러그인을 수집하여 유효한 Xcode 프로젝트를 만드는 데 사용합니다.
  2. Unity는 Unity 프로젝트의 플레이어 설정과 빌드 설정에 따라 Xcode 프로젝트를 업데이트합니다.사용하는 대체 또는 추가 모드에 따라 Unity는 이전에 변경한 사항을 대체하거나 보존합니다.추가 모드에서는 이전에 변경한 사항을 보존하고 특정 값만 덮어씁니다.덮어쓰기 모드에서는 이전에 변경한 사항을 덮어쓰는 새 프로젝트를 생성합니다.
  3. Unity는 C# 스크립트를 기반으로 C++ 소스 파일을 생성하여 생성된 Xcode 프로젝트에 배치합니다.그런 다음 Xcode는 C++ 소스 파일을 libGameAssembly.ail2cpp.a라는 라이브러리로 컴파일링하는 IL2CPP 프로그램을 호출합니다.
  4. Xcode는 프로젝트를 스탠드얼론 애플리케이션으로 빌드하고 연결된 기기나 Xcode 시뮬레이터에서 배포 및 실행합니다.

대체 및 추가 모드

다른 Xcode 프로젝트가 이미 포함된 디렉토리에서 프로젝트를 빌드하는 경우, Unity는 경고를 표시하고 진행 방법을 선택하도록 합니다.다음과 같이 두 가지 옵션이 있습니다.

  • Replace:Unity는 타겟 Xcode 프로젝트 디렉토리에 있는 모든 것을 제거합니다.그런 다음 현재 비어 있는 디렉토리에 새 Xcode 프로젝트를 생성합니다.
  • Append:Unity는 타겟 Xcode 프로젝트 루트 디렉토리와 DataLibraries 하위 디렉토리에 있는 모든 파일을 제거합니다.그런 다음 이러한 디렉토리를 새로 생성된 Xcode 프로젝트 콘텐츠로 채웁니다.그러면 Unity는 최근 Unity 프로젝트 변경 사항에 따라 Xcode 프로젝트 파일을 업데이트합니다.Unity는 동일한 Unity iOS 버전으로 생성된 기존 Xcode 프로젝트에 대해서만 이 모드를 지원합니다.

참고:Append 모드를 사용하는 경우 Classes 하위 폴더에 커스텀 네이티브 코드를 저장할 수 있습니다.Unity는 덮어쓰지 않지만, 정기적으로 백업하는 것이 가장 좋습니다.

증분 빌드 파이프라인

Unity는 iOS용 Xcode 프로젝트를 생성할 때 증분 빌드 파이프라인을 사용합니다.즉, Unity는 Information Property List(plist) 파일 및 Entitlement 파일과 같은 파일을 점진적으로 빌드 및 생성합니다.증분 빌드 파이프라인이 사용하는 iOS 파일 또는 에셋을 수정하거나 이동하는 콜백을 구현하는 경우, 비증분 빌드 생성을 참조하십시오.

추가 리소스

iOS 요구사항 및 호환성
Unity Xcode 프로젝트 구조