설치 환경
아래는 정상 설치를 확인한 테스트 환경입니다. 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: 구글 로그인 이용 시 필수
필수 파라미터
컴파일
- 먼저, 프로젝트에 windows/lib/HIVE_SERVICE.lib 또는 windows/libHIVE_SERVICE.dll을 링크합니다.
- 컴파일을 진행해 Windows용 게임 실행 파일과 폴더를 생성합니다.
컴파일 이후 작업
- windows/lib 폴더내의 파일을 게임 실행 파일 폴더로 복사합니다(링크한 경로에 따라 위치가 다를 수 있습니다.)
- 그 외 추가 파일 (windows/etc)을 게임 실행 파일 폴더로 복사합니다.
- 준비한 hive_config.xml을 게임 실행 파일 폴더/resources/hive_config.xml에 배치합니다.
- 실행 파일의 버전 변경 설정이 필요합니다. 별도의 빌드 스크립트 등을 이용해서 이미 설정 했다면 필요 없는 과정입니다. HIVE SDK 다운로드 로그 기능, 업데이트 팝업 기능에 영향이 있습니다.
- rcedit을 이용하는 경우
.rcedit.exe .game.exe --set-product-version 1.8.0.0 --set-file-version 1.8.0.0
과 같이 제품 버전, 파일 버전 변경이 필요합니다. - 그 외 기타 방법으로 제품 버전, 파일 버전 변경이 필요합니다.
- rcedit을 이용하는 경우
- 파일 버전 변경 후, 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을 돌려주게 됩니다.