12월, 2012의 게시물 표시

cocos2d-x 2.0.1에서 2.1.0으로 Win32만 Migration

이미지
회사에서 개발중인 프레임워크가 1차 버전이 어느정도 일단락 되었습니다. 그래서 cocos2d-x 버전을 2.0.1버전에서 최신인 2.1.0으로 마이그레이션 하면서 나오는 이슈들을 정리해봅니다. 이번 포스팅 이후로는 cocos2d-x 2.1.0 기반 내용들이 되겠네요.

 2.0.1 에서 2.0.2, 2.0.3, 2.0.4, 2.1.0 으로 버전업 하는데 약 6달간 많은 수정 및 추가 사항들이 있었습니다. 개중에 버그 수정등은 제외하고 중요하다고 생각되는 Feature 추가&수정 사항 몇개를 리스트로 정리해보겠습니다.
크로스 플랫폼 관련 해상도 처리 보완 및 강화( Multi Resolution support and Mechanism of loading resources, debug high resolution support )CocosBuilder 3.0 Alpha 최신 버전 지원New Nodes, Extensions( CCClippingNode, CCDrawNode, CCPhysicsDebugNode, CCPhysicsSprite, CCEditBox )안드로이드 APK 파일 액세스 향상Simple wrapper httpMac OSX, Linux, BlackBerry supportJavascript, Lua binding 보완Marmalade support  좀 더 자세한 사항은 cocos2d-x CHANGELOG를 확인해보시기 바랍니다.

본격적으로 정리에 앞서, 관심있으신 분들은 계속 읽어나가시면 되고 아니라면 그냥 새로운 프로젝트 진행할 때 cocos2d-x 업그레이드 하시는게 정신 건강에 좋다는 걸 염두해두시기 바랍니다.

win32 Visual Studio Template Install

 언제나 그렇듯? cocos2d-2.1beta3-x-2.1.0에 있는 install-templates-msvc.bat를 실행해줍니다.

 그럼 이제 비쥬얼 스튜디오에서 cocos2d-x 프로젝트 생성이 여전히 잘되겠지? 했는데 위 스샷부분에서 아무리 확인을 눌러도 다음으…

cocos2d-x Version Update시 Remove Old Template

이미지
현재 cocos2d-x 2.0.1에서 2.1.0으로 Migration중입니다. 이와 관련해서 cocos2d-x 구버전 Template을 삭제하는 것을 정리해봅니다.

cocos2d-x Win32 Visual Studio Template Remove

 먼저 Win32 Template 삭제입니다. 스샷과 같이 Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojects\ 디렉토리에서 CCAppWiz.win32.ico, vsdir, vsz 파일3개와 Cocos2d-x 디렉터리를 관리자 권한으로 삭제합니다.

 위에 굵게 표시한 Visual Studio 버전별 디렉터리는 아래와 같습니다.

VS2008 - Microsoft Visual Studio 9.0\VC\vcprojects\VS2008Express - Microsoft Visual Studio 9.0\VC\Express\vcprojects\VS2010 - Microsoft Visual Studio 10.0\VC\vcprojects\VS2010Express - Microsoft Visual Studio 10.0\VC\Express\vcprojects\VS2012 - Microsoft Visual Studio 11.0\VC\vcprojects\VS2012Express - Microsoft Visual Studio 11.0\VC\Express\vcprojects\

cocos2d-x Mac OSX Xcode Template Remove

 추후 정리.

우분투 다운로드 및 부트가능한 USB 만들기

이미지
이제부터는 우부툰도 거들떠 보려고합니다. 집에 남는 구형 울트라북이 있는데 원래부터가 OS 미포함 제품인데 그동안 Windows XP를 써오다가 맥북에 Virtual box로 XP를 깔아 쓸 예정이라 울트라북에 우분트를 설치해 활용해 볼려고 합니다.
우분트 이미지 다운로드USB 메모리에 굽기. 1기가 이상의 USB 필요.  이번 포스팅에서는 위와 관련된 내용을 정리해보도록 하겠습니다.

우분투 12.10 Features 소개 영상
1. 우분투 설치 이미지 다운로드

우분투 사이트에 접속해서 Download를 클릭합니다.

 Get Ubuntu 페이지에서 데스크탑용을 받을 것이므로 Ubuntu Desktop을 클릭합니다.

 데스크탑 우분투 다운로드 페이지 입니다. 원하시는 우분투 버전을 다운로드 합니다. 최신버전이 우분투 12.10 이지만 저는 장기지원해주는 12.04 LTS 32 bit 받는 걸로 진행합니다. Get Ubuntu 12.04 LTS를 클릭합니다.

 기부형식?으로 돈을 지불해서 다운로드 할 수도 있지만, 그러실분은 없겠죠? Now now, take me to the downlaod를 클릭해서 무료로 우분투를 다운로드 합니다.

 만약 다운로드 속도가 느리다면 데스크탑 우분투 다운로드 페이지에서 밑으로 스크롤 해보면 위 스샷과 같이 BitTorrent link가 있습니다.

 원하시는 비트 토렌트 파일을 받아 우분투를 다운로드 하시면 됩니다.


2. Universal USB Installer 다운로드 및 설치

 우분투를 USB에 구울때 쓰이는 Universal USB Installer을 다운로드 받아야합니다.

 우분투 데스크탑 다운로드 페이지에서 오른쪽에 보면 위 스샷과 같이 우분투 설치본을 만드데 필요한 스텝 바이 스텝 링크들이 몇개 있습니다. DVD에 굽거나 USB에 구울 수 있는 것에 대한 링크들인데 저는 윈도우에서 할 것이므로 Windows에 있는 How to create a bootable USB stick 링크를 클릭합니다.

 How to create…

