설치 환경

아래는 정상 설치를 확인한 테스트 환경입니다. Windows Native 빌드로 C인터페이스를 사용하며 Unity 엔진용이 아닙니다.

  • Unity 2021.3.22 (D3D 11)
  • Windows 10 64bit
    • Steamworks sdk 1.55 (Hive SDK C2S Windows 24.0.0 미만)
    • Steamworks sdk 1.59 (Hive SDK C2S Windows 24.0.0 이상)

적용 최소 사양

Windows 10 64 bit (x86_64) 이후 OS를 지원합니다.

설치 파일 정보

  • include: header 파일입니다. 1.20.3.2 기준 모바일 버전의 SDK 몇몇 차이점이 존재합니다. 별도 관리 또는 심볼이 달라지지 않도록 병합해주세요.
  • windows/lib: 빌드 시 링크가 필요한 DLL입니다.
  • windows/etc: 빌드 시에는 필요 없지만 빌드 완료후 HIVE_SERVICE.dll이 위치한 폴더로 복사해주세요.

개별모듈 Windows 설치하기

hive_config.xml 파일 구성

개별모듈 Windows에서는 hive_config.xml 파일 구성이 필요합니다. Hive 설정하기에서 설정 파일 작성 방법을 확인하고 작성해주세요.

C2S 개별모듈 Windows에서 필요한 필수 파라미터는 아래를 참조해주세요.

    필수 파라미터

  • appId
  • providers.signinwithapple.serviceid: SignIn With Apple 이용 시 필수
  • providers.facebook.id: 페이스북 로그인 사용 시 필수
  • providers.google.clientId: 구글 로그인 이용 시 필수

컴파일

  1. 먼저, 프로젝트에 windows/lib/HIVE_SERVICE.lib 또는 windows/libHIVE_SERVICE.dll을 링크합니다.
  2. 컴파일을 진행해 Windows용 게임 실행 파일과 폴더를 생성합니다.

컴파일 이후 작업

  1. windows/lib 폴더내의 파일을 게임 실행 파일 폴더로 복사합니다(링크한 경로에 따라 위치가 다를 수 있습니다.)
  2. 그 외 추가 파일 (windows/etc)을 게임 실행 파일 폴더로 복사합니다.
  3. 준비한 hive_config.xml을 게임 실행 파일 폴더/resources/hive_config.xml에 배치합니다.
  4. 실행 파일의 버전 변경 설정이 필요합니다. 별도의 빌드 스크립트 등을 이용해서 이미 설정 했다면 필요 없는 과정입니다. HIVE SDK 다운로드 로그 기능, 업데이트 팝업 기능에 영향이 있습니다.
    1. rcedit을 이용하는 경우 .rcedit.exe .game.exe --set-product-version 1.8.0.0 --set-file-version 1.8.0.0 과 같이 제품 버전, 파일 버전 변경이 필요합니다.
    2. 그 외 기타 방법으로 제품 버전, 파일 버전 변경이 필요합니다.
  5. 파일 버전 변경 후, powershell에서 명령어 (Get-Item .game.exe).VersionInfo | fl 또는 그 외의 방법으로 확인 가능합니다.

참고 사항

  • C2S 개별모듈 Windows에서는 게스트 로그인이 지원되지 않습니다.
  • InAppV4의 구독 기능이 지원되지 않습니다.
  • 기타 지원되지 않는 사항은 아래 “미지원 API”와 “동작이 다른 API”을 참고 부탁드립니다.
  • C2S 개별모듈 Windows 사용시 실행 폴더에 propFolder라는 이름으로 데이터 저장파일이 생성됩니다. Uninstaller 구성시 해당 파일이 같이 지워질 수 있도록 구성되어야 합니다.
  • C2S 개별모듈 Windows는 동시에 여러 개 프로세스가 실행되는 것을 보장하지 않습니다. 프로그램이 단일 인스턴스만 유지하도록 구성해주세요.
  • Windows 프로모션은 보안 문제로 인해 페이지에 X-Frame-Options 헤더가 설정된 경우 페이지를 렌더링할 수 없습니다. 프로모션으로 열고자 하는 페이지의 옵션을 확인하여 적용하시기 바랍니다.

미지원 API

