Проблема видалення REQUEST_INSTALL_PACKAGES дозволу під час публікації додатка в Google Play
В цій статті я розповім про те як, здавалося б, простий апдейт апки в Google Play Console обертається протистоянням з глючним механізмом консолі та формалістським саппортом.
Спойлер: я впорався :-) Кейс досить специфічний, але може комусь стане в нагоді.
Передмова
Три з половиною роки тому я накодив свою першу апку на андроіді з доволі химерним дизайном: World Art Puzzle
Незважаючи на те, що проект не приніс грошей, я отримав безліч фана та корисного досвіду, імплементуючи в одному застосунку низку викликів які постають перед розробником ігор: рандомізація головоломки, зберігання прогресу (закладки, ачівки, конфігурація) в локальному сховищі, вбудована міні-енциклопедія, локалізація на 3 мови, звуковий та музичний супровід, винагорода за перегляд реклами тощо.
Після релізу я робив тільки косметичні доробки (наприклад додав на головний екран кнопку відключення звуку бо колега, який тестив гру, сказав що фонова мелодія його задовбала ;-) і врешті решт залишив гру напризволяще: «працює — не чіпай». Проминули роки..
Інтермедія
27 червня 2023 року отримав від Google «листа щастя» в якому мені погрожували банальною карою видалення апки, якщо за місяць я не приберу пермішен REQUEST_INSTALL_PACKAGES, котрий наразі заборонений з якихось секьюрних міркувань:
За цей час цільовий SDK помінявся з 28 до 33 версії, та ще й андроід змінив формат публікацій з APK на AAB. Тому довелося трохи повозитися щоб переналаштувати проект: я навіть встановив чисту Windows 10 на VM щоб підібрати Java JDK, Gradle та Сordova компоненти які не будуть конфліктувати одне з одним. Нерешті злощасний пермішен було видалено, кількість картин-пазлів збільшено до круглого числа 400, щоб вимушений апдейт не був марним, і релізний aab навіть скомпілився. Але біда прийшла звідки її не чекали. Виявилося що я не можу опублікувати нову версію апки (1.0.13) з вилученим REQUEST_INSTALL_PACKAGES тому що під час публікації Google Play Console знаходить проблемний пермішен в попередній версії апки (1.0.12), що промаркована як робоча. «Егей!» — каже консолька — «Спершу виріши проблему з пермішеном, а тоді вже публікуйся!». Видалити попередню версію апки я теж не можу бо вона заявлена як робоча і нею користуються кілька юзерів. Я написав в саппорт месагу по свою проблему і отримав формальну відписку:
Типу — ну що ж ти такий тугий, девелопере, просто візьми та виправ цю помилку, на все добре і дякую за рибу!
Спочатку я зневірився і вже вирішив дочекатися поки «корпорація добра» видалить мою апку, щоб потім знову опублікувати її в дозволеному вигляді.
Але нагуглив довгий форумний тред з неоднозначним рішенням, яке ніби спрацювало. Алерт меседж, що блокував публікацію, пропонував такий варіант — спробувати доказати Гугелю що REQUEST_INSTALL_PACKAGES пермішен конче необхідний вашій апці (насправді ні):
Тобто вимагають відповісти на анкету, описати нащо мені потрібен той пермішен (не потрібен!) і прилінкувати відео про те як він використовується в моїй апці (не використовується!).
Я вибрав рандомні пункти з анкети, none of these для Core purpose видало текстове поле, де я описав що видаляю REQUEST_INSTALL_PACKAGES із апки, замість лінка на відео вказав старий лінк на ютубі з демонстрацією як працює апка і вуаля! — декларація зробила бавовну, щезла і все ж таки допустила мене до публікації релізної версії апки!
Гру зарелизили в плей маркеті дуже швидко (за кілька годин) і я отримав інформаційне повідомлення зі скупою подякою:
Післямова
Вочевидь не тільки я зіткнувся з цим глюком, але Google спускає все на гальмах — не панська це справа консоль налаштовувати..
Ось так прості українські селяни висловлюють своє ставлення до Google Support:
Наслідки
Після примусового оновлення апка стала працювати.. гірше. На один із смартфонів вона встановилася, але не запустилася, на іншому — фоновий музичний трек став глючити під час програвання, стрибаючи вперед секунд на 30.
Невдовзі буду розбиратися.. або ні) Тому що є інша ідея — планую написати досить цікаву адаптацію text based fighting fantasy game, оформлену ілюстраціями, згенерованими нейромережею (на цьому місці десь плаче самотній безробітний дизайнер) ;-)
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів