2017년 2월 22일 수요일

Google Play 세팅

1) 구글 콘솔에 앱 등록

구글콘솔
https://play.google.com/apps/publish/?dev_acc=14153587827699263126#ManageReleasesPlace:p=com.volthole.guardiansword

애플리케이션 등록 게시 까지는 해야 한다. 게시 하는 조건으로 여러가지를 요구함
(이미지, 설문, 텍스트 설명, APK 파일 등)
참고로 APK 등록 후 같은 패키지명으로 다시 올리기 위해서는 버전업을 해야함



2) 구글 플레이 서비스 연동
출처 및 참고


앱 등록 후, 서비스 및 API  를 클릭하면
(권한이 없다면 권한을 요청해야 함)


이후 진행은


게임에서 google api를 아직 사용하지 않습니다.( 처음 연동하는거면 )
완료가 되면 아래 카테코리가 있는 화면으로 연결


게임 세부정보, 연결된 앱, 업적, 리더보드, 테스트 항목을 만든다.





업적은 등록하고나서 리소스 받기를 하고

이걸 복사해서


위 그림의 ids 파일의 내용에 덮어씌워야 한다. (stan. 이 아닌 경우 어찌해햐 하는지 추후 알아보자)

리더보드의 경우도 마찮가지, 리더보드 항목의 리소스 받기는 업적의 리소스 받기와 같은
내용이 받아진다.



androidmanifest 내용 수정
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="\ app_id" />
이런 내용이 있다면 app_id 부분에 128570551865 <- 이런 앱 아이디를 넣어줌
이게 틀리면 GPS 접속이 되느냐 안되느냐의 문제를 유발함





3) 구글 플레이 결제, 테스트

Assets/Plugins/Android 폴더에 androidnative.jar 와 AndroidManifest.xml
파일이 있는지 확인. 참고

Services & APIs 항목에서 public license key 를 확보한다.
(Base64 인코딩 RSA 공개 키, 상당히 길지만 이미지는 보안 위해 생략된 것임)


Open Window -> Android Native -> Edit Settings 의
Base64 Key 항목에 넣어야 하는데 가디언 프로젝트는 그렇지 않다.


코드단에서 처리해 줘야 한다.

builder.Configure... 부분에서 SetPublicKey("key~~");



게임 데이터에서 csv(product.csv)에서 읽어들인 정보로 구성된
gamedata 객체의 product data를 참조해
PurchaseHelper 의 productIDList 를 구성하는 부분,
이 부분에서 디버깅 하번 해보면 product.csv 파일의 내용을 참고고
구글 스토어에 상품등록을 어떻게 해야 하는지 알수 있다.

상품등록 페이지로 이동


하나의 상품을 미리 등록해보았다.

큐브33은 구매자에게 보이는 상품 이름이고,
cubebox1 은 csv 파일에 기록된 상품의 코드다. 프로그래머가 신경써야 할 부분은 이것



테스터(테스트 결제) 추가

이제 테스트 결제를 해야하는데, 주의 할 점은 앱에 로그인 및 테스트 결제를 할수 있는
계정을 미리 등록해 두어야 한다는것.

테스트를 하기 위해서는
1. GPS(Google Play Service) 로그인 허용
2. 테스트 동의 절차
3. 테스트 결제 권한

을 수행해야 한다.


1. GPS(Google Play Service) 로그인 허용




2. 테스트 동의 절차

의 설정 / 테스터 참여 대상 관리 로 들어간다.


















새로운 목록을 만들어도 되고 기존 것을 수정해도 된다.
아무튼 원하는 테스터를 추가 등록해 준다.



다음으로
만들어진 또는 수정된 항목이 해당 앱에 적용되도록 설정해주러 간다.
해당앱 선택 / 출시관리 / 앱 버전 / (해당 버전 :알파,베타,프로덕션) 버전관리


아래의 비공개 알파테스트 옆에 표시 누르면 확장되며 내용이 나온다.


좀전에 수정했던 항목이 적용 되어 있는 것을 확인 했다면 오케이


이곳에서 테스트 참여 URL을 확인할 수 있다.( 보이는 이미지 하단 부 참고)
https://play.google.com/apps/testing/com.volthole.guardiansword
해당 메일에 권한을 부여했으니 이제 그 메일의 주인이 테스트에 동의 하겠다는
절차를 수행 해야 한다.


등록된 테스터는 해당 메일(gmail)로 로그인된 인터넷 브라우저로
테스트 URL로 접속하여 "테스트 참여하기" 라는 버튼을 눌러서 테스터 승인을 해야함
        

이 부분을 수행하지 않으면 테스트 결제를 시도할 때 요청할수 없다는 오류가 뜬다.


테스트 apk 설치
URL을 통해서 다운 또는 같은 버전의 apk파일을 직접 설치

여기서 버전이라 하면 위의 그림에 표기된 버전을 이야기 하는것임
(여기서 버전업을 해서 빌드하고, 구글 콘솔에 새로 등록을 할 경우
완전히 반영이 되도록 기다려 줘야 함 한시간 정도 소요되는듯 하다)


3. 테스트 결제 권한(결제를 시도할 때 실제가 아닌 테스트 결제로 이루어지는가)

구글 콘설 / 설정

화면이 바뀌면 별도의 버튼 누르지 말고 스크롤을 제일 하단으로 내림

위와 같은 부분에 테스트 권한이 있는 Gmail 계정에 해당 이메일을 추가해 주면 된다.

이후 테스틀 해보면 아래와 같은 전, 후 차이가 생김

         
추가 전 과 후
테스트 문구가 들어간다. 없으면 실제로 결제가 됨

결제 테스트를 하고 서버로 결제 정보를 넘겨줄때
테스트 결제의 경우 orderID가 빈 값으로 온다.

참고: 테스트 구매에는 orderId 필드가 없습니다. 테스트 구매를 추적하려면 purchaseToken 필드를 대신 사용하세요





추가 : 테스터 gmail

게시자는 테스트 결제 자체를 못함
(The publisher cannot purchase this item -
https://stackoverflow.com/questions/14139034/testing-in-app-billing-the-publisher-cannot-purchase-this-item)

https://developer.android.com/google/play/billing/billing_testing.html
"Google Payments에서는 개발자가 스스로에게서 아이템을 살 수 없도록 되어 있으므로, 자신의 개발자 계정을 사용하여 전체 인앱 구매 프로세스를 테스트할 수는 없습니다"