Unity 기반의 게임을 개발할 때 Hive SDK를 포팅하는 방법과 Android 혹은 iOS 앱으로 빌드하는 방법을 안내합니다.
포팅하기
Unity 개발 환경을 이용한다면 Hive SDK를 플러그인의 형태로 Unity 개발 환경에 포팅해 주세요. 다음의 안내대로 Hive SDK를 개발 환경에 추가하고 필요한 설정 작업과 코드 작업을 수행하세요.
- Unity 개발 환경에 플러그인 추가하기
- 일반 설정하기
- 외부 라이브러리 추가하기
- Hive 설정하기
- 플러그인 초기화 코드 추가하기
개발 환경에 플러그인 추가하기
여러분의 게임 프로젝트를 Unity 개발 환경에서 열고, Assets > Import Package > Custom Package 메뉴에서 Plugin Package를 선택한 후 Hive 개발자 사이트에서 다운로드 받은 Unity용 Hive SDK를 선택하여 추가하세요.
Hive SDK가 정상적으로 추가되면 Unity 개발 환경 프로젝트 창에서 Hive SDK 파일을 볼 수 있습니다.
일반 설정하기
Android 앱과 iOS 앱의 설정 방법이 다릅니다. 다음 안내를 확인해 보세요.
Android
- File > Build Settings…를 클릭하세요. Build Settings 창이 나타납니다. Platform 목록에서 Android를 선택하세요.
- Switch Platform을 버튼을 클릭하세요. 플랫폼 스위치 과정이 진행됩니다.
- 플랫폼 스위치 과정이 완료되면 Build Settings 창에서 Player Settings… 버튼을 클릭하세요.
- Inspector 창의 Other Settings 섹션에서:
- Bundle Identifier 필드에 게임의 AppID를 입력하세요. 게임 AppID를 모른다면 선행 작업 섹션을 읽어 보세요.
- Minimum API Level을 API Level 15이상으로 설정하세요.
- Inspector 창의 Publish Settings 섹션에서 Signing Key를 설정하세요.
iOS
- File > Build Settings…를 클릭하세요. Build Settings 창이 나타납니다. Platform 목록에서 iOS를 선택하세요.
- Switch Platform 버튼을 클릭하세요. 플랫폼 스위치 과정이 진행됩니다.
- 플랫폼 스위치 과정이 완료되면 Build Settings 창에서 Player Settings… 버튼을 클릭하세요. Inspector 창이 나타납니다.
- Inspector 창에서:
- Bundle Identifier 필드에 발급 받은 게임의 AppID를 입력하세요. 게임 AppID를 모른다면 선행 작업 섹션을 읽어 보세요.
- Hive SDK가 지원하는 최소 iOS 버전대로 Target minimum iOS version을 설정하세요. Hive가 지원하는 최소 iOS버전은 9.0으로, Target Minimum iOS version 값을 9.0 이상으로 설정하세요.
Hive SDK 및 외부 라이브러리 의존성 추가하기
Hive SDK는 UnityPackage 버전에 External-Dependency-Manager for Unity(구. GooglePlayServiceResolver, 이하 EDM4U) 패키지를 포함하여 배포하며, EDM4U 설정으로 빌드에 필요한 라이브러리를 자동 설치/배포하도록 구성되어 있습니다. EDM4U가 동작할 수 있는 빌드 환경이 마련되지 않았다면 이를 구축해야 합니다. EDM4U에서 제공하는 GUI를 이용하거나 Unix 셸인 Bash, 다시 말해 명령줄 인터페이스(CLI, Command Line Interface)를 통해서도 가능합니다.
Android
- Unity를 실행해 Asset > External Dependency Manager > Android Resolver > Settings 메뉴를 클릭합니다.
- Android Resolver Settings 창이 나타나면 빨간색으로 표시한 항목을 기본 설정으로 체크 표시합니다.
iOS
- CocoaPods 설치
- CocoaPods 설정
CocoaPods으로 iOS에서 사용하는 외부 라이브러리를 제공받을 경우 기존 .xcodeproj 파일의 확장자를 .xcworkspace로 변경해 제공합니다. .xcworkspace 형태로 빌드를 진행할 수 없다면 GUI를 이용해 설정을 변경해보세요. 빌드할 PC의 Unity에서 수행하는 CocoaPods 적용 방식이 변경되어 실행할 수 있습니다.
외부 라이브러리 의존성 추가하기
Hive SDK Tracker 설정하기
Hive SDK는 Unity Inspector를 이용해 TrackerModule의 설정하기 기능을 지원합니다.
- Unity 메뉴에서 Com2us > HiveSDK Tracker Edit Settings 메뉴를 선택하세요.
- 발급받은 TrackingModule들의 설정값을 Android/iOS에 각각 입력합니다.
Android UnityPlayerActivity 설정하기
Hive SDK v1의 Unity 패키지에 /HiveSDK/Plugins/Android/UnityPlayerActivity.java를 사용하면 Hive SDK 생명주기 코드가 사용된 Activity
클래스를 사용할 수 있습니다. 다만, 사용중인 Unity 버전에 따라 UnityPlayerActivity 관련 코드 수정이 필요합니다. 아래 내용을 참고 바랍니다.
- Unity 2021
- 3.34f1 미만: 별도 수정 없음
- 3.34f1 이상: 관련 코드 수정 필요
- Unity 2022
- 3.16f1 미만: 별도 수정 없음
- 3.16f1 이상: 관련 코드 수정 필요
다음은 코드 수정 방법입니다.
- UnityPlayerActivity.java 수정
- 해당 파일을 HiveUnityPlayerActivity.java 로 변경합니다.
- 해당 파일의 코드에서 클래스 명을 변경합니다.
- AndroidManifest 수정
- /Plugins/Android/AndroidManifest.xml에서 UnityPlayerActivity의 사용처가 선언되어 있다면 클래스 이름을 변경합니다.
1 2 3 4 5 6 7 8 |
... (생략) ... //public class UnityPlayerActivity extends com.unity3d.player.UnityPlayerActivity (HiveUnityPlayerActivity로 클래스명 변경) public class HiveUnityPlayerActivity extends com.unity3d.player.UnityPlayerActivity { ... (생략) ... |
1 2 3 4 5 6 7 8 |
... (생략) ... <!-- <activity android:name="com.hive.UnityPlayerActivity" ... --><!-- (HiveUnityPlayerActivity로 클래스명 변경) --> <activity android:name="com.hive.HiveUnityPlayerActivity" ... /> ... (생략) ... |
Android UnityPlayerGameActivity 설정하기
Hive SDK v1의 Unity 패키지에 /HiveSDK/Plugins/Android/HiveUnityPlayerGameActivity.java 를 사용하여 Hive SDK 생명주기 코드가 사용된 Activity 클래스를 사용할 수 있습니다. (Hive SDK v1 24.1.1 이상)
다만, 사용중인 Unity 버전이 Unity 2023.2.x 이상인 경우 HiveUnityPlayerGameActivity를 활용할 수 있습니다.
다음은 HiveUnityPlayerGameActivity 사용을 위한 설정 방법입니다.
- Unity 프로젝트에서 Project Settings > Other Settings 이동합니다.
- Application Entry Point 에서 ‘GameActivity’ 활성화합니다. 만약, 기존 HiveUnityPlayerActivity를 사용할 경우 ‘Activity’를 활성화합니다.
빌드하기
Unity 개발 환경을 이용한다면 OS별로 다음 안내에 따라 빌드해주세요.
Android 빌드하기
Unity 개발 환경에서 Android용 앱을 빌드하려면 다음의 안내 중 하나를 선택하여 수행하세요.
- Build Settings 창 이용하기:
- 바로 빌드하기: File > Build Run을 선택하세요.
Google Android Project Export용 빌드하기
Unity 개발 환경에서 개발한 프로젝트를 Google Android 프로젝트로 추출하려면 다음의 안내를 따라 수행하세요.
- File > Build Settings > Player Settings…를 선택하세요. Inspector 창이 나타납니다.
- Inspector 창의 Other Settings 섹션 아래 Bundle Identifier 값을 AppID와 동일한 값으로 입력하세요.
- Unity 개발 환경 버전에 따라 다음과 같이 수행하세요.
- Unity 5.5 이상:
- File > Build Settings…를 클릭하세요. Build Settings 창이 나타납니다.
- Platform 목록에서 Android를 클릭하세요.
- Export Project 필드의 값으로 Gradle을 선택하세요.
- Export 버튼을 클릭해 Android 프로젝트를 추출하세요.
- Unity 5.5 미만:
- Android Studio를 실행시키고, Import project (Eclipse ADT, Gradle, etc.) 옵션을 선택하세요.
- Unity3D Android 프로젝트 경로를 선택하여 추출한 프로젝트를 임포트하세요.
iOS 빌드하기
iOS용 앱을 빌드하려면 다음의 안내를 따르세요:
- Unity 개발 환경에서 File > Build Settings…를 클릭하세요. Build Settings 화면이 나타납니다.
- Platform 목록에서 iOS를 클릭하세요.
- Build 버튼을 클릭하여 XCode 프로젝트를 생성하세요.
- 1-3번 단계에서 생성한 프로젝트를 XCode에서 여세요.
- XCode에서 Build Settings 탭을 선택한 후 bitcode를 검색하세요. 검색 결과로 나온 Enable Bitcode 옵션을 No로 선택하세요.
Unity 2019.3+ 버전 빌드 시 확인사항
- Unity 2019.3 이상 버전에서 iOS 빌드 시 Xcode Target은 Unity-iPhone Target과 UnityFramework Target으로 분리되고, 모든 Framework들은 UnityFramework Target으로 자동 설정됩니다.
- 모든 Resource 파일은 Main Target인 Unity-iPhone을 바라보고 있어야 하므로 자동 세팅된 SDK 리소스 파일을 Unity-iPhone Target으로 변경해 줘야 합니다.
- Framework 추가는 UnityFramework Target에서 진행해야 합니다.
- Dummy Swift 파일을 추가하는 경우에는 Target Membership에서 Unity-iPhone과 UnityFramework를 모두 선택하여 Swift 설정을 추가해야 합니다.