Ця версія програми не налаштована для виставлення рахунків через Google Play


269

Коли я намагаюся запустити свою програму за допомогою виставлення рахунків у програмі, я отримую помилку: "Ця версія програми не налаштована для виставлення рахунків через Google Play. Щоб отримати додаткову інформацію, перегляньте довідковий центр".

У мене є дозвіл на виставлення рахунків уже у файлі Manifest, і у мене підписаний файл .apk завантажений як чернетка на Google Play, і я також встановив цей же підписаний apk на свій телефон.

Будь-яка допомога щодо вирішення цього питання?

Відповіді:


339

Ця помилка може бути викликана кількома причинами.

Ось перелік вимог до тестування Google IAB.

Передумови:

  1. AndroidManifest повинен містити дозвіл "com.android.vending.BILLING" .
  2. APK побудований у режимі випуску .
  3. APK буде підписаний з сертифікатом випуску (ів) . (Важливо: "Підписання програми Google Play" працює лише у випадку, якщо ви завантажуєте безпосередньо з GooglePlayStore!)
  4. APK завантажується на альфа-бета- канал розповсюдження (раніше - як чернетка) на консоль розробника принаймні один раз. (займає деякий час ~ 2h-24h ).
  5. Продукти IAB публікуються та їх статус встановлюється на активний .
  6. Тестові облікові записи додаються в консоль розробника.

Вимоги до тестування:

  1. Тестовий APK має той самий код коду версії, що і завантажений на консоль розробника.
  2. Тестовий APK підписаний тими самими сертифікатами, що й доданий до dev.console.
  3. Тестовий рахунок (не для розробників) - це основний рахунок на пристрої. (Можливо, головний обліковий запис не потрібен - відповідно до коментаря @MinosL )
  4. Тестовий рахунок увімкнено як тестер і пов’язаний з дійсним способом оплати . ( @Kyone )

PS: Налагодження з сертифікатом випуску : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp для посилання)

PPS: Давно хотіли скласти цей список.

Thnx @zlgdev , @Kyone , @MinosL для оновлень


5
Не забудьте переконатися, що обліковий запис, який ви використовуєте для тестування IAB, увімкнено як тестер, використовуючи "реєстраційну URL-адресу", сформовану після завантаження збірки; І що це пов’язано з дійсним способом оплати .
Кіоне

3
Не повинно бути простіше просто перевірити IAP? Або для тестування речей взагалі ..
Хуан

1
також варто відзначити; тестовий обліковий запис не повинен бути пов’язаний з обліковим записом розробника (не повинен мати доступ для завантаження APK)
guness

2
також варто відзначити; якщо ввімкнено "Сертифікат для підписання програми", ми не можемо використовувати наш локальний APK для тестування реальних покупок, оскільки ми не можемо підписати сертифікат для підписання. (знадобилося мені, як 3 години, щоб дізнатися)
guness

1
Я успішно тестував 1) підписаний додаток налагодження, який є 2) не основним обліковим записом на пристрої , тому процес тестування IAB Google, здається, не такий строгий, як зазначено вище.
MinosL

194

Ах знайшов рішення, спробувавши пару годин.

  1. Google займає деякий час, щоб обробляти програми та оновлювати їх на своїх серверах, для мене це займає близько півдня. Тож після збереження apk у якості чернетки в Google Play потрібно зачекати кілька годин, перш ніж продукти, що надходять у додаток, реагуватимуть нормально та дозволятимуть регулярні покупки.
  2. Експортуйте та підпишіть APK. Непідписаний APK, який намагається здійснити покупки, отримає помилку.

71
Вау, це серйозно? Просто зіткнувся з тією ж проблемою. Зробив все, що Google попросив мене зробити, щоб перевірити виставлення рахунків у додатках, але все одно отримую те саме повідомлення про помилку. Я думаю, мені доведеться почекати і подивитися. Але чи дійсно Google очікує від нас розробників чекати годин кожного разу, коли нам потрібно буде оновити додаток, щоб здійснити виставлення рахунків через додаток? Мені це здається зовсім недоречним.
Саймон

6
Чи можете ви тестуватися під час підключення до Android Studio / під час роботи під час підключення до налагоджувача? Або вам потрібно встановити випуск apk через USB?
Alfie Hanssen

3
Чи є простіший спосіб перевірити процес придбання, окрім, Інструменти Android> Експорт підписаного проекту ... тощо, а потім вручну скопіювати APK на пристрій, Тестувати, ... повторити? Я, мабуть, щось бракує?
wired00

