서명된 iOS용 빌드를 생성하려면 Mac과 Apple Developer 계정이 필요합니다. 하지만 주로 Windows 머신을 사용하는 팀의 경우 언리얼 엔진 에서 Windows PC와 최대 두 대의 Mac 사이에 SSH 연결 을 설정하여 원격으로 iOS 빌드를 생성할 수 있습니다. 이를 위해서는 들어오는 SSH 연결을 Mac에서 허용해야 하며, Windows 머신에서 Mac에 액세스하기 위한 SSH 키와 크리덴셜을 설정해야 합니다. 이 가이드는 연결을 구성하고 원격 빌드를 실행하는 프로세스를 안내합니다.
기본 및 보조 원격 Mac
프로젝트 세팅(Project Settings) > 플랫폼(Platforms) > iOS 의 원격 빌드(Remote Build) 섹션 아래에서 원격 Mac에 대한 세팅을 찾을 수 있습니다.
이 섹션에는 Mac 기본 원격 빌드를 위한 원격 빌드 옵션(Remote Build Options) 과 Mac 보조 원격 빌드를 위한 보조 원격 빌드 옵션(Secondary Remote Build Options) 이 모두 나열되어 있습니다.
기본 Mac은 팀의 공유 리소스 역할을 할 수 있도록 Mac Pro와 같이 처리 능력이 뛰어난 모델이어야 합니다. 이 Mac은 Xcode가 필요한 주요 빌드 프로세스를 처리하는 데 사용합니다.
보조 Mac은 테스트 디바이스에서 디버깅 빌드를 실행하기 위한 개인 디바이스여야 합니다. 보조 Mac은 아무것도 빌드하지 않습니다. 대신 기본 Mac에서 이미 빌드된 캐시 데이터를 다운로드하고 디버깅을 위해 Xcode 프로젝트 파일을 구성합니다. 즉, 프로젝트에 대해 전체 빌드를 실행하거나 쿠킹할 필요가 없고 지정된 iOS, tvOS 또는 iPadOS 디바이스에서만 실행하면 되므로 기본 Mac보다 적당한 사양이어도 괜찮습니다. 이 프로세스를 처리하는 방법에 대한 자세한 정보는 아래의 원격 보조 Mac 사용하기를 참조하세요.
디버깅 준비
디버깅 준비(Prepare for Debugging) 명령은 이전에 쿠킹된 데이터를 Xcode의 빌드에 삽입하여 Xcode의 타깃 디바이스에서 실행하는 데 사용할 수 있는 .ipa 파일을 생성합니다. 이 경우, 두 가지 측면에서 프로젝트의 디버깅 파이프라인이 간소화됩니다.
-
디버깅 준비는 Xcode 프로젝트를 재구성할 필요 없이 디버깅 빌드 생성을 자동으로 처리합니다.
-
Mac 수가 적은 프로젝트는 다른 머신에서 쿠킹된 데이터를 임포트할 수 있습니다. 이 경우, 언리얼 에디터를 빌드하거나 사용하는 것을 건너뛰고 Xcode에서 간단히 빌드를 실행할 수 있습니다.
디버깅 준비는 특히 보조 Mac을 사용할 때 원격 빌드를 간소화하도록 설계되었습니다. 이 명령을 사용하는 방법에 대한 자세한 정보는 Xcode로 iOS 프로젝트 디버깅하기를 참조하세요.
1. 필수 설정
iOS 원격 빌드를 사용하려면 iOS 프로젝트를 빌드할 수 있는 Mac이 하나 이상 필요하며 Windows PC도 하나 이상 필요합니다. 두 머신 모두 인터넷이나 LAN에 연결되어 있어야 합니다. Mac은 서명과 컴파일에 Xcode만 필요하므로 프로젝트 사본이나 언리얼 엔진 설치 없이도 작동합니다.
iOS 프로젝트에 필요한 바이너리를 갖추려면 Windows 컴퓨터에 iTunes 가 설치되어 있어야 합니다. Windows 버전에는 원격 빌드 프로세스를 방해하는 추가 바이너리가 포함되어 있을 수 있으므로 Windows 스토어보다는 Apple 웹사이트에서 iTunes를 다운로드하여 설치하는 것을 권장합니다. Apple에서 iTunes를 직접 받으려면 '다른 버전을 찾고 있다면?(Looking for other versions?)' 섹션까지 스크롤을 내린 다음 Windows 를 클릭하세요.
Mac의 시스템 키체인(System Keychain) 에는 iOS 개발자 인증서(iOS Developer Certificate)가 설치되어 있어야 하며 iOS 프로비저닝 구성에 따라 프로젝트에 대한 프로비저닝 프로필(Provisioning Profile)을 설정해야 합니다.
프로젝트에 대한 빌드를 생성하도록 Mac을 설정한 후에는 다음 섹션으로 진행하기 전에 해당 머신에서 직접 빌드를 한 번 이상 실행하여 제대로 작동하는지 확인해야 합니다.
2. Mac에서 원격 로그인 활성화하기
프로젝트를 설정한 후에는 SSH 연결을 허용하도록 Mac을 환경설정해야 합니다.
-
Mac의 시스템 환경설정(System Preferences) 을 연 다음 공유(Sharing) 로 이동합니다.
-
원격 로그인(Remote Login) 박스를 체크합니다.
-
시스템 환경설정(System Preferences) > 네트워크(Network) 를 엽니다.
-
컴퓨터의 IP 주소(IP Address) 를 확인합니다. Windows PC에서 원격 연결을 설정하려면 IP 주소가 필요합니다.
이 단계를 완료하고 나면 Mac이 PC에서 들어오는 SSH 연결을 수락할 수 있게 됩니다.
3. Windows 환경설정 및 SSH 키 생성하기
원격 iOS 빌드용으로 환경설정하려면 Windows 머신에서 다음 단계를 완료하세요.
-
언리얼 에디터 에서 프로젝트를 연 다음 프로젝트 세팅 을 엽니다.
-
플랫폼 > iOS > 빌드(Build) 로 이동합니다.
-
원격 서버 이름(Remote Server Name) 필드에 프로젝트를 빌드하는 데 사용하는 Mac의 이름이나 IP 주소를 입력합니다.
-
원격 사용자 이름(Remote User Name) 필드에 평소 Mac에 로그인할 때 사용하는 사용자 이름을 입력합니다.
-
SSH 키 생성(Generate SSH Key) 을 클릭합니다. 그러면 SSH 키를 생성하는 일련의 프롬프트가 포함된 명령 프롬프트 창이 열립니다.
-
호스트를 인증할 수 없다는 메시지가 나타나면 프롬프트에 'yes' 를 입력하고 계속 진행합니다.
-
이전 섹션의 원격 사용자 이름 에서 지정한 사용자의 비밀번호 를 입력합니다.
-
프롬프트에서 패스프레이즈 를 물어볼 것입니다. 패스프레이즈를 입력하지 않기로 선택했다면 사용자 상호작용 없이 원격 연결을 사용할 수 있습니다.
-
메시지가 표시되면 Mac의 비밀번호 와 사용자 이름 을 다시 입력하여 프로세스를 완료합니다.
이제 SSH 키를 생성했으므로 Windows 머신에서 iOS 빌드를 생성하기 위해 Mac에 대한 원격 연결을 시작할 수 있습니다.
보호되지 않은 프라이빗 키에 대한 해결 방법
다음과 같은 오류가 표시될 수 있습니다.
ERROR: Unable to determine home directory for remote user. SSH output:...WARNING: UNPROTECTED PRIVATE KEY FILE!...0660
이 오류가 표시되지 않는 경우 다음 단계( 팀 구성(선택사항) )로 진행할 수 있습니다. 이 오류가 표시되면 다음 단계에 따라 문제를 해결하세요.
-
RemoteToolChainPrivate.key로 이동합니다. -
파일을 우클릭하고 속성(Properties) 을 선택합니다.
-
보안(Security) 탭을 클릭합니다.
-
편집(Edit) 을 클릭합니다.
-
모든 그룹 또는 사용자 이름을 제거합니다.
-
추가(Add) 를 클릭합니다.
-
개체 유형(Object Types) 을 클릭합니다. 모든 박스를 체크한 다음 확인(OK) 을 클릭합니다.
-
텍스트 박스에 Users 를 입력한 다음 Enter를 누릅니다.
-
Users의 사용 권한이 읽기(Read) 및 읽기 및 실행(Read & Execute) 으로 설정되어 있는지 확인합니다.
이렇게 하면 파일의 기본 그룹이 사용자 이름과 동일하지 않도록 변경되어 SSH가 그룹 권한을 확인할 때 혼동하지 않습니다. 이렇게 하면 프로세스가 정상적으로 작동합니다.
이전에는 SubInACL을 이 목적으로 사용할 수 있었지만 Microsoft에서는 더 이상 사용할 수 없습니다.
4. 팀 구성(선택사항)
나중에 다른 프로젝트에 이 데이터를 공유하기 위해 컴퓨터의 *Engine.ini 파일 중 하나에 원격 서버 이름과 원격 사용자 이름을 지정합니다.
-
원격 서버 이름 프로퍼티 옆에 있는 버튼을 선택하여 환경설정 에디터(Configuration Editor) 를 엽니다.
-
SSH 데이터를 공유하려는 각 .ini 파일의 프로퍼티를 설정합니다.
-
원격 사용자 이름 에 같은 단계를 반복합니다.
이 .ini 파일들을 공유하면 여러 프로젝트 또는 사용자가 SSH 정보를 계속 사용할 수 있습니다. SSH 키 자체는 Engine/Build/SSHKeys 폴더에 저장됩니다. 이 디렉터리를 소스 컨트롤 시스템에 체크인하여 팀과 공유할 수 있습니다.
5. 최종 결과
위 단계를 완료한 후 Windows 머신의 언리얼 에디터에서 플랫폼 > iOS > 프로젝트 패키지(Package Project) 또는 플랫폼 > iOS > 디버깅 준비 를 클릭하여 원격 빌드를 시작할 수 있습니다. 그러면 SSH 연결이 열리고 Mac에 빌드를 시작하라는 명령이 전송됩니다. 빌드가 디렉터리에 표시됩니다.
6. 보조 원격 Mac 사용
보조 Mac을 사용할 때는 빌드 프로세스를 건너뛰기 위해 기본 Mac의 기존 빌드 데이터를 사용하기 때문에 몇 가지 추가 단계가 필요합니다.
Windows 머신에서 디버깅 준비
-
Windows 머신에서 프로젝트 세팅 > 플랫폼 > iOS 를 연 다음 원격 빌드 섹션에서 보조 원격 Mac 활성화 가 비활성화 상태인지 확인합니다.
-
기본 원격 Mac을 사용하여 프로젝트를 빌드합니다. 보조 Mac은 기본 Mac에서 생성된 파일에 의존하므로 보조 Mac을 사용하려면 이 과정을 한 번 이상 수행해야 합니다.
-
기본 Mac에서 하나 이상의 빌드를 완료한 후 보조 원격 Mac 활성화(Enable Secondary Remote Mac) 세팅을 활성화합니다.
-
플랫폼 > iOS > 디버깅 준비 를 클릭합니다. 이번에는 기본 Mac에서 원격 빌드를 완료한 후 Windows 머신이 빌드 데이터를 다운로드하여 보조 Mac으로 보냅니다.
이제 다른 머신에서 받은 캐시된 데이터가 있는 보조 Mac에 Xcode 프로젝트가 있습니다. 기본 Mac에서 생성된 프로젝트 디렉터리와 동일한 디렉터리에 있습니다. 보조 원격 Mac 프로세스를 처음 사용할 때는 세 대의 머신 사이에 데이터를 동기화하는 데 보통 10~15분 정도 걸리지만, 이후의 각 빌드에서는 약 30초 정도밖에 걸리지 않습니다.
보조 원격 Mac에서 디버그
보조 원격 Mac에서 디버그하는 방법:
-
생성된 Xcode 프로젝트 파일이 있는 디렉터리를 연 다음 Xcode 솔루션을 엽니다.
-
평소 Xcode 디버깅 워크플로에서 하는 것처럼 Xcode를 환경설정합니다.
-
이미 캐시된 빌드 데이터가 있으므로 전체 빌드를 실행할 필요는 없습니다. 대신 제품(Product) > 액션 수행(Perform Action) > 빌드 없이 실행(Run Without Building) 을 클릭하여 iOS, iPadOS 또는 tvOS 테스트 디바이스에서 실행합니다.
프로젝트가 iOS 디바이스에서 실행됩니다.