개발자들이여 T store를 정복해보자 - 4. cocos2d-x T Store In App Purchase Integration

이미지
티스토어에 인앱 제품 추가까지 했다면 이제 실제로 코드 작업을 해야겠죠. 이번 포스팅은 cocos2d-x 기반 게임에 티스토어 인앱 결제 연동을 정리해보겠습니다.

 먼저 티스토어 개발자 센터로 가신 후 다운로드 -> 부분 유료화 API 메뉴에서 하단의 부분 유료화 API를 다운로드 합니다. 버전은 12.09.17 기준입니다.

 적절한 곳에 압축 해제 후 Java Build Path에서 Add External JARs를 눌러 추가시켜주고 Order and Export에 체크해줍니다. 이때 IAPLibD.jar와 IAPLibR.jar가 있는데 각각 디버그, 릴리즈용 입니다. 개발중에는 디버그용으로 하시고 최종 검증받으실 때는 릴리즈용으로 적용하시면 됩니다.

<activity android:label="@string/app_name" android:name="com.feelingk.iap.PwdActivity"/>

<!-- SMS receiver -->
<receiver android:name="com.feelingk.iap.SmsReceiver">
   <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
       </intent-filter>
   </receiver>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE&…

T Store In App Purchase 연동중 나오는 에러들

이미지
구글 플레이 인앱 빌링 연동때 나왔던 에러 정리했던 것처럼 티스토어 인앱 결제 연동하면서 나온 이슈들만 모아 정리해봅니다.

 '개발자 POC에 등록된 테스트 단말이 아닙니다. 등록 후 이용해 주세요' 에러가 발생할 수 있습니다.

 MDN을 등록하지 않았거나 개발용 라이브러리가 아닌경우 또는 자바 소스에 AppID와 PID를 제대로 기입했는지를 체크합니다. 제 경우는 AppID와 PID를 기입하지 않아 발생했었습니다.


 '상품미설정으로 테스트가 불가능합니다.' 에러가 발생할 수 있습니다.

 이는 티스토어 개발자 센터에 인앱 상품을 등록 후 테스트 상품별 설정에서 결과 설정을 하지 않아 생긴 문제입니다. 위 스샷과 같이 여러가지 상태중 꼭 한개는 선택을 하시고 테스트 진행하시면 됩니다.

Java The method xxxx is not visible Error

이미지
The method popPurchaseDlg(String, String, String, String) from the type IAPActivity is not visible

 위 스샷 및 로그와 같이 에러가 발생했습니다. 이런 에러는 접근자 관련 오류인 듯합니다.


case TSTORE_BUY:
{
((IAPActivity) getOwnerActivity()).popPurchaseDlg( msg.obj.toString(), null, null, null );
}
break;


 티스토어 SDK에 있는 IAPActivity의 아이템 결제 다이얼로그 창 띄우는 함수인데 내부적으로 protected 같은걸로 되어 있는 듯 합니다. 제 경우에는 JNIMapper라는 외부 클래스에서 호출해주려고 하다보니 발생했습니다. 그래서 외부에서 접근이 안되 오류가 발생했습니다.

 해결방법은 접근허용 가능한 곳에서 호출하면 되겠죠? IAPActivity를 상속받은 객체 내부에서 라던지 말이죠.

개발자들이여 T store를 정복해보자 - 3. In App Purchase 상품 등록 및 테스트 준비

이미지
티스토어에 앱 바이너리까지 등록을 했다면 이제 부분유료화 연동 작업을 해야겠죠. 코드 베이스 연동에 앞서 티스토어 개발자 센터에 부분유료화 아이템 추가작업을 먼저 알아보겠습니다.

부분유료화 아이템 추가
 이번 포스팅에서는 간단하게 소멸성 아이템 추가에 대한 것을 정리해봅니다. 다른 아이템 추가작업에 대한 이슈 발생시 따로 정리해보겠습니다.
 상품등록/관리 페이지에서 설정할 앱을 선택 후 부분유료화 탭의 상품등록 버튼을 클릭합니다.

 등록할 상품 정보 설정 화면이 나옵니다. 애플과 구글의 것에 비하면 비교적 단순하네요. 크게 소멸성과 영구적 아이템인 건당 상품과 일/주/월별 아이템인 기간 상품, 정식판 전환 상품으로 구분할 수 있습니다.

 스트리밍 특성을 갖는 상품은 스트리밍에 체크하라는데 뭔지 모르겠네요.

 추가적인 상품 종류에 관한 설명은 위 스샷으로 대체합니다.

 등록버튼을 누르면 부분유료 아이템이 추가됩니다. 여기서 부분 상품 ID는 아이템 고유 아이디로 인앱 결제시에 필요한 것입니다.


테스트 준비

 테스트를 완료한 상품에 한해 검증 요청을 할 수 있습니다. 부분유료화 아이템을 추가 후 테스트 진행 버튼을 클릭합니다.

 부분 유료화 개발자 지원 Self Test 팝업창이 뜹니다. 제가 입력한 숫치값이 테스트용 최대값입니다. 여기서 MDN이라는 놈이 있는데 별것 아니고 테스트 폰의 전화번호를 - 빼고 번호만 기입해주면 됩니다.

 추가 버튼을 누르면 테스트 단말 정보가 추가됩니다.

 상품별 설정에서는 상품에 따라 다양한 테스트 상태를 설정해볼 수 있게 되어있습니다. 여러가지 값으로 테스트해서 미리 준비하는 것도 괜찮겠죠.

 이제 cocos2d-x 기반 게임과 티스토에 인앱 연동이 남았네요. 다른 포스팅에서 정리를 해보도록 하겠습니다.

 참고
티스토어 개발자센터 상품등록/관리 가이드