Read this manual in English

Developing games for iOS

이 매뉴얼은 Defold에서 iOS 장치의 앱과 게임을 개발하는 방법을 설명합니다.

iOS 개발은 개발중에도 iOS 기기에 앱이나 게임을 올릴 수 있도록 개발자 등록을 해야 한다는 점에서 Android 개발과 다릅니다. 또 iOS는 휴대폰이나 타블렛에 있는 모든 앱이 Apple이 발행한 인증서(certificate)와 프로비져닝 프로파일(provisioning profile)에 서명해야 한다고 요구합니다.

Apple’s code signing process

iOS 앱과 관련된 보안은 여러가지 요소로 구성되어 있습니다. 필요한 도구에 액세스 하려면 우선 Apple’s iOS Developer Program에 가입해야 합니다. 등록 후에는 Apple’s Developer Member Center 로 이동하기 바랍니다.

Apple Member Center

Certificates, Identifiers & Profiles 섹션은 필요한 모든 도구를 포함하고 있으며 여기에서 생성, 삭제, 수정이 가능합니다.

Certificates

Apple은 당신을 개발자로 식별하는 암호화된 인증서를 발행합니다. 당신은 development 또는 production 인증서를 생성할 수 있습니다. Developer 인증서는 샌드박스 테스트 환경에서 인앱결제(in-app purchase) 같은 특정한 기능을 테스트 할 수 있게 해 줍니다. Production 인증서는 App Store에 완성된 앱을 업로드 하기 위해 서명하는데 사용됩니다. 테스트를 하려면 당신의 기기에 앱을 설치하기 전에 인증서 부터 서명해야 합니다.

Identifiers

다양한 용도의 식별자. 여러 앱에서 사용할 수 있는 와일드카드 식별자(예를 들어 “some.prefix.*“)를 등록할 수 있습니다. App ID는 Passbook integration과 Game Center 등의 활성화 여부와 같은 Application Service 정보를 포함할 수 있습니다. 이러한 App ID는 와일드카드 식별자가 될 수 없습니다. Application Services가 작동하려면 어플리케이션의 “bundle identifier” 가 App ID 식별자와 일치해야만 합니다.

Devices

각 개발 장치는 UDID (Unique Device IDentifier)를 등록해야 합니다. 장치에서 UDID를 알아내는 방법은 아래를 참고 바랍니다.

Provisioning Profiles

프로비져닝 프로파일은 특정 장치와 App ID를 사용한 인증서와 관련되어 있습니다. 이는 기본적으로 어떤 개발자가 어떤 장치에서 어떤 앱을 사용할 수 있는지를 알려줍니다.

Defold에서 게임이나 앱에 서명할 때에는 유효한 인증서와 유효한 프로비져닝 프로파일이 필요합니다.

Member Center 홈페이지에서 할 수 있는 일 중에 일부는 Xcode 개발환경 내에서도 수행할 수 있습니다.

Device UDID

iOS 장치의 UDID는 와이파이나 케이블로 컴퓨터에 연결해서 알아낼 수 있습니다. iTunes 를 열어서 장치 아이콘을 클릭하고 당신의 장치를 선택하세요.

iTunes devices

Summary 페이지에서 Serial Number 를 찾습니다.

Device UDID step 1

Serial Number를 클릭해서 이 필드를 UDID로 변경합니다. 반복적으로 클릭하면 이 장치에 대한 여러 정보들이 표시되므로 UDID가 나올 때 까지 계속 클릭해도 됩니다. 긴 UDID 문자열을 마우스 오른쪽 클릭해서 Copy 를 눌러 식별자를 클립보드로 복사합니다. 그러면 Apple’s Developer Member Center에서 장치를 등록할 때 UDID 필드에 쉽게 붙여넣기 할 수 있습니다.

Device UDID step 2

Signing the Defold development app

development app은 와이파이를 통해 컨텐츠를 설치할 수 있는 아주 편리한 버전입니다. 장치에 development app을 설치하고 앱을 시작한 다음 에디터에서 해당 장치를 빌드 대상으로 선택합니다.