4
Серйозно, я не можу використовувати програму із сертифікатом налагодження та тестувати виставлення рахунків у програмі?
TacB0sS

8
Зауважте, що ви МОЖЕТЕ використовувати збірки налагодження прямо з IDE під час роботи. Вам просто потрібно змінити сховище налагоджень на налагодження на таке, яке відповідає вашому магазину релізів. Дивіться цей пост для отримання додаткової інформації про те , як: stackoverflow.com/questions/10886814 / ...
cottonBallPaws

137

Те саме відбудеться, якщо опублікована версія не буде такою, як версія, яку ви тестуєте на своєму телефоні.

Наприклад, завантажена версія є android:versionCode="1", а версія, яку ви тестуєте на своєму телефоні, єandroid:versionCode="2"


3
Ви можете сказати, будь ласка, що, якщо завантажена версія android:versionCode="1"і телефон android:versionCode="2"дози це нормально, або я повинен змінити свою гру в АПК Google?
Юдд

1
Що вам потрібно зробити, це збити локальну версію до "1", щоб вона відповідала поточній живій версії, як мінімум тимчасово для тестування.
Ромен

2
Схоже, існує 2 поширених виправлення цієї помилки залежно від вашої ситуації. У моєму випадку це був саме цей.
Метт

Дякую, це було питання. Налагоджено налагодження з випуском apk на моєму приєднаному пристрої. Потім змінив код версії, і він почав отримувати помилку 1005. коли!
Анна Білстром

@Будьте в курсі, що -1005 також USER_CANCELLED, якщо ви використовуєте iabHelper
JacksOnF1re

47

Вам потрібно підписати APK своїм сертифікатом наживо. Потім встановіть це на свій тестовий пристрій. Потім можна протестувати InAppBilling. Якщо ви тестуєте свою програму шляхом прямого запуску через затемнення на пристрій (в режимі налагодження), ви отримаєте цю помилку.

Якщо ви використовуєте android.test.purchasedяк SKU, він буде працювати повністю, але розробникPayload не матиме остаточної відповіді.

Якщо ви використовуєте власну чернетку в пункті програми, ви можете протестувати весь шлях, але з вас буде стягнуто плата, і після цього доведеться повернути її самостійно.

Ви не можете купувати предмети з тим самим обліковим записом gmail, який ви використовуєте для консолі розвитку Google Play play.


1
+1 Запуск від налагоджувача використовує сертифікат налагодження. Експортуючи додаток та створивши новий відкритий ключ (та встановивши його в консолі розробника), просто надішліть собі електронну пошту apk та встановіть її з поштової скриньки gmail.
cdavidyoung

Якщо я хочу спробувати "android.test.purchased", то я збираюся змінити SKU і в моєму коді, і в консолі розробника?
Роколого


17

Якщо ви тут з 2018 року, вам потрібно завантажити APK безпосередньо з Play Store та встановити "похідне" APK. Можливо, це тому, що в Play Store Google є функція "Підписання додатків через Google Play".


1
Який APK? Я використовую AIDL чи потрібно мені це робити?
Чжен Лю

@ZhenLiu Я думаю, не потрібен
Закон Гіменез

Крім того, додаток не може бути встановлено на пристрої іншими способами (наприклад, Android Studio). Установка / оновлення з Play Store буде працювати, але IAP не буде - ви отримаєте помилку OPs.
JDune

Як ми це налагоджуємо?
Олівер Діксон

3

Це станеться, якщо ви використовуєте іншу версію apk, ніж та, яка використовується в google play.


3

Дозвольте лише додати те, що сталося зі мною, може допомогти комусь.

В основному це було пов'язано з підписанням.

Оскільки я додав подробиці підписання в структуру проекту, я думав, що кожного разу, коли я запускаю, очікується, що підписаний apk встановлюється. Але вибрано тип збірки «налагодження».

Нижче виправлено проблему для мене.

  • Створено підписаний apk типу збірки 'release'.
  • Вручну встановлено apk.

2

У своєму випадку я побачив те саме повідомлення через різні підписи встановленого apk та завантаженого на ринок apk.


2

