모든 문서(일반 문서, 분류 문서, 파일(이미지, 사운드 등) 문서)는 분류가 달려 있어야 합니다.
--Administrator (토론)
Active User 모듈 적용 가이드 (iOS)
컴투스위키
Com2uS 공통모듈 | >> | Active User | >> | Active User 모듈 적용 가이드 (iOS) | >> | Active User 모듈 레퍼런스 가이드 | >> | Active User 샘플 가이드 | >> | Active User FAQ |
목차 |
역사
<작성법 참고>
Version | Date | SVN Revision | 담당자 | 변경 사항 |
---|---|---|---|---|
2.10.4 | 2020-09-25 | 최보경 |
| |
2.10.2 | 2020-06-16 | 정다운 |
| |
2.10.1 | 2020-01-23 | 정다운 |
| |
2.10.0 | 2019-12-12 | 최보경 |
| |
2.9.0 | 2019-10-16 | 최보경 | ||
2.8.8 | 2019-06-25 | 최보경 | ||
2.8.7 | 2019-03-14 | 2859 | 최보경 |
|
2.8.6 | 2018-11-20 | 2844 | 최보경 |
|
2.8.5 | 2018-08-31 | 2844 | 최보경 |
|
2.8.4 | 2018-06-27 | 2841 | 최보경 |
|
2.8.3 | 2018-05-02 | 2838 | 최보경 |
|
2.8.2 | 2018-02-07 | 2833 | 최보경 |
|
2.8.1 | 2017-12-18 | 2830 | 최보경 |
|
2.8.0 | 2017-12-08 | 2828 | 최보경 |
|
2.7.5 | 2017-10-30 | 2824 | 최보경 |
|
2.7.4 | 2017-09-20 | 2819 | 최보경 |
|
2.7.3 | 2017-08-11 | 2814 | 최보경 |
|
2.7.2 | 2017-07-24 | 2810 | 최보경 |
|
2.7.1 | 2017-01-26 | 2802 | 정다운 |
|
2.7.0 | 2016-11-21 | 2794 | 정다운 |
|
2.6.8 | 2016-10-07 | 2793 | 정다운 |
|
2.6.7 | 2016-9-09 | 2788 | 정다운 |
|
2.6.6 | 2016-07-29 | 2785 | 정다운 |
|
2.6.5 | 2016-07-27 | 2782 | 정다운 |
|
2.6.3 | 2016-05-26 | 2772 | 정다운 |
|
2.6.2 | 2016-01-19 | 2744 | 김규진 |
|
2.6.1 | 2016-01-04 | 2737 | 김규진 |
|
2.4.5 | 2015-10-08 | 2725 | 김규진 |
|
2.4.4 | 2015-09-02 | 2721 | 김규진 |
|
2.4.3 | 2015-06-17 | 2679 | 김규진 |
|
2.4.2 | 2015-04-06 | 2656 | 김규진 |
|
2.4.1 | 2015-02-06 | 2639 | 김규진 |
|
2.4.0 | 2015/1/7 | 2627 | 조태형, 김상우 |
|
2.3.2 | 2014/11/14 | 2609 | 조태형 |
|
2.3.1 | 2014/11/11 | 2608 | 조태형 |
|
2.3.0 | 2014/10/27 | 2590 | 이진우 |
|
2.1.2 | 2014/09/30 | 2577 | 이진우 |
|
2.1.1 | 2013/10/29 | 2498 | 이진우 |
|
2.1.0 | 2013/09/06 | 2478 | 김혜란 |
|
2.0.5 | 2013/08/26 | 2465 | 김혜란 |
|
2.0.4 | 2013/08/22 | 2462 | 김혜란 |
|
2.0.3 | 2013/08/12 | 2455 | 김혜란 |
|
2.0.2 | 2013/8/8 | 2453 | 김혜란 |
|
2.0.1 | 2013/7/31 | 2440 | 김혜란 |
|
2.0.0 | 2013/7/31 | 2432 | 김혜란 |
|
모든 버전의 역사 보기
적용 가이드
Resource 적용
- 특징
- 버전 2.3.0 부터 약관의 실시간 반영을 위해 Webview를 사용함.
- 네트워크가 원활하지 않을 때 약관을 받아올 수 없으므로, 로컬에도 약관 파일을 저장하고 있어야함.
- 로컬에 저장해야 하는 파일은 C2SAppInfoResource_com2us.bundle 이며, TF에서 자체적으로 제작.
- 2.8.0 이후 네트워크 통신이 실패해도 로컬 약관을 띄우지 않습니다. 때문에 로컬 약관 리소스를 별도로 첨부할 필요가 없습니다. (어떠한 경우에도 로컬 약관을 띄우지 않음)
- 약관 파일(html, json) 등록 및 다운로드
- Bundle 생성
- Active User UI Resources 경로
- Active User 디바이스 저장 약관(샘플) 경로
위 경로의 샘플 C2SAppInfoResource_com2us.bundle 은 '약관 정보 Json파일(국가에 맞는 약관을 설정)', '약관이 담겨있는 Html' 파일로 구성되어 있음.
실제 서비스 시 TF에서는 위 형식에 맞도록 C2SAppInfoResource_com2us.bundle 파일을 제작하여 사용해야 함.
프로젝트 빌드 설정
라이브러리 추가
- svn경로 : svn://devbackup.com2us.kr/Wrapper_redist/program/wrapper/lib/
- 위 경로에서 Active User, CommonModule 라이브러리를 다운로드.
- 원하는 프로젝트 경로에 파일을 추가.
헤더 추가
- svn경로 : svn://devbackup.com2us.kr/Wrapper_redist/program/wrapper/include/
- 위 경로에서 Active User 헤더 파일을 다운로드.
- 원하는 프로젝트 경로에 파일을 추가.
Other Linker Flags
- 프로젝트의 타겟을 클릭한 후, 우측 상단의 검색창에 Other Linker Flag를 입력.
- 검색 결과가 나오지 않을 경우, 메뉴 탭을 Basic에서 All 로 변경.
- Debug와 Release를 더블 클릭 한 후 아래 항목을 추가.
- 이미 추가 된 항목이 있다면, 해당 항목은 제외.
- debug: -ObjC -lC2SActiveUser_$(PLATFORM_NAME)d -lC2SCommonModule_$(PLATFORM_NAME)d
- release: -ObjC -lC2SActiveUser_$(PLATFORM_NAME) -lC2SCommonModule_$(PLATFORM_NAME)
- 관련 Header 파일명 : C2SActiveUser.h
Search Paths
- 프로젝트의 타겟을 클릭한 후, 우측 상단의 검색창에 Search Paths를 입력.
- 검색 결과가 나오지 않을 경우, 메뉴 탭을 Basic에서 All 로 변경.
- Header Search Paths와 Library Search Paths를 더블 클릭 한 후 필요한 모듈의 경로를 추가.
- 사용자마다 모듈의 경로가 다를 수 있으니, 자신의 경로에 맞게 적절히 입력.
Framework
- CoreTelephony.framework
- AdSupport.framework
- CoreGraphics.framework
- QuartzCore.framework.
튜토리얼
Callback 함수 추가
사용하려는 위치에 아래 예시처럼 콜백 함수를 추가.
약관 동의 Callback
void UserAgreeCallBack(USER_AGREE_RESULT type)
{
switch (type) {
case USER_AGREE_SUCCESS:
NSLog(@"USER_AGREE_SUCCESS");
break;
case USER_AGREE_TERMS_CLOSE:
NSLog(@"USER_AGREE_TERMS_CONFIRM");
break;
default:
break;
}
}
{
switch (type) {
case USER_AGREE_SUCCESS:
NSLog(@"USER_AGREE_SUCCESS");
break;
case USER_AGREE_TERMS_CLOSE:
NSLog(@"USER_AGREE_TERMS_CONFIRM");
break;
default:
break;
}
}
각 약관 동의 콜백은 다음과 같은 경우에 호출
- USER_AGREE_SUCCESS
- 1.약관 동의 화면이 나왔을 때, 모든 체크박스를 체크한 경우.
- 2.이미 약관동의가 완료 된 경우.
- 3.약관 동의가 필요 없는 국가의 경우.
- USER_AGREE_TERMS_CLOSE
- 1.게임내 이용약관 확인 함수 CS_UserAgreeShowTermsUI() 를 호출 한 후 닫기 버튼을 누른 경우. (iOS only)
- (유니티 사용 or 로드가 큰 게임의 경우 CS_UserAgreeShowTermsUI() 호출시 게임정지. USER_AGREE_TERMS_CLOSE 콜백시 게임 재개 가능.)
Get DID Callback
void ActiveUserCallBack(ACTIVE_USER_RESULT type)
{
switch (type) {
case ACTIVE_USER_GETDID_SUCCESS:
NSLog(@"ACTIVE_USER_GETDID_SUCCESS");
break;
case ACTIVE_USER_GETDID_FAIL:
NSLog(@"ACTIVE_USER_GETDID_FAIL");
break;
default:
break;
}
}
{
switch (type) {
case ACTIVE_USER_GETDID_SUCCESS:
NSLog(@"ACTIVE_USER_GETDID_SUCCESS");
break;
case ACTIVE_USER_GETDID_FAIL:
NSLog(@"ACTIVE_USER_GETDID_FAIL");
break;
default:
break;
}
}
Wrapper 사용 예시
콜백 함수를 추가 한 뒤, ActiveUser Start를 호출.
void startClet(int argc,char* argv[])
{
CS_ActiveUserSetCallback(ActiveUserCallBack); // Get did success / fail callback
CS_UserAgreeSetCallback(UserAgreeCallBack); // User agree callback
CS_ActiveUserStartEx(); // 약관 동의 시작
}
{
CS_ActiveUserSetCallback(ActiveUserCallBack); // Get did success / fail callback
CS_UserAgreeSetCallback(UserAgreeCallBack); // User agree callback
CS_ActiveUserStartEx(); // 약관 동의 시작
}
iOS 사용 예시
- (void)viewDidLoad
{
CS_ActiveUserSetCallback(ActiveUserCallBack);
CS_UserAgreeSetCallback(UserAgreeCallBack);
CS_ActiveUserStartEx();
}
{
CS_ActiveUserSetCallback(ActiveUserCallBack);
CS_UserAgreeSetCallback(UserAgreeCallBack);
CS_ActiveUserStartEx();
}
게임 시작과 동시에 최초 1회에 한하여 약관 동의 창이 노출.
ActiveUser의 Start 함수는 세션 기록을 위해, 앱을 시작할 때 마다 필수로 호출되어야 한다.
게임 내 이용약관 노출
- 게임 내에서 이용약관을 보여주는 기능을 사용할 경우 CS_UserAgreeShowTermsUI()를 호출.
- 해당 함수를 호출하게 되면 이용약관 페이지가 모달뷰로 노출됨.
- loadView.c 파일의 activeUserShowTerms() 함수는 이용약관 확인 버튼을 누르는 경우 호출 되는 코드 입니다.
void activeUserShowTerms()
{
CS_UserAgreeShowTermsUI(NULL);
}
{
CS_UserAgreeShowTermsUI(NULL);
}
Active User Sample
전체적인 흐름은 program/ wrapper /sample /iOS / ActiveUserSample을 참고.
Debug
Debug 모드에서만 디버깅로그가 남습니다. 디버깅 콘솔창에서 Command + F -> ActiveUser 로 검색 합니다.
Com2uS 공통모듈 | >> | Active User | >> | Active User 모듈 적용 가이드 (iOS) | >> | Active User 모듈 레퍼런스 가이드 | >> | Active User 샘플 가이드 | >> | Active User FAQ |