You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
286 lines
14 KiB
Plaintext
286 lines
14 KiB
Plaintext
INTSourceChangelist:2430506
|
|
Availability: Public
|
|
Title: 고급 iOS PC/Mac 작업방식
|
|
Crumbs:%ROOT%, Platforms, Platforms/iOS
|
|
Description:iOS 플랫폼용 개발을 위한 셋업하기 입니다.
|
|
prereq:Platforms/iOS/QuickStart
|
|
|
|
[TOC(start:2 end:2)]
|
|
|
|
%Globals:OSSelect%
|
|
|
|
## 개요
|
|
|
|
iOS 디바이스용 컴파일 개발 환경 셋업은 물론, iOS 플랫폼을 대상으로 언리얼 프로젝트를 디플로이(deploy, 설치)하기 위한 일반적인 작업방식을 다룬 설명서입니다.
|
|
|
|
[PUBLISH:Rocket]
|
|
[REGION:note]
|
|
현재 언리얼 엔진 런처 버전을 사용중이라면 블루프린트 기반 프로젝트의 경우 윈도우에서 iOS 로만 디플로이 가능합니다.
|
|
[/REGION]
|
|
[/PUBLISH]
|
|
|
|
## 디바이스 / SDK
|
|
UE4 는 아이폰4/아이패드2 이상, iOS 6.0 이상에서 작동합니다.
|
|
|
|
특정 엔진 기능과의 디바이스 호환성을 확인하려면 [](Platforms\iOS\DeviceCompatibility) 문서를 참고해 주시기 바랍니다.
|
|
|
|
## 지원되는 환경설정
|
|
[OBJECT:ToggleButtonContent]
|
|
[PARAMLITERAL:category]
|
|
OS
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:id]
|
|
windows
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:active]
|
|
active_button_content
|
|
[/PARAMLITERAL]
|
|
[PARAM:content]
|
|
[INCLUDE:#WindowsConfig]
|
|
[/PARAM]
|
|
[/OBJECT]
|
|
[OBJECT:ToggleButtonContent]
|
|
[PARAMLITERAL:category]
|
|
OS
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:id]
|
|
mac
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:active]
|
|
[/PARAMLITERAL]
|
|
[PARAM:content]
|
|
[INCLUDE:#MacOSConfig]
|
|
[/PARAM]
|
|
[/OBJECT]
|
|
|
|
<!--
|
|
[EXCERPT:WindowsConfig]
|
|
|
|
윈도우 시스템 사양 관련 상세 정보는 [](GettingStarted/RecommendedSpecifications) 문서를 참고하세요.
|
|
|
|
[/EXCERPT:WindowsConfig]
|
|
|
|
|
|
[EXCERPT:MacOSConfig]
|
|
|
|
맥 시스템 요구사양 관련 상세 정보는 [](GettingStarted/RecommendedSpecifications) 문서를 확인하세요. 참고로 iOS 7.1 에 디플로이하려는 경우, XCode 5.1 을 설치해 줘야 합니다.
|
|
XCode 는 App Store 에서 [무료로 다운로드 가능](https://itunes.apple.com/us/app/xcode/id497799835?mt=12) 합니다.
|
|
|
|
[/EXCERPT:MacOSConfig]
|
|
-->
|
|
|
|
|
|
|
|
## Apple iOS 개발자로 시작하기
|
|
|
|
[Apple IOS Developer Program](https://developer.apple.com/programs/ios/) 에 가입해야 합니다.
|
|
* 개인 - 혼자 작업하는 경우, 아니면 한 명만 iOS 계정 Admin 접근이 필요한 소규모 팀의 경우입니다.
|
|
* 회사 - 회사의 소규모 팀인 경우, 이 옵션으로 팀에 사람을 추가한 뒤 다양한 접근권한을 부여할 수 있습니다.
|
|
|
|
애플 개발자 계정을 만들 때, (Apple 지침에 따라) 다음과 같은 작업을 해 줘야 합니다:
|
|
|
|
|
|
* Certificate 생성
|
|
* App ID 생성 (사용자 지정 부분에 대해서는 *를 사용해도 됩니다)
|
|
* Provisioning 프로파일 생성
|
|
* 디바이스 추가
|
|
* Provisioning 프로파일에 모든 디바이스 추가
|
|
|
|
자세한 정보는 Apple 사이트의 다음 문서를 참고해 주시기 바랍니다:
|
|
* [App Distribution Guide](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40012582-CH1-SW1)
|
|
* [Maintaining Identifiers, Devices, and Profiles](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH30-SW1)
|
|
* [Launching Your App on Device](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/LaunchingYourApponDevices/LaunchingYourApponDevices.html#//apple_ref/doc/uid/TP40012582-CH27-SW4)
|
|
|
|
|
|
[OBJECT:ToggleButtonContent]
|
|
[PARAMLITERAL:category]
|
|
OS
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:id]
|
|
windows
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:active]
|
|
active_button_content
|
|
[/PARAMLITERAL]
|
|
[PARAM:content]
|
|
[INCLUDE:#WindowsSetup]
|
|
[/PARAM]
|
|
[/OBJECT]
|
|
[OBJECT:ToggleButtonContent]
|
|
[PARAMLITERAL:category]
|
|
OS
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:id]
|
|
mac
|
|
[/PARAMLITERAL]
|
|
[PARAMLITERAL:active]
|
|
[/PARAMLITERAL]
|
|
[PARAM:content]
|
|
[INCLUDE:#MacOSSetup]
|
|
[/PARAM]
|
|
[/OBJECT]
|
|
|
|
<!--
|
|
[EXCERPT:WindowsSetup]
|
|
|
|
윈도우에서 Certificate 를 구하기 위해선, `Engine\Binaries\DotNET\IOS` 에 위치한 iPhone Packager 를 사용해야 합니다.
|
|
|
|
iPhone Packager 에는 탭이 둘 있습니다:
|
|
* New User, 신규 사용자
|
|
* Already a registered iOS developer, 이미 등록된 iOS 개발자
|
|
|
|
New User 탭에는 기존에 iOS 어플리케이션을 개발한 적이 없는 개발자를 위한 툴이 들어있습니다.
|
|
|
|
여기서 할 수 있는 작업은:
|
|
* Certificate 요청 생성 창을 엽니다. Certificate 요청 생성 창은 iOS 어플리케이션 Signing 에 필요한 키 짝, Apple 의 Developer 웹사이트에서 Certificate 생성에 사용되는 Certificate 요청을 생성합니다.
|
|
* Apple 의 Developer 웹사이트에서 다운로드한 Provisioning 프로파일을 임포트합니다.
|
|
* Apple 의 Developer 웹사이트에서 다운로드한 개발 Certificate 와 키 짝을 임포트합니다.
|
|
|
|
[REGION:warning]
|
|
Info.plist 창을 여는 옵션이 있지만, 오래된 옵션이라 더이상 필요치 않습니다. 결국 iPhone Packager 의 기능은 언리얼 에디터에 통합될 예정입니다.
|
|
[/REGION]
|
|
|
|
Already a Registered iOS Developer 탭에는 언리얼로든 다른 무엇으로든 기존에 iOS 어플리케이션을 개발한 경험이 있는 개발자를 위한 것으로, 이미 개발 Certificate 와 Provisioning 프로파일이 있습니다.
|
|
|
|
여기서 할 수 있는 작업은:
|
|
* Apple 의 Developer 웹사이트에서 다운로드한 Provisioning 프로파일을 임포트합니다.
|
|
* Apple 의 Developer 웹사이트에서 기존에 다운로드한 개발 Certificate 와 키 짝, 또는 Keychain Access 에서 익스포트한 .p12 파일을 임포트합니다.
|
|
|
|
Certificate 설치시, 마법사의 기본 옵션으로 대부분의 경우 통할 것입니다.
|
|
|
|
[/EXCERPT:WindowsSetup]
|
|
|
|
|
|
[EXCERPT:MacOSSetup]
|
|
|
|
|
|
이제 웹에서 설명한 대로 맥에다 Certificate 를 설치해야 합니다. 회사 내 어플리케이션 Signing 에 사용할 모든 맥에다가도 Certificate 를 설치해 줘야 합니다. 두 가지 방법이 있습니다:
|
|
|
|
|
|
* Keychain Access 어플리케이션 방법
|
|
* 로그인 키체인을 선택합니다.
|
|
* Category 부분에서 My Certificates 를 선택합니다.
|
|
* 새로운 Certificate 를 선택합니다. ("iPhone Developer"로 시작됩니다.)
|
|
* 그 위에 우클릭하고 Export 를 선택합니다.
|
|
* 지시를 따릅니다. (보안만 확실하다면 암호가 없어도 괜찮습니다.)
|
|
* .p12 를 다른이에게 배부합니다.
|
|
* 받은 이는 .p12 를 더블클릭하거나 Keychain Access 로 끌어놓으면, 자신의 로그인 키체인에 Certificate 가 설치됩니다.
|
|
* Xcode 방법
|
|
* Organizer 로 이동합니다.
|
|
* 좌하단의 Developer Profile 로 이동합니다.
|
|
* Export Developer Profile 를 선택합니다.
|
|
* 지시를 따릅니다. (패스워드 입력 등은 팀원과 공유할 수 있는 것으로 사용하면 됩니다)
|
|
* 프로파일 파일을 다른이에게 배부합니다.
|
|
* 받은 이는 자기 Xcode 의 Organizer 에서 Import Developer Profile 을 선택하면 됩니다.
|
|
|
|
다음으로 애플 사이트에서 `.mobileprovision` 을 다운받습니다. 그러면 <ProfileName>.mobileprovision 이라는 파일을 다운받게 됩니다. .mobileprovision 파일은 다음 중 한 곳에 넣어야 합니다:
|
|
* `[GameDir]/Build/IOS/[GameName].mobileprovision`
|
|
* `Engine/Build/IOS/UE4Game.mobileprovision`
|
|
|
|
|
|
[/EXCERPT:MacOSSetup]
|
|
-->
|
|
|
|
마지막으로 중요한 점, 모두가 같은 "iPhone Developer:" Certificate 를 자신의 키체인에 갖고 있어야 합니다.
|
|
|
|
(게임에 와일드카드가 아닌 별도의 프로파일이 필요하다는 애플의 설명이 있기 전까지는) 모든 게임에 대해 와일드카드 mobileprovision 파일을 공유할 수 있습니다. 디바이스를 추가할 때마다 파일 업데이트가 필요하다는 점 기억해 주시기 바랍니다.
|
|
|
|
|
|
## iOS 디바이스에 디플로이하기
|
|
|
|
언리얼 에디터의 **실행** 버튼을 사용하여 iOS 디바이스에서 현재 레벨 테스트를 빠르게 시작할 수 있습니다.
|
|
**파일 > 패키지** 명령을 사용하여 iOS 디바이스에서의 테스트용 게임을 쿠킹 및 패키징할 수도 있습니다. 자세한 정보는, [](Engine\Deployment\Launching) 문서를 참고하세요.
|
|
|
|
|
|
[PUBLISH:Licensee]
|
|
|
|
## 코드 프로젝트에 대한 윈도우 기반 작업방식
|
|
|
|
주로 윈도우에서 개발 및 코딩 작업을 하려는 경우 이 부분을 읽어 주시기 바랍니다.
|
|
|
|
### 맥 시스템 셋업
|
|
|
|
* 앱 스토어에서 최신 Xcode 를 설치합니다.
|
|
* Terminal 어플리케이션을 사용하여 필요한 디렉토리 구조를 만듭니다.
|
|
* 쓰기가 가능한 디렉토리를 몇 개 만듭니다:
|
|
* sudo mkdir /UE4
|
|
* sudo chmod 777 /UE4
|
|
* 홈 디렉토리에도 만든 다음 링크를 걸 수도 있습니다:
|
|
* ln -s ~/UE4 /UE4
|
|
* UnrealRemoteTool (URT) 를 설치하고 실행합니다.
|
|
* 프로그램을 맥에 받아옵니다. A 또는 B 입니다:
|
|
* A)
|
|
* UnrealRemoteTool 을 PC 에서 (//depot/UE4/Engine/Build/iOS/UnrealRemoteTool) 맥으로 복사
|
|
* chmod a+x UnrealRemoteTool
|
|
* B)
|
|
* p4v 에서 맥으로 직접 동기화
|
|
* Terminal 에서 UnrealRemoteTool 을 실행시킵니다 (디버거에 잡히지 않는 희귀한 버그가 URT 에 있어서, 루프로 실행시키고 있습니다).
|
|
* for (( ;; )) ; do ./UnrealRemoteTool; done
|
|
* 참고로 Mountain Lion 에서는, Terminal 이 작업 디렉토리와 명령 히스토리를 기억하므로, 리부팅한 경우 위 화살표를 누르면 기억된 명령이 나타날 것입니다.
|
|
|
|
## 윈도우 시스템 셋업
|
|
|
|
* 환경 변수를 설정(하거나 하나의 맥을 모두가 공유할 수 있도록 RemoteToolchain.cs 의 코드를 변경)합니다.
|
|
* ue.RemoteCompileServerName = 컴파일에 사용되는 맥의 DNS 이름 또는 IP 주소 (예: a1012)
|
|
* ue.IOSSigningServer = 옵션입니다 (컴파일시 패키지는 ue.RemoteCompileServerName 와 동일한 것으로 강제되지만, IPhonePackager.exe 를 독립적으로 실행한 경우 -mac 이 지정되지 않으면 이것이 사용할 맥을 결정합니다).
|
|
|
|
환경 변수 세트가 둘인 이유는, 컴파일과 Signing 서버를 완전히 별개로 분리할 수 있도록 하기 위해서입니다. 이 값을 변경하면 컴퓨터를 재시작해야 효력이 적용될 수 있습니다.
|
|
|
|
|
|
### 윈도우에서 컴파일하기
|
|
위의 윈도우 및 맥 시스템 셋업 단계를 마치고나면, 컴파일은 UnrealBuildTool 이 활용되니 간단해 질 것입니다:
|
|
* //depot/UE4/GenerateProjectFiles_AllPlatforms.bat 를 실행합니다.
|
|
* 거기서 생성되는 UE4.sln 을 엽니다.
|
|
* 게임의 솔루션 폴더를 엽니다.
|
|
* Development Editor 환경설정과 Win64 플랫폼을 선택합니다.
|
|
* 선택한 (QAGame 등의) 게임에 우클릭한 다음 Build 를 선택합니다.
|
|
* 이제 Development 환경설정과 IOS 플랫폼을 선택합니다.
|
|
* 다시 한 번 게임을 빌드합니다.
|
|
* 그러면 UnrealRemoteTool 이 실행중인 맥에 접속, 거기에 파일을 복사한 다음 맥에서 원격 컴파일 명령을 실행합니다.
|
|
* 마지막에는 약간의 Signing 작업도 수행하니, 제대로 작동하는지 확인하세요. 작동하지 않는다면 맥에 설치된 Provision 파일과 Certificate 를 다시 한 번 확인하시기 바랍니다.
|
|
* 쿠커를 시작합니다.
|
|
* (cmd.exe 의) UE4/Engine/Binaries/Win64 디렉토리에서 이렇게 (QAGame 을 자신의 게임 이름으로 바꾸고) 실행합니다:
|
|
* ue4editor-cmd QAGame -run=cook -targetplatform=ios -cookonthefly
|
|
* 그러면 IOS 디바이스가 쿠킹된 파일을 받기 위해 통신하는 네트웍 상의 쿠킹 서버가 시작됩니다.
|
|
|
|
맥 드라이브의 /UE4/Builds 디렉토리를 살펴보면 자신의 PC 컴퓨터 이름으로 된 디렉토리를 발견할 수 있습니다. 그 디렉토리 구조는 자신의 PC 디렉토리 구조와 똑같이 미리렁된 구조입니다. 컴파일이 완료되면 실행파일은 게임의 Binaries (또는 게임 없이 UE4 프로젝트를 컴파일한 경우 Engine/Binaries) 디렉토리에 생기게 됩니다.
|
|
|
|
### Xcode 로 실행/디버깅하기
|
|
|
|
이제 디바이스에서 실행하기 위해 맥으로 갑니다:
|
|
|
|
* /UE4/Builds/.../UE4/Engine/Binaries/IOS 에서 UE4_FromPC.xcodeproj 를 엽니다.
|
|
* 게임의 타겟을 (QAGame_RunIOS 같은 것을) 선택합니다.
|
|
* 실행 세팅을 편집합니다.
|
|
* Option-Command-R 키를 칩니다.
|
|
* Arguments 아래, 필요한 명령줄 인수와 함께 다음 줄을 붙여줍니다:
|
|
* -filehostip=xx.xx.xx.xx
|
|
* xx.xx.xx.xx 는 쿠커가 실행중인 PC 의 IP 주소입니다.
|
|
* Run 을 클릭하면 게임을 디바이스에 설치한 다음 실행을 시작시키고, 게임은 PC 쿠커에 접속됩니다 (쿠커 출력창에 약간의 접속 메시지가 보일 것입니다).
|
|
|
|
|
|
## 맥 기반 작업방식
|
|
|
|
맥에서 IOS 용 컴파일이 가능합니다. 이 방법은 얼마 되지 않아서, 문제가 있을 수 있습니다:
|
|
|
|
### 컴파일 및 실행하기
|
|
|
|
* //depot/UE4/GenerateProjectFiles_AllPlatforms.command 를 실행합니다.
|
|
* Xcode 에서 UE4/UE4.xcodeproj 를 엽니다.
|
|
* QAGame - Mac 을 선택합니다.
|
|
* 스키마에서 (Option-Command-R) Development 를 선택한 다음 Done 을 클릭합니다. Command-B 키로 맥 실행파일을 빌드합니다.
|
|
* Terminal 에서 IOS 쿠커를 실행합니다.
|
|
* Terminal.app 을 실행한 다음 UE4/Engine/Binaries/Mac 디렉토리로 cd 하고서 (QAGame 은 자신의 게임 이름으로 바꾸고) 이렇게 실행합니다:
|
|
* open UE4Editor.app --args QAGame -run=cook -targetplatform=ios -cookonthefly
|
|
* <GameName> - IOS (Run) 타겟을 선택한 다음 실행시킬 디바이스를 선택합니다.
|
|
* 스키마에서 (Option-Command-R), Info 에 Development 를 선택한 다음 Arguments 로 갑니다.
|
|
* 게임에 필요한 명령줄 옵션과 아울러 다음 부분도 추가해 줍니다:
|
|
* -filehostip=xx.xx.xx.xx
|
|
* xx.xx.xx.xx 는 쿠커를 실행중인 맥의 IP 주소입니다.
|
|
|
|
|
|
|
|
## 패키징
|
|
|
|
빌드를 미리 패키징하려면, UnrealFrontend 문서에서 모든 쿠킹된 콘텐츠로 .ipa 를 만드는 법을 참고해 보시기 바랍니다.
|
|
[/PUBLISH:Licensee] |