Всупереч багатьом відповідям та коментарям на SO та інших сайтах, НЕ потрібно проводити попередні тести з альфа-бета-версією продукту, завантаженого з Google Play на тестовий пристрій (процес публікації альфа-бета-версії часто з'їдає півдня). Також не потрібно завантажувати та повторно завантажувати підписаний реліз apk зі своєї студії розробників на тестовий пристрій.

МОЖЕТЕ налагоджувати попередній Google Play у послугах виставлення рахунків за допомогою програми налагодження, завантаженої з вашої студії розробника безпосередньо на тестовий пристрій через ADB. Якщо у вас виникли помилки, які запобігають цьому, швидше за все, ви зробили щось не так у своєму коді. Особливо пильно зверніть увагу на ДЕЙСТВІННЕ Вашого SKU (ідентифікатори продукту) та їх формат (наприклад, якщо ви завантажуєте свій APK як com.mydomain.my_product_id, будьте впевнені, намагайтеся придбати його таким чином - надаючи той самий випадок та домен) . Крім того, зверніть особливу увагу на ваш itemType - це повинно бути або "inapp", або "subs" для керованих / некерованих у покупках додатків або підписках відповідно.

Як запропонував Chirag Patel, за умови правильного встановлення вашого платіжного коду, під час попередніх тестів проведіть усі тести, використовуючи android.test.purchased Sku (ідентифікатор продукту). Перевірте цей ідентифікатор протягом усіх своїх розрахункових операцій, щоб передати його через чеки підпису, маркера та корисного навантаження, оскільки ці дані не надані тестовою системою Google. Крім того, надайте одному з ваших тестових продуктів цей ідентифікатор, щоб перевірити його придбання, розблокування / завантаження та презентацію на всій схемі. Щоб ОКРИТИ покупку, просто споживайте її, передаючи ту саму рядку Sku та маркера, відформатовану таким чином - жодні інші поля не мають значення:

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

Після того, як ви завершите цю фазу тестування, перейдіть до тестування на піввісі з вашим альфа / бета-продуктом. Створіть групу Google (фактично список розсилки), додайте до неї тестові користувачі електронної пошти та додайте / запросіть цю групу протестувати ваш пристрій на цій фазі (виконується в частині "APK" списку розробників Google для вашої програми). Покупки будуть імітовані, але фактично не стягуються - проте, щоб очистити та повторно протестувати покупки, Google вказує, що ви повинні повернути їх із свого гаманця Google. Це єдина фаза тестування, яка вимагає трудомісткого процесу використання альфа / бета-навантажень та тестування користувачів.


1

Якщо ви хочете налагодити IAB, вам потрібно зробити:

  1. Надіслати на Google play версію свого додатка з дозволом IAB у маніфесті:

  2. Додайте продукт у свою програму під час google play: Адміністрація оплати через додаток

  3. Встановіть підписаний спеціальний магазин клавіш для налагодження: Налаштування Eclipse для використання підписаного сховища ключів


1

Була така ж проблема, і вона не була вирішена до того, як я прочитав пост від DZDomi. Несподівано з’ясувалося, що в консолі розробника Google є налаштування, яке потрібно активувати. У розділі "Покупки додатків" розміщено рядок для вашого продукту, а в крайній правій частині є його статус. Він повинен бути АКТИВНИМ!


0

моя проблема полягала в тому, що я спробував перевірити це за допомогою debug.keystore, я маю на увазі запуск його через eclipse.I експортував його в сховище ключів, за допомогою якого я опублікував в альфа-режимі (він повинен бути опублікований, перш ніж ви зможете його перевірити). мій телефон, і ніж я міг перевірити його нормально.


0

Проблема також виникає, коли ви додали покупку через додаток після завантаження apk, але ви не опублікували додаток у ігровому магазині (альфа, бета та виробництво).

В основному це означає, що вам потрібно додати покупку через додаток ПІСЛЯ ви опублікували apk у магазині Play (альфа, бета та виробництво). В іншому випадку ви не зможете придбати або запитати покупку через додаток.


0

Ще одна причина, яка тут не згадується - те, що вам потрібно пройти тестування на реальному пристрої. Коли емулятор стає справді хорошим, це зробити просту помилку.


0

Нещодавно google здійснив зміну у своїх системах, і оскільки ви завантажили принаймні один APK на консоль, ви можете перевірити свої додатки в додатку з будь-яким кодом / номером версії.

Перехресне посилання LINK

Налаштуйте gradleдля підписання вашої збірки налагодження для налагодження.

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}

0

РІШЕННЯ

Після завантаження додатка в ігровий магазин просто потримайте деякий час, оскільки Google потребує певного часу, щоб оновити версії додатків. Це буде працювати!


0

У мене така ж проблема в moto C2 +, в моєму випадку це проблема пристрою, коли я перезавантажуюсь, то це буде спрацьовувати ідеально ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.