콘텐츠로 이동

Unity Windows

Hive SDK Unity Windows 로 앱을 개발 완료 후 앱을 빌드할 때 다음 항목을 설정해야 합니다.

빌드 전 설정

Windows 프로젝트를 빌드하기에 앞서 에디터의 File > Build Settings...에서 다음과 같이 설정하세요.

  1. 빌드를 설정합니다.
    • 타겟 OS: Windows
    • 아키텍처: x86_64
    • Visual Studio 솔루션 생성 (선택 여부에 따라 빌드 방법이 달라짐)
  2. 플레이어를 설정합니다. Build Settings... 창 하단 왼쪽의 Player Settings... 버튼을 누르거나 Inspector 창의 Player 카테고리에서 설정할 수 있습니다.
    • 스크립팅 백엔드: IL2CPP
    • API 호환성: .NET Standard 2.1
    • Auto Graphics APIs for Windows: Direct3D11 또는 OpenGLCore
  3. HIVE_PLUGIN.dll 파일을 설정합니다. 아래의 이미지를 참고하여 Inspector 창에서 Assets\Hive_SDK_v4\Plugins\Windows 폴더의 HIVE_PLUGIN.dll 파일을 설정하세요.

빌드 설정

빌드 설정 시 Visual Studio 솔루션 생성 선택 여부에 따라 아래의 선택 1.선택 2. 중 하나를 진행하세요.

선택 1. Visual Studio 솔루션 생성 : False

  1. 에디터의 프로젝트에서 Assets\Plugins\Windows\res\hive_config.xml 파일을 준비하세요.
  2. Unity Build로 생성된 실행 파일 폴더에 Hive SDK 부가 파일(.dll, .pak, .bin 등의 리소스 파일)이 Assets\Hive_SDK_v4\Editor\HivePostprocess.cs에 의해 복사됩니다. 복사가 안되어 있는 경우에는 다음과 같이 직접 복사하세요.
    • Assets\Hive_SDK_v4\Plugins\desktop\hive_string → [실행 파일 폴더]\resources\hive_string
    • Assets\Hive_SDK_v4\Plugins\Windows\additional → [실행 파일 폴더] (.meta 파일 제외)
    • Assets\Plugins\Windows\res\hive_config.xml → [실행 파일 폴더>]\resources\hive_config.xml
  3. 버전 설정도 프로젝트에 설정되어 있는 버전을 이용하여 스크립트 Assets\Hive_SDK_v4\Editor\HivePostprocess.cs를 통해 진행됩니다. 결과물 실행 파일의 버전이 변경되지 않았다면, Assets\Hive_SDK_v4\Plugins\Windows\postBuildUtil\rcedit.exe를 이용하여 CMD 또는 Powershell에서 직접 변경할 수 있습니다.
    • 참고
    • 예: rcedit.exe "D:\Hive\_SDK\_UnityPlugin\_Sample\b\Hive\_SDK\_v4\_Unity.exe" --set-product-version 1.0.3 --set-file-version 1.0.3
    • 결과:

선택 2. Visual Studio 솔루션 생성 : True

빌드 전 설정에서 설정한 환경으로 원하는 폴더에 Windows 타겟 Unity 빌드를 진행합니다.

빌드 후 설정

Hive SDK Unity Windows 앱 빌드 후 필요한 설정입니다. 유니티 빌드가 완료되면 다음 파일들이 생성됩니다.

  • build
  • Il2CppOutputProject
  • [프로젝트 명] 폴더
  • UnityPlayerStub
  • [프로젝트 명].sln
  • UnityCommon.props
  • locales
  • resources
  • swiftshader
  • .dll
  • cef.subprocess.exe
  • .pak
  • .bin
  • icudtl.dat

버전 설정

[프로젝트 명] 폴더 내 WindowsPlayerVersion.rc 파일에서 FILEVERSIONPRODUCTVERSION을 수정하여 버전 설정을 할 수 있습니다. 수정된 버전은 Hive 서버와 통신 시 appversion 정보로 사용됩니다.