C2SActiveUser.h

  • void CS_ActiveUserSetEnableRequestStoragePermission();
  • void CS_ActiveUserGetPermissionViewData(PermissionViewDataCB cb);
  • void CS_ActiveUserSetPermissionViewState(int isOn);
  • int CS_SetEmergencyModeWithUid(const char* uid);
  • void CS_ActiveUserRequestUserPermissions(const char* requests, RequestUserPermissionsCB cb);
  • void CS_UserAgreeShowTermsUI(void* parentView);
  • void CS_UserAgreeShowTermsUIEx(void* parentView, const char* url);
  • void CS_SetModuleOrientation(MODULE_ORIENTATION orientation);

C2SHIVEPromotion.h

  • CSOfferwallState CS_GetOfferwallState();
  • void CS_ShowOfferwall(const char* uid, CSPromotionViewHandler handler);
  • void CS_ShowReview(const char* uid, CSPromotionViewHandler handler);
  • void CS_ShowNativeReview(const char* uid);
  • void CS_ShowExit(const char* uid, CSPromotionViewHandler handler);
  • void CS_PromotionShowUAShare(const char* inviteMessage, const char* inviteLink, CSPromotionShareHandler handler);

C2SHub2.h

  • 게스트 로그인 및 게스트와 관련된 모든 기능
  • int CS_hubAsyncRequest(const char *requestName, const char *params, HubCallbackWithJSON responseCallback, void *callbackParam) 의 일부 API
    • user/me/notifications
    • user/modify_info
    • aca_user_quit_request
    • device/registered
    • guest/create
    • guest/auth
  • int CS_hubAuthWithQuery(const char *engageQuery, HubCallbackWithJSON closeCallback, void *callbackParam);
  • int CS_hubGuestAcquireUid(HubCallbackWithJSON closeCallback, void *callbackParam);
  • int CS_hubGuestBind(const char *guestUid, const char *candidateUid, HubCallbackWithJSON closeCallback, void *callbackParam);
  • int CS_hubSetAuthDialogClear(void);
  • int CS_hubShowDialog(const char *relativePath,HubCallbackWithJSON closeCallback,void *callbackParam);
  • int CS_hubShowDialogForChatbot(const char *chatbotParam, HubCallbackWithJSON closeCallback, void *callbackParam);
  • int CS_hubShowDialogWithQuery(const char *relativePath, const char *engageQuery, HubCallbackWithJSON closeCallback, void *callbackParam);
  • int CS_hubSocialRequest(const char *socialService, const char *requestName, const char *params, HubCallbackWithJSON responseCallback, void *callbackParam);
  • int CS_hubUserDelete(HubCallbackWithJSON closeCallback, void *callbackParam);

C2SInAppV4.h

  • void CS_IapV4GetSubscriptionProductInfo(ProductInfoCB cb);
  • void CS_IapV4PurchaseSubscription(const char* marketPid, const char* oldMarketPid, const char* additionalInfo, ReceiptInfoCB cb);
  • void CS_IapV4RestoreSubscription(ReceiptListInfoCB cb);
  • void CS_IapV4CheckPromotePurchase(CheckPromotePurchaseCB cb);
  • void CS_IapV4ShowMarketSelection(MarketListCB cb);
  • void CS_IapV4GetBalanceInfo(BalanceCB cb);
  • void CS_IapV4ShowCharge(BalanceCB cb);
  • void CS_IapV4SetLifecycleCB(IapV4LifecycleCB cb);

C2SMercury.h

  • int CS_MercuryShowReviewPopup(const char* uid, const char* vid, const char* did);
  • int CS_MercuryShowReviewPopup(const char* uid, const char* vid, const char* did);
  • int CS_MercuryShowNativeReviewPopup(const char* uid, const char* vid, const char* did);
  • int CS_MercuryShowMoregamesPopup(const char* uid, const char* vid, const char* did);
  • int CS_MercurySetBannerOnGameWindow(int isOn);
  • int CS_MercuryRequestUALinkShare(const char* urlLink, const char* shareMessage);

C2SOfferwall.h

  • 모든 API

C2SPush.h

  • 모든 API

동작이 다른 API

  • CS_hubAuth: iOS와 Android에서는 로그인 이후 이 API를 호출 시, 로그인을 추가로 호출한 뒤 응답을 돌려주도록 되어있습니다. 하지만 Windows에서는 이미 로그인 되어있다면 HiveSocialErrorCode::HiveSocialAlreadyAuthorized을 돌려주게 됩니다.