- Android
- 결제 테스트하려는 계정이 베타테스터로 초대되고, 초대장을 수락하여 베타테스터가 되어야한다.
- 개발자 콘솔에 테스터로 등록된 계정이 디바이스의 Play 스토어에 로그인되어 있어야 한다. 멀티로 로그인되어 있으면 자동으로 특정 계정을 선택하니 테스트로 등록된 계정 1개만 있는 것이 좋다
- 테스트하려는 앱 version code와 마켓에 올라간 version code가 동일해야한다. (확실하지 않다)
- 인앱상품이 개발자 콘솔에서 활성화되어 있어야 한다.
- (Unity IAP의 경우) InitializationFailureReason.PurchasingUnavailable 에러일 경우 단말기에 구글 로그인이 되어있지 않을 때 발생하는 에러이다.
- Unavailable product "상품명" -"상품명" 에러가 뜬다면 상품이 비활성화됐거나, 앱이 "출시됨"상태가 아니라 "게시 보류 중"상태인 경우이다.(알파/베타 트랙 모두 해당)
- 구글플레이콘솔-설정-개발자 계정-계정 세부정보-라이선스 테스트에 테스트할 계정이 등록되어 있어야 한다.
- "거주 중인 국가에서는 사용할 수 없음" 이 뜬다면 테스터 수락을 하지 않아서이다.
- 구글 콘솔 > 게임명 > 테스트 > 비공개 테스트 > 테스터 > 웹에서 참여 > 링크 복사
- 테스트의 계정으로 위의 링크로 들어가서 테스터 수락을 해야 한다.
- iOS
- 인앱상품이 itunes connect에 등록되어 있어야 한다.
- xcode에서 archive된 앱이 마켓에 등록되어 있어야 한다.
- xcode Capabilities에서 In App Purchase가 활성화되거나, 프로비저닝 파일에 In App Purchase가 활성화되어야 한다(이건 둘다 확실하지 않다.)
- SandBox 계정으로 결제해야한다. 그럴려면 디바이스의 App Store에 계정 로그인이 아무것도 되어있으면 안되고, 결제 시도시 SandBox 계정으로 로그인하여 결제해야한다. SandBox계정은 실계정이랑도 겹치지 않는 계정이어야 한다.
- SandBox계정은 존재하지 않는 이메일 주소로 등록해도 상관없다.
- ios 11부터는 샌드박스 테스트 에러가 있어서 결제시 마켓 로그인하라는 에러가 뜨기 때문에 디바이스os버전이 ios 11 미만 버전에서 테스트를 해야한다. ios 13에서는 잘 된다. 아마 ios 11만 안되지 않을까...