Visual Studio 빌드 및 Hive SDK 복사

  1. sln 을 Visual Studio로 열어 빌드 시 build\bin\x64\Debug(또는 Master) 폴더에 실행 파일이 생성됩니다.
    • Unity 2018.4.17의 결과물을 Visual Studio 2019로 실행 시 Retarget Solution 과정이 요구됩니다.
  2. Unity 빌드 시 생성된 폴더에서 [프로젝트 명_Data].slnUnityCommon.props를 제외한 파일들을 실행 파일과 같은 폴더에 복사합니다.
  3. locales, resources, swiftshader 폴더도 동일하게 복사합니다.
  4. hive_config.xml의 내용을 프로젝트에 맞춰서 수정하여 실행 파일 하위의 resources 폴더에 위치하도록 지정합니다. (Appid, Google 관련, Facebook 관련)
    • 게임에서 특별히 hive_config.xml에 입력된 마켓 값을 사용해야 하는 경우 Hive Store의 마켓 코드인 HS를 입력하세요. (단, hive_config.xml에 입력된 마켓 값은 실제 서비스에 영향을 주지 않습니다.)
  5. build\bin\프로젝트 명_Data 폴더를 실행파일이 있는 폴더로 복사합니다.

    6. build\bin [프로젝트 명_Data]\plugins 내 파일(.dll)은 중복되므로 삭제해도 무방합니다. 7. 실행 파일이 위치한 폴더 대신 build\bin [프로젝트 명_Data]\plugins에 부가 .dll과 리소스를 두어도 일부분은 가능하나 동작하지 않는 기능이 있기 때문에 실행파일이 위치한 폴더로 복사해서 사용합니다.

Note

개발자 PC 이외의 환경에서는 재배포 가능 패키지가 필요합니다.
디버그 빌드 시에는 재배포 패키지의 디버그 버전 DLL이 필요합니다: vccorlib140d.dll, vcruntime140d.dll, cruntime140_1d.dll, ucrtbased.dll, msvcp140d.dll, concrt140d.dl

미사용 XML 파일 삭제

Hive SDK Manager가 아니라 Unity 패키지로 Hive SDK Unity를 설치 또는 업데이트하는 경우, 앱을 빌드하기 전에 아래 경로에 있는 HIVESDK_{라이브러리_이름}Dependencies.xml 파일을 모두 삭제해야 합니다.

  • Assets/Hive_SDK_v4/Dependencies
  • Assets/Hive_SDK_v4/Editor

삭제해야할 파일 예시들은 다음과 같습니다.

  • HIVESDK_DefaultDependencies.xml
  • HIVESDK_HerculesDependencies.xml
  • HIVESDK_HiveAnalyticsConsentModeDependencies.xml
  • HIVESDK_HiveDataStoreDependencies.xml
  • HIVESDK_HiveDeviceManagementDependencies.xml
  • HIVESDK_HiveGoogleInAppReviewDependencies.xml
  • HIVESDK_HiveGoogleInAppUpdateDependencies.xml
  • HIVESDK_HivePromotionDependencies.xml
  • HIVESDK_HiveRealNameVerificationDependencies.xml
  • HIVESDK_MarketAmazonDependencies.xml
  • HIVESDK_MarketAppleDependencies.xml
  • HIVESDK_MarketGoogleDependencies.xml
  • HIVESDK_MarketHiveStoreDependencies.xml
  • HIVESDK_MarketHuaweiDependencies.xml
  • HIVESDK_MarketLebiDependencies.xml
  • HIVESDK_MarketOneStoreDependencies.xml
  • HIVESDK_MarketSamsungDependencies.xml
  • HIVESDK_ProviderAdjustDependencies.xml
  • HIVESDK_ProviderAppleDependencies.xml
  • HIVESDK_ProviderAppleSignInDependencies.xml
  • HIVESDK_ProviderAppsFlyerDependencies.xml
  • HIVESDK_ProviderFacebookDependencies.xml
  • HIVESDK_ProviderFirebaseDependencies.xml
  • HIVESDK_ProviderGoogleDependencies.xml
  • HIVESDK_ProviderGooglePlayGamesDependencies.xml
  • HIVESDK_ProviderHiveMembershipDependencies.xml
  • HIVESDK_ProviderHuaweiDependencies.xml
  • HIVESDK_ProviderLineDependencies.xml
  • HIVESDK_ProviderQQDependencies.xml
  • HIVESDK_ProviderRecaptchaDependencies.xml
  • HIVESDK_ProviderSingularDependencies.xml
  • HIVESDK_ProviderVKDependencies.xml
  • HIVESDK_ProviderWechatDependencies.xml
  • HIVESDK_ProviderWeverseDependencies.xml
  • HIVESDK_PushAmazonAdmDependencies.xml
  • HIVESDK_PushGoogleFcmDependencies.xml