이 버전의 응용 프로그램이 Google Play를 통한 과금을 위해 구성되지 않았습니다.
인앱 과금을 사용하여 응용프로그램을 실행하려고 하면 "이 응용프로그램 버전은 Google Play를 통한 과금을 위해 구성되지 않았습니다.자세한 내용은 헬프 센터에서 확인하시기 바랍니다."
저는 이미 매니페스트 파일에 청구 권한이 있고 구글 플레이에 초안으로 업로드된 signed .apk를 가지고 있으며 같은 signed apk를 핸드폰에 설치했습니다.
이 문제를 해결하는 방법에 대한 도움이 있습니까?
이 오류는 여러 가지 이유로 인해 발생할 수 있습니다.
다음은 구글 IAB 테스트를 위한 요구사항 목록입니다.
필수 구성 요소:
- Android Manifest는 com.android를 포함해야 합니다.자동판매기BILLING" 권한입니다.
- APK는 릴리즈 모드로 내장되어 있습니다.
- APK는 릴리스 인증서와 함께 서명됩니다.(중요: "App Signing by Google Play"에서는 Google PlayStore에서 직접 다운로드한 경우에만 작동합니다!)
- APK는 알파/베타 배포 채널(이전에는 초안으로)에 한 번 이상 개발자 콘솔에 업로드됩니다.(2시간-24시간 정도 소요됨).
- IAB 제품이 게시되고 상태가 active로 설정됩니다.
- 테스트 계정이 개발자 콘솔에 추가됩니다.
테스트 요구사항:
- 테스트 APK의 버전 코드는 개발자 콘솔에 업로드한 것과 동일합니다.
- 테스트 APK는 dev.console에 업로드된 인증서와 동일한 인증서로 서명됩니다.
- 테스트 계정(개발자가 아님) - 장치의 주 계정입니다.(메인 계정이 필요 없을 수 있음 - @MinosL comment에 따르면)
- 테스트 계정은 테스터로 선택되어 유효한 결제 수단으로 연결됩니다.(@Kyone)
추신: 릴리스 인증서를 사용한 디버깅: https://stackoverflow.com/a/15754187/1321401 (링크에 대한 Thnx @dipp)
추신: 이미 오래전부터 이 목록을 만들고 싶었습니다.
Thnx @zlgdev, @Kyone, @MinosL 업데이트
아하는 몇 시간 동안 노력한 끝에 해결책을 찾았습니다.
- Google은 애플리케이션을 처리하고 서버에 업데이트하는 데 시간이 걸립니다. 저는 반나절 정도 걸립니다.따라서 구글 플레이에 apk를 초안으로 저장한 후 인앱 제품이 정상적으로 반응하고 정기적인 구매가 가능하도록 몇 시간을 기다려야 합니다.
- APK를 내보내고 서명합니다.서명되지 않은 APK에서 구매를 시도하면 오류가 발생합니다.
게시된 버전이 전화기에서 테스트 중인 버전과 같지 않은 경우에도 동일한 현상이 발생합니다.
예를 들어 업로드된 버전은android:versionCode="1"
, 핸드폰으로 테스트하고 있는 버전은android:versionCode="2"
이전 개발자 콘솔에서:
Settings
->Account details
->License Testing
-> 테스트 접속이 가능한 Gmail 계정은 여기에 계정을 입력합니다.
새 개발자 콘솔에서:
Setup
->License Testing
-> Gmail 계정을 입력하고 'Enter'를 누른 후 'Save'를 클릭합니다.
APK에 실시간 인증서로 서명해야 합니다.그런 다음 테스트 장치에 설치합니다.그런 다음 InAppBilling을 테스트할 수 있습니다.(디버그 모드에서) 장치로의 일식을 통해 응용 프로그램을 직접 실행하여 테스트하는 경우 이 오류가 발생합니다.
사용하시는 경우android.test.purchased
SKU로서, 그것은 끝까지 작동할 것이지만, 당신의 최종 응답에는 개발자 Payload가 없을 것입니다.
앱 항목에서 본인의 초안을 사용하는 경우 끝까지 테스트할 수 있지만 비용이 청구되므로 나중에 본인이 직접 환불해야 합니다.
구글 플레이 개발 콘솔과 동일한 gmail 계정으로 아이템을 구매할 수 없습니다.
2021년 결론
디버깅에 관심이 있는 여러분 모두를 위해 - 디버그 모드에서 코드를 실행하고 디버그하고 테스트할 수 있습니다.
프로세스를 테스트하는 방법은 다음과 같습니다.
(물론 이는 제품을 이미 추가하고 활성화했으며 코드가 해당 제품과 통합될 준비가 되어 있다는 사실에 달려 있습니다.)
- com.android를 추가합니다.자동판매기매니페스트에 청구
- 내부 테스트에 서명된 apk 업로드
- 라이센스 테스터 추가(콘솔 재생 -> 설정 -> 라이센스 테스트) - 장치에서 여러 계정을 사용하지만 어떤 계정을 사용할지 모르는 경우 모두 테스터로 추가하면 됩니다.
- Android Studio에서 평소처럼 애플리케이션을 실행합니다. (* 애플리케이션은 방금 내부 테스트에 업로드한 버전 코드와 동일한 버전 코드를 가져야 합니다.)
위에서 했는데 잘 작동하고 있습니다.
2018년부터 오신 분들은 플레이스토어에서 직접 APK를 다운받아 '유래' APK를 설치하셔야 합니다.구글 플레이 스토어에 '구글 플레이로 서명하는 앱' 기능이 있어서 그런 것 같습니다.
이것은 앱이 Play Signing에 의해 서명된 경우 디버그/릴리즈 빌드에 대해 테스트됩니다.(안드로이드 스튜디오를 사용하여 앱을 설치할 때 Google Play에서 전달된 앱의 서명 인증서가 인증서와 다르다는 것을 의미함).
다음 단계를 점검합니다.
- Google Play Console에서 제품을 만들고 활성화합니다.
- 라이센스 테스터를 추가합니다(Google Play Console -> Settings -> License Testing(구글 플레이 콘솔 -> 설정 -> License Testing).Android 장치에 나열된 Google 계정을 모두 추가합니다.
- 서명된 앱을 내부 테스트 트랙에 업로드합니다(이 앱은 릴리스 모드여야 함).
- 테스트 링크를 사용하여 앱을 다운로드할 수 있는지 확인합니다(내부 트랙에 업로드된 앱 버전이 디버그 모드에서 테스트 중인 버전과 일치하는지 확인합니다).거기서 최신 업로드 버전을 보려면 시간이 좀 걸리니 플레이스토어 앱의 캐시를 지우는 것을 추천합니다.
- Android Studio에서 앱을 디버그 모드로 실행합니다.(다시 말하지만, 앱 버전과 빌드 번호는 게시된 버전의 값과 내부 트랙이 일치해야 합니다.)
두 개의 구글 플레이 콘솔 계정(두 개의 다른 앱)에서 테스트해보니 작동합니다.
만약 당신이 구글 플레이에 있는 apk와 다른 버전의 apk를 사용한다면 이것은 일어날 것입니다.
제게 있었던 일을 덧붙이자면, 누군가를 도울 수 있을 겁니다.
그것은 주로 사인 때문이었습니다.
프로젝트 구조에 서명 내용을 추가했기 때문에 실행할 때마다 예상되는 서명 apk가 설치되고 있다고 생각했습니다.그러나 빌드 유형 '디버그'가 선택되었습니다.
아래 수정을 통해 문제가 해결되었습니다.
- 빌드 유형 'release'의 서명된 apk가 생성되었습니다.
- 수동으로 apk를 설치했습니다.
SO 및 기타 사이트에 대한 많은 답변 및 의견과 달리 Google Play에서 테스트 장치로 다운로드한 제품의 알파/베타 버전으로 사전 테스트를 수행할 필요가 없습니다(알파/베타 게시 프로세스로 인해 반나절이 걸리는 경우가 종종 있음).서명된 릴리스 apk를 개발자 스튜디오에서 테스트 장치로 로드하고 다시 로드할 필요도 없습니다.
개발자 스튜디오에서 ADB를 통해 직접 테스트 장치로 로딩된 디버그 앱을 사용하여 앱 과금 서비스의 예비 구글 플레이를 디버그할 수 있습니다.이를 방지하는 오류가 발생하는 경우 코드에 잘못이 있을 수 있습니다.SKU(제품 ID)의 CASE(제품 ID)와 형식에 특히 주의해야 합니다(예: APK를 com.mydomain.my _product_id로 로드하는 경우 동일한 케이스와 도메인을 제공하는 방식으로 구입해야 함).또한, 당신의 아이템에 특히 세심한 주의를 기울이세요.유형 - 앱 구매 또는 구독에서 관리/비관리된 경우에는 각각 "inapp" 또는 "subs"여야 합니다.
Chirag Patel이 제안한 대로, 청구 코드가 적절하게 설정되어 있다면, 예비 테스트 동안 Android.test.purched Sku(제품 ID)를 사용하여 모든 테스트를 수행하십시오.이 데이터는 Google 테스트 시스템에서 제공하지 않으므로 서명, 토큰 및 페이로드 검사를 통과하기 위해 청구 작업 전반에 걸쳐 이 ID를 확인하십시오.또한 테스트 제품 중 하나에 이 ID를 부여하여 스키마를 통해 제품 구매, 잠금 해제/로드 및 프레젠테이션을 테스트합니다.구매를 지우기 위해서는 동일한 Sku와 이와 같이 형식화된 토큰 문자열을 전달하고 소비하기만 하면 됩니다. 다른 필드는 관련이 없습니다.
"inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";
이 테스트 단계를 완료했으면 알파/베타 제품을 사용한 세미 라이브 테스트로 이동합니다.Google 그룹(기본적으로 메일링 목록)을 만들고 테스트 사용자 이메일을 추가한 다음 이 단계에서 이 그룹을 추가/초대하여 장치를 테스트합니다(앱의 Google 개발자 목록의 "APK" 부분에서 수행).구매는 모의 실행되지만 실제로는 청구되지 않습니다. 그러나 구매를 지우고 다시 테스트하려면 Google 지갑에서 환불해야 한다고 표시됩니다.이 단계는 알파/베타 부하를 사용하고 사용자를 테스트하는 데 시간이 많이 걸리는 과정이 필요한 유일한 테스트 단계입니다.
저의 경우 설치된 apk와 마켓 apk에 업로드된 apk의 시그니처가 달라서 같은 메시지를 보았습니다.
같은 문제가 있었는데, DZDomi의 게시물을 읽기 전에 해결되지 않았습니다.갑자기 Google 개발자 콘솔에 사용 가능으로 설정해야 하는 설정이 있습니다."앱 구매 중" 섹션에는 제품에 대한 줄이 있고 오른쪽 끝에는 제품에 대한 상태가 표시됩니다.활성화 되어야 합니다!
IAB를 디버그하려면 다음 작업을 수행해야 합니다.
매니페스트에 대한 IAB 권한이 있는 앱의 버전을 Google에 제출합니다.
Google Play에서 앱에 제품 추가:인앱 과금 관리
서명된 사용자 지정 디버그 키스토어 설정: 서명된 키스토어를 사용하도록 Eclipse 구성
여기에 언급되지 않은 또 다른 이유는 실제 장치에서 테스트해야 하기 때문입니다.에뮬레이터가 정말 좋아졌으니 실수하기 쉽습니다.
최근 Google은 시스템에 변경사항을 적용했으며, 콘솔에 적어도 하나의 APK를 업로드했으므로 버전 코드/번호를 지정하여 앱에서 인앱 요청을 테스트할 수 있습니다.
교차 참조 LINK
디버깅을 위해 디버그 빌드에 서명하도록 구성합니다.
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("my-release-key.jks")
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
...
}
}
}
해결책
구글은 앱 버전 업데이트에 시간이 좀 걸리므로 플레이 스토어에 앱을 업로드한 후 잠시만 기다려 주십시오.잘 될 겁니다!
게시되지 않았지만 배포된 id, 버전 코드, 버전 이름이 같은 다른 앱과 통합하고 싶으셨다면 flutter app에서 appname.iml 파일 버전을 편집하는 것도 잊지 마세요. 같은 오류로 계속 붙었으니까요.
내 문제는 디버그로 그것을 확인하려 했다는 것입니다.키스토어, 내 말은 일식을 통해 실행한다는 뜻입니다.알파 모드로 게시한 키스토어와 함께 내보냈습니다(테스트하기 전에 게시해야 함).핸드폰에 설치를 했는데 정상적으로 테스트를 할 수 있었습니다.
apk를 업로드한 후 인앱 구매를 추가했지만, 플레이 스토어(알파, 베타 및 프로덕션)에 애플리케이션을 게시하지 않은 경우에도 문제가 발생합니다.
즉, 기본적으로 Play 스토어(알파, 베타 및 프로덕션)에 apk를 게시한 후 In-App 구매를 추가해야 합니다.그렇지 않으면 In-App 구매를 위해 구매하거나 문의할 수 없습니다.
IDE에서 직접 장치에 설치할 때에도 동일한 문제가 발생합니다(디버그 또는 릴리스 모드 - 상관 없음).
하지만 구글 플레이 마켓플레이스에 앱을 설치하고, 이 마켓플레이스에서 앱을 같은 전화기에 설치하자(이전에는 장치에 직접 설치된 "애드혹" 버전을 IDE에서 제거), IAP가 작동하기 시작했습니다.
하지만 설치 후 디버그할 때 서명 키가 일치하지 않아 전화기에서 앱을 제거한 다음 디버그가 작동하지만 IAP는 다시 작동하지 않습니다...답답하지만, 알고 보니 마켓 플레이스에서 앱을 설치해야 합니다.
2023
나같은 경우에는
나는 그냥 업데이트 합니다.compileSdkVersion = 31 to compileSdkVersion = 33 and targetSdkVersion = 31 to targetSdkVersion = 33
compileSdkVersion = 33
targetSdkVersion = 33
안드로이드의 최신 버전이 13이기 때문입니다.
업그레이드 전에 받은 것입니다.
그리고 완벽하게 잘 작동했습니다.
나의 경우:
- 자신의 앱에 인앱 아이템을 구매할 수 없습니다.(다른 Gmail 계정으로 시도)
- 해당 이메일은 라이센스 테스트에 추가됩니다.
(Playconsole > Setup > Licence testing)
- 도 합니다.
com.android.vending.BILLING
생산을 위해 및 할 수 있습니다.
모든 답변은 상황에 따라 유효하지만, 제 경우는 달랐습니다.수익 cat을 사용하고 있는데 일부 구성이 잘못되어 있습니다.
- 클라우드 개발자 콘솔에서 현재 프로젝트에 대해 구글 플레이스토어 개발자 api를 활성화하지 않았습니다.
- API 액세스 탭 내에서 올바른 프로젝트를 링크했는지 확인합니다. (제 경우에는 플레이스토어 개발자를 활성화하기 전까지는 실제 프로젝트를 링크할 수 없었습니다.
- 문서에 따라 고양이 이메일에 대한 올바른 권한을 제공하고 사용자를 초대합니다.
그러면 이 프로젝트에 대한 수익 cat API를 활성화하는 데 36시간이 소요됩니다.
오류가 이 이지만 가 하는 하는 가 이 이지만 This version of the application is not configured for billing through Google Play. Check the help center for more information.
Play Store에서 In-App 제품 가격을 편집하거나 In-App 제품을 비활성화하고 활성화합니다.이렇게 하면 문제가 해결됩니다.
언급URL : https://stackoverflow.com/questions/11068686/this-version-of-the-application-is-not-configured-for-billing-through-google-pla
'programing' 카테고리의 다른 글
전체 터미널을 지우는 방법 (PowerShell) (0) | 2023.09.09 |
---|---|
헤더 파일은 전체 프로그램에서 한 번만 포함됩니까? (0) | 2023.09.09 |
How do I assert the result is an integer in PHPUnit? (0) | 2023.09.09 |
os.아래의 디렉토리를 파고들지 않고 걸어갑니다. (0) | 2023.09.09 |
PowerShell에서 2>&1의 의미 (0) | 2023.09.09 |