Разок я уже пробовал записывать идеи по одолению бага прям по ходу самих изысканий. То есть бумкнуло в голову "а может пересобрать с другим сертификатом" - и тут же записываю это в пост, проверяю, и отчитываюсь о результатах. Перечитывать потом весело, ибо эмоции неподдельные, а прямо-таки с пылу с жару, как говорится.
Решил сегодня повторить этот опыт. А так как впереди еще много потенциальных граблей и подводных камней, то выделяю это все барахло в отдельную рубрику - Error Detective... вот такое название только что родилось в моей гениальной голове.
Пристегнитесь, будем бороться с внутреигровыми покупками на Android'е.
Как все выглядит сейчас. Имеется купленный ANE от молочника. Вот этот. Утверждается, что все вообще легко и просто. Попробовал - все инициализируется, но детали продуктов не приходят (вектор нулевой, без элементов вообще), а при запросе на покупку вылетает вот это чудо:
Поехали!
1. Говорят, надо кэш убрать и вообще апдейты Google Play Store снести.
Ок, кэш убрал - не помогло. Сейчас удаляю апдейты... сделано - ошибка осталась. Да и странно было бы, ведь в остальных приложениях все ок.
2. В доках к ANE указано, что мейл тестера и мейл хозяина проекта должны быть разными.
Чекнул - у меня действительно разные, с этим все ок.
3. Проверить работоспособность public_key и product_id.
Сейчас сделаю так - подставлю эти значения из моей другой игры (Blacksmith Lab)... Хм... Ошибка осталась. Что за прикол? Получается, дело в моем коде? Не факт, сначала надо проверить в обратную сторону...
4. Итак, подставляем public_key и product_id из неработающей игры в работающую.
То есть эти ключи из Energy Bay кидаю в код Blacksmith Lab. Сейчас, секунду, надо сбилдить и залить. Упс, почему-то не инсталлится на девайс. Последний раз этот проект я лил полгода назад, и видимо что-то изменилось с тех пор. Хотя пароль и сертификат верные. С чего бы вдруг такая бяка?
5. Чистый проект
Итак, я не могу понять в чем дело. Поэтому решил закинуть чистый проект и посмотреть, что будет. Так как у меня постоянно чего-нибудь да не работает, поэтому распишу для себя же по пунктам:
- Сгенерили новый проект
- Вбиваю в xml любой id
- Обязательно добавляю BILLING в xml, а то инапы не будут активны в консоле
- Подключаю какой-нибудь сгенерированный сертификат
- Билдим проект (получаю apk на выходе)
- Идем в консоль и добавляем новый проект
- Лью apk в консоль, чтобы активировалась вкладка для инапов
- Опа, консоль переклинило ошибкой "Your application cannot be loaded at this time". Тестовый проект не редактируется, а вот все остальные - ок. Карма.
6. Надо что-то делать в Google services?
Зашел в эту вкладку в консоле и увидел, что там у меня пусто. Может нужно чего закинуть? Ок, тыкнул - перенесло на другую консоль какую-то. Создал проект. Еще куда-то нажал и теперь во вкладке google services есть мое приложение. Ну ок - запускаю на девайсе... Все по-прежнему. Ошибка аутентификации. Непробиваемая зараза! Ей вообще всё равно...
7. Возвращаюсь к пятому пункту. Больше идей пока нет.
Попробовал еще раз компильнуть и залить. Пришлось захламить панель разработчика еще одним левым проектом для тестов. В id из xml добавил гордую цифру 2.
Спустя три часа... Как дела? Что случилось? Да вообще неясно. Сначала вообще не собиралось, потом я взял xml из другой игры - сбилдилось. Затем я настроил проект и сборка снова отъехала. Потратил кучу времени, и только после танцев с бубнами и прочей ерунды проект снова собирается (как будто дело было в 16ом air'е). Но... снова не устанавливается на девайс. "App not installed" пишет мне установщик. Супер...
8. Начинаю беситься. Я - псих...
9. Кстати, а чего это я не могу дебажить на андроиде с мака? И вообще не заливается автоматически. Каждый билд я лью по три-четыре минуты, не меньше. Полный бред, конечно... Ну и ладно, надо держать себя в руках, мне бы ошибку найти.
10. Что там с чистым проектом?
Собирается, на устройство льется, но ничего не показывает. Странно это всё, я вам скажу. Полноэкранное белое полотно. Ни намека на элементы, которые я туда напихал для тестов.
11. Кстати, "App not installed" произрастает из того, что версия накатываемого приложения ниже уже установленного. Неужели так сложно об этом написать, гугл? В общем, теперь стабильно приложение заливается, но белое полотно не уходит. Вообще ничего не показывается, это ужас какой-то.
12. Загадочный Publish
Я тут жмякнул кнопку Publish у тестового приложения. Случайно? Отнюдь и даже весьма! Если честно, то я ожидал, что оно в маркет попадет. Но вроде как опасения были напрасны. И в доках у молочника нашел, что так и надо. На другую страницу съехало - видимо из-за этого сразу не заметил. Теперь жду апрува, здесь он должен быть быстрым.
13. Что там?
Пару часов подождал - заапрувили. Ошибка осталась (про аутентификацию, помните еще?). Ну, тестовое приложение белое, поэтому я все данные внес в текущую игру. И у нее в консоле тоже жмякнул Publish.
15. Уже за полночь. Чего делать-то?
Закинул в плейлист десяток Can't stop the feeling подряд, врубил на полную, уши аж болят. Ну ничего, зато не усну :) Пойду разбираться с белым тестовым приложением. Хотя бы розовым его сделать надо!
16. Победа над белым тестовым приложением.
Хм... интересно. Оказывается, что объект-точка-входа не на сцене, нужно ждать Added_to_Stage. У меня во всех мобильных играх идет сразу же обращение к stage'у. Вот это загогулина, я вам скажу! Буду знать...
17. Что там с тестовым приложением?
А вы знаете, заработало! Пара багов нашлась, убил часик на их поиски. Но в итоге данные о продуктах приходят, я вижу цену и все такое. И это мега-прорыв!
18. Заменяю тестовые данные на данные из игры.
Чего снова данные о продуктах нулевые. Сейчас еще раз все гляну... секунду... Как будто id в xml тоже должен совпадать с тем, откуда достаются продукты. Да, так и есть. И теперь должна работать сама игра, верно?
19. Сейчас буду проверять саму игру...
На часах 1:22, проект билдится, а я пытаюсь подсчитать сколько времени я убил на то, чтобы понять, что нужно было жать кнопку Publish в консоле. Правда я еще Purchase не проверял, но хотя бы данные о товарах появляются - это уже позитивчик.
20. "И снова здравствуйте"
Хм... теперь новая ошибка - the item is not available... Скажите, что так и должно быть, ок? Ладно, пока завязываю на этом. Первоначальную ошибку починили - и это уже круто! Надо убегать от компьютера, пока что-то новое не вылезло!
0 коммент.:
Отправить комментарий