현재, 최소한 팀원 한 명은 macOS를 실행하고 다른 팀 멤버를 위해 development app를 서명하려고 Apple Developer에 등록할 필요가 있습니다. 우리는 이 사람을 서명인(signer)이라고 부르도록 하겠습니다.

  • 서명인의 컴퓨터에 설치된 인증서가 있어야 합니다.
  • 서명인의 컴퓨터에 모바일 프로비져닝 프로파일이 있어야 합니다.
  • 서명인은 다른 멤버들로부터 UDID를 수집하고 모바일 프로비져닝 프로파일에 추가해야 합니다.

서명된 development app을 Defold Dashboard에 업로드 하려면, 아래 단계가 필요합니다.

  1. 에디터에서, Project > Sign App…​ 선택
  2. 당신의 code signing identity 선택
  3. 당신의 mobile provisioning 파일 찾기
  4. Sign and upload 버튼 누르기

Signing the app

Defold dev app은 Dashboard의 프로젝트 페이지로 업로드 됩니다. 각 프로젝트 멤버는 다음 작업을 할 수 있습니다.

  1. iOS 장치에서 Dashboard를 탐색
  2. 프로젝트의 목록에서 프로젝트 페이지를 염
  3. Members 섹션 아래에 있는 Install the Defold App 링크를 클릭함

이 비디오는 전체 프로세스를 보여줍니다. https://www.youtube.com/watch?v=T_igYdHubqA

Launching the game

iOS 장치에서 게임을 실행하려면 Defold dev app과 에디터가 같은 와이파이 네트워크상에서 연결 가능해야 합니다.

  1. 에디터가 실행중인지 확인하기
  2. iOS 장치에서 Defold dev app 실행하기
  3. 에디터에서 Project > Targets 에 있는 당신의 장치 선택
  4. 게임을 실행하기 위해 Project > Build And Launch 선택하기. 게임 컨텐츠가 네트워크를 통해서 장치로 스트림 되므로 게임이 시작되는데 시간이 걸릴 수 있음.
  5. 게임이 실행되는 동안, 평소처럼 핫 리로드(hot-reload)도 할 수 있음

Creating an iOS application bundle

에디터에서 게임용 독립 어플리케이션 번들(stand alone application bundle)도 쉽게 생성할 수 있습니다. 메뉴에서 Project > Bundle…​ > iOS Application…​ 를 선택하기만 하면 됩니다.

Signing iOS bundle

당신의 code signing identity를 선택하고 당신의 mobile provisioning 파일을 탐색합니다. Package 버튼을 누르면 컴퓨터에서 번들이 생성될 위치를 지정하라는 창이 뜹니다.

ipa iOS application bundle

에디터는 iOS 어플리케이션 번들로 .ipa 파일을 생성합니다. 이 파일은 iTunes로 드래그-앤-드롭 해서 다음 동기화 중에 당신의 장치에 설치하게 됩니다. game.project 프로젝트 설정 파일에서 실행 스크린 이미지나 앱에서 사용할 아이콘 등을 지정할 수도 있습니다.

Troubleshooting

어플리케이션을 다운로드 할 수 없을 경우

서명인(signer)이 앱을 서명하는데 사용되는 mobile provisioning에 UDID를 제대로 추가했는지 확인합니다.

내 장치가 Targets 메뉴에 나타나지 않을 경우

당신의 장치가 컴퓨터와 동일한 와이파이 네트워크에 연결되어 있는지 확인합니다.

버전이 맞지 않는다(mis-matching versions)는 메세지로 게임이 시작되지 않는 경우

이 문제는 에디터를 최신 버전으로 업그레이드 했을 때 발생합니다. Sign and Upload를 다시 해서 현재 엔진 버전에서 새 dev app을 생성해야 합니다. 당신의 기기의 dashboard에서 다시 앱을 다운로드 하세요.