[android] 응용 프로그램 오류 :이 버전의 응용 프로그램은 시장 청구 용으로 구성되지 않았습니다.

며칠 후 Android 앱에서 인앱 결제를 사용할 수 있습니다. 물론 아주 멋지다. 그래서 나는 이것을 구현하기 위해 내 응용 프로그램에 대한 업데이트 작업을 시작했습니다. 하지만 이제 몇 가지 문제가 있습니다. 이것이 내가 한 일입니다.

  • 먼저 정적 인앱 결제 응답을 테스트하기 위해 예약 된 제품 ID를 시도했습니다. 문제없이 작동합니다.
  • com.android.vending.BILLING 권한이 포함 된 초안 APK (프로덕션 서명, 디버그 서명 없음)를 시장에 업로드했습니다.
  • 그렇게했을 때 마켓에서 내 앱에 ‘인앱 상품’을 추가하고 게시 상태로 설정할 수있었습니다.
  • 테스트 사용자를 만들고 해당 테스트 사용자를 테스트 장치의 기본 계정으로 만들기 위해 장치를 재설정했습니다.
  • 예약 된 제품 ID는 여전히 작동합니다.

이제 문제가 발생합니다. 내 고유 한 제품 ID (이전에 추가 한 ID, 위 참조)를 사용하면 다음 텍스트가 포함 된 대화 상자가 표시됩니다.

응용 프로그램 오류 :이 버전의 응용 프로그램은 시장 결제 용으로 구성되지 않았습니다. 자세한 내용은 도움말 센터를 확인하세요.

로그에서 찾을 수있는 이상한 것은 없습니다. 아무도 내가 여기서 뭘 잘못하고 있는지 알고 있습니까?



답변

방금이 문제가 발생하여 서명되지 않은 디버그 버전의 앱을 실행하고 있었기 때문이라는 것을 깨달았습니다. Eclipse에서 내 애플리케이션을 내보내고 서명 한 후 휴대폰에 설치하면이 오류 메시지가 표시되지 않고 인앱 제품을 사용할 수있었습니다.


답변

내 APK의 새 사본을 시장에 업로드하면 다음 1 시간 정도 동안 “애플리케이션 오류”가 발생합니다. 최소 1 시간이 지나면 (때로는 최대 2 시간이 지나야 함) 더 이상 오류가 발생하지 않으며 문제없이 항목을 구입할 수 있습니다. Google 서버가 새 APK를 업로드했다는 사실을 처리하는 데 최소 1 시간이 소요되는 것 같습니다 (APK의 인앱 결제 측면과 관련하여).

따라서 제 조언은 APK를 업로드 한 후 1 ~ 2 시간을 기다린 다음 여전히 “애플리케이션 오류”가 발생하는지 확인하는 것입니다.


답변

나는 또한이 문제에 부딪쳤다. 마침내 게시 된 앱의 버전 코드가 3이고, 초안 (결제 권한이있는 게시되지 않은 APK)의 버전 코드가 4, 인앱 결제를 테스트하는 데 사용했던 서명 된 APK가 여전히 versionCode 3이라는 것을 깨달았습니다. versionCode를 4로 변경하여 요청한 구매에 대한 실제 인앱 상품 페이지로 이동할 수있었습니다.


답변

이는 초안으로 업로드 된 APK가 테스트 모드의 시스템에서 실행중인 APK와 일치하지 않는 경우 서명되고 릴리스 된 빌드에서 발생할 수 있습니다. 빌드가 일치하는지 확인하십시오. 테스트 모드에서는 문제가 없으며 오류 표시가 중지됩니다.

여기서 큰 걱정은 프로덕션에서 이와 동일한 동작을 볼 수 있다는 것입니다. 즉, 인앱 결제로 1.0.0-1을 릴리스 한 다음 1.0.0-2를 릴리스하고 1.0.0-1을 실행하는 사용자는 구매할 수 없거나 구매를 복원 할 수 없으며 동일한 오류가 발생합니다 (매우 나쁜 사용자 경험). 이 동작을 테스트 모드와 관련된 것으로 언급하기 위해 문서를 샅샅이 뒤졌지만 지금까지는 운이 없습니다. 여기에 버그를 추가했습니다. http://code.google.com/p/marketbilling/issues/detail?id=15#c0


답변

나도 같은 문제가 발생했지만 이제 문제가 해결되었습니다.

몇 번의 시도를 기반으로 한 내 관찰 :

  1. 버전 코드는 Google Play와 기기에서 모두 일치해야합니다.
  2. 버전이 일치하더라도이 오류가 계속 발생할 수 있습니다.
  3. 1 ~ 2 시간 정도 기다린 후 시도 하면이 오류가 발생 하지 않습니다.

도움이 되었기를 바랍니다


답변

중복 질문에서 복사 : https://stackoverflow.com/a/22469253/1321401

이 오류는 여러 가지 이유로 발생할 수 있습니다.
다음은 Google IAB 테스트를위한 요구 사항 목록입니다.

전제 조건 :

  1. AndroidManifest는 “com.android.vending.BILLING”권한을 포함해야합니다. .
  2. APK가 출시 모드 로 빌드 됨 .
  3. APK가 출시 인증서 로 서명되었습니다. .
  4. APK는 알파 / 베타 배포 채널 (이전에는 초안)에 개발자 콘솔에 한 번 이상 업로드됩니다. ( 약 2 시간 -24 시간 소요 ).
  5. IAB 제품이 게시 되고 해당 상태가 활성으로 설정됩니다 .
  6. 개발자 콘솔에 테스트 계정이 추가 되었습니다.

테스트 요구 사항 :

  1. 테스트 APK의 버전동일합니다. 개발자 콘솔에 업로드 된 가 있습니다.
  2. 테스트 APK는 dev.console에 업로드 된 것과 동일한 인증서 로 서명됩니다 .
  3. 테스트 계정 (개발자 아님)- 기기 의 기본 계정 입니다.

PS : 릴리스 인증서를 사용하여 디버깅 : https://stackoverflow.com/a/15754187/1321401 (Thnx의 @dipp 링크의 경우 )

PPS : 이미 오랫동안이 목록을 만들고 싶었습니다.

업데이트 용 Thnx @zlgdev


답변

내 솔루션은 마켓 (초안 APK) 및 테스트에서 apk에 서명하는 데 동일한 키를 사용해야한다는 것입니다. 따라서 응용 프로그램을 실행하는 대신 항상 모든 업데이트와 함께 서명 된 APK를 내보내고 apk 명령 줄 명령을 사용하여 장치에서 제거하고 다시 설치해야합니다. 원칙적으로 자체 키 저장소를 디버그 키 저장소로 사용할 수도 있지만이를 위해서는 특정 하드 코딩 된 암호와 키 이름을 사용해야합니다.