Как открыть апк в юнити
Публикация игры в Google Play. Настройка Play Games Plugin для Unity
Всем привет! Решил поделиться своим опытом по добавлению игры в Google Play Console и настройке Play Games Plugin для Unity.
Начнем мы с настройки Unity.
Настройка Unity
Сначала нужно скачать и установить Play Games Plugin.
Для этого идем по этой ссылке, выкачиваем репозиторий, идем в папке current-build, открываем GooglePlayGamesPlugin и устанавливаем его. После этого Google Play Games должны появиться во вкладке Windows.
И должно появиться такое окошко
Во вкладке Other Settings указываем следующие поля:
Здесь нам нужно создать keystore, (подробнее о keystore тут и тут чуть короче).
Теперь, каждый раз перед созданием нового билда, вам нужно будет заходить в эти настройки, и вводить пароли от ключей, так что сохраняйте ключи в надежном месте, в случае утраты будут большие проблемы с восстановлением.
Подробнее о всех настройках можно почитать на оф странице Unity.
Если появиться такое окошко после создания билда, то не переживайте, после настройки Google Service мы вернемся в Unity.
Настройка Google Play Console
Для начало нам нужно будет приобрести Google Developer Account, стоит он 25 долларов. Предположим что мы его уже купили.
Открываем ссылку на Google Play Console
Идем во вкладку Все приложения, нажимаем Новое приложение, вводите название, выбираете язык будущего приложения, нажимаете создать.
После создания приложения, откроется страница с вашим приложением.
Тут вам нужно будет заполнить все нужные поля чтобы можно было опубликовать приложение. Можете просто навести на треугольник, и он вам подскажет что вам нужно заполнить.
После заполнения всех необходимых полей, идем во вкладку Версии приложения,
тут вы решаете на какой стадии ваше приложение, и исходя из выбора, переходите во вкладку управление, в моем случае это Альфа тестирование.
Здесь выбираем создать выпуск, подключаем Google Play App Signing в следующем окне (если появилось). Выбираем наш apk файл, после загрузки файла, Google должен автоматически подтянуть версию приложения, и номер бандла (те настройки что вы указывали перед созданием билда) как показано на скриншноте.
И последнее что вам нужно сделать перед созданием выпуска, это заполнить поле “Что нового в этой версии” (не удаляйте тэги языка при заполнении). Нажимаем посмотреть, тут должно быть предупреждение такого типа:
Окей, вам нужно добавить тестировщиков до публикации приложения, сделать это можно в настройках. Выходим из вкладки приложения, на главную страницу, выбираем Настройки, переходим во вкладку Тестировщики и добавляем список (указываете просто почту).
Возвращаетесь в ваше приложение, нажимаем на Управление, тут выбираете каким будет тестирование, открытое или закрытое, выбираете ваш список тестировщиков, нажимаете сохранить.
Возвращаемся на страницу Версии приложения, нажимаем изменить версию, тут все сохранилось что вы делали до этого (включая ваше apk что вы загрузили), просто жмем просмотреть, и нажимает опубликовать (перед публикацией, убедитесь что приложение готово к публикации, иначе у вас будет недействительна кнопка публикации)
После этого проект должен перейти в стадию готовится к публикации, нужно будет подождать пару часов, пока наше приложение провериться.
А пока идет проверка, мы перейдем к настройке игровых сервисов.
Настройка Игровых Сервисов
Игровые сервисы позволяют вам добавлять в игру таблицы лидеров, облачные сохранения, достижения, квесты и т.д.
Переходим на главную страницу, идем во вкладку Игровые сервисы, нажимаем добавить игру, обязательно выбираете что вы не используете Google API пока, нажимаем продолжить.
Тут нам нужно будет привязать игру что мы загрузили ранее к сервису что мы только что создали. Идем во вкладку Связанные приложения и выбираем платформу (в моем случае Андроид), при нажатии на название пакета, должна появиться ваша игра, выбираем ее, крутим чуток ниже, и выбираем настройки которые вам нужны, после этого сохраняем.
После этого вы должны выполнить авторизацию приложения, нажимаете авторизовать и подтверждаете, чуть позже я расскажу об этом.
Если вы хотите использовать облачное сохранение, перейдите во вкладку Сведения об игре и там после описания игры, будет опция Сохраненные игры, включите ее и сохраните изменения (после выбора этой опции, ее нельзя будет изменить после публикации сервиса), тут же прокрутите страницу до конца и включите API Google Диска.
Теперь можете добавлять то что желаете, в моем случае добавлю одну таблицу лидеров.
После того как вы все сделали/добавили, переходим во вкладку Публикация, тут будет указано то что вы еще не сделали, нажимаем опубликовать игру.
Снова нужно будет подождать пару часов.
После публикации
После того как ваша игра будет опубликована, вы сможете найти ее на странице Google Play, и так же нам нужно будет отправить ссылку на наше приложение тестировщикам.
Для этого идем в Управление релизом, Версии приложения, разворачиваем это окошко
и видим ссылку которую нужно будет отправить тестировщикам, переходим по ней.
Тут у нас открывается окно, в котором мы должны будем согласиться на тестирование нашего приложения, нажимаем Участвовать в тестировании
После должно появиться окно что вы стали тестировщиком, на странице будут ссылки откуда вы можете скачать приложение.
Теперь вы можете скачать свое приложение, и протестировать.
Совет : чтобы быстро перейти на вашу страницу приложения в Google Play, наведите на иконку информация справа от названия вашего проекта, и нажмите Найти в Google Play.
Хорошо, вы теперь можете загружать своё приложения из Google Play. Следующий шаг это обновления приложения.
Обновление приложения
Допустим мы что то поменяли в приложении, и теперь мы хотим обновить версию приложения в Google Play.
Для это в Unity в обязательном порядке меняем Bundle Version Code (версию приложения менять не обязательно), и вводим пароли от ключей что были созданы до этого.
Чтобы посмотреть видео с запуском, выбираете устройство где тестирование уже завершилось, после этого должно открыться окно с характеристиками телефона, и видео.
п.с. Еще месяц назад можно было смотреть логи под видео, кто знает куда их Гугл подевал?
Обычно тестирование у меня занимает минут 20, после этого нужно еще подождать 10-15 минут до публикации на Google Play. Кстати, будьте аккуратны если вы загружаете несколько версий подряд, не факт что та версия которую вы скачиваете именно последняя, мой совет после публикации можно смело ждать около часа перед тестированием.
Ускоряем тестирование
Согласитесь, если вы тестируете Google Play Services то весь путь от загрузки и до скачивания занимает приличное количество времени (около 40 минут), что совсем не радует. Я сам прошел такой путь когда делал поддержку Google Play Services, было очень больно после каждого маленького изменения ждать 40 минут что бы это протестировать. Как то смотря видео про облачные сохранения, я увидел приложения Nox (ссылка, надеюсь не сочтут за рекламу), который отлично эмулирует Андроид, вы просто создаете новую версию приложения, устанавливаете его в Nox, и все, можете его спокойно тестировать, минуя при этом 30 минут времени, неплохо правда? Но вот есть еще одна загвоздка, сервисы Google Play не будут работать в том случае если вы скачали приложение не из Google Play, но, это можно легко обойти, на это я наткнулся так же в видео про облачные сохранения.
Теперь нужно поменять значение сертификата в Google API, для этого идем в Игровые сервисы, выбираем тот к которому привязано ваше приложение, открываем Сведения об игре, крутим в самый низ страницы и видим ссылку, переходим по ней (спасибо гуглу за такой клевый дизайн, иногда требуется несколько минут чтобы найти ссылку).
Откроется вот такая страница, здесь нас интересует раздел Учетные данные
Открываем нашу учетную запись и меняем значение SHA1 сертификата на тот что вы скопировали до этого, и сохраняете.
Важно! Не забудь перед публикацией релизной версии поменять значение сертификата SHA1 на то что из Сертификат для подписи приложения. Иначе у пользователей не будут работать сервисы.
Теперь мы сократили наше тестирование до 5-7 минут, неплохой результат!
Заканчиваем с настройкой Unity
После того как мы все сделали в Google Play Console, мы можем вернуться в Unity и закончить наши настройки.
Для начала откроем Google Play Console и пойдем в Игровые сервисы, и открываем что нибудь из того что мы создали (например рейтинг игроков) и видим там “Получить ресурсы”, нажимаем на нее, во вкладке Android копируем все, и открываем Unity.
Должно будет появиться такое окно
В нем указываем куда сохраним класс, и имя класса, туда же вставляем то что мы скопировали до этого, и нажимаем Setup, должно будет появиться окно о том что настройка прошла успешна.
Вот и все, теперь в этом классе содержатся константы с id-шниками вещей что мы создали.
В конце, решил продублировать все ссылки что были в статье, а также дать ссылки на видео что будут полезны именно при настройке Google Services в коде.
Как собрать Android App Bundle (AAB) в Unity 3D и опубликовать в Google Play
С августа 2021 года загрузить новое приложение в консоль разработчика Google можно будет только использовав наборов Android App Bundle. Это формат публикации приложений, благодаря которому игры на устройствах пользователей будут занимать меньше места. Начиная с версии Unity 2018.3 появилась возможность создавать Android App Bundle вместо APK. В Android App Bundle включен весь скомпилированный код и ресурсы вашей игры без создания APK и подписи приложения для Google Play.
Сборка Android App Bundle (AAB) в Unity 3D
Откройте свой проект в Unity. Чтобы собрать Android App Bundle (AAB) вместо APK, откройте окно Build Settings ( File > Build Settings ) и поставьте флажок на Build App Bundle и нажмите Build:
Подписание и загрузка приложения в Google Play
Зайдите в консоль разработчика и выберите нужное вам приложение. В меню слева в разделе Выпуск > Настройки нажмите Подписи приложений. Прочитайте Условия использования и нажмите Принять.
Под надписью Зарегистрируйтесь в программе подписания приложений Google Play выберите второй пункт Экспортировать и загрузить ключ из Java Keystore.
Как создать ключ загрузки
Загрузка AAB файла
В меню слева в разделе Выпуск > Рабочая версия> нажмите Создать новый выпуск. В поле Наборы App Bundle и APK-файлы нажмите Загрузить и добавьте созданный вами в Unity AAB файл. Затем отправьте выпуск на проверку. Готово!
Как собрать проект Unity для смартфона или планшета
Опишем процесс сборки проекта под платформу Android, которая поддерживается большинством смартфонов.

Шаг 1. Выбор платформы
В окне Build Settings выбрать платформу Android и нажать на кнопку Switch Platform:

Шаг 2. Проверить и отредактировать (если надо) настройки в в окне Project Settings, в разделе Player:
Company Name (писать по-английски и лучше без знаков препинания и пробелов),
Product Name (аналогично – по-английски и без специальных символов и пробелов),
Version (можно оставить значение по умолчанию, но если приложение собирается повторно, то значение надо менять на большее; тогда при установке новой версии приложения на смартфон существующее приложение обновится. Если это число оставить прежним, потребуется сначала удалить установленное ранее приложение).
2) задать изображение для иконки приложения, добавив его в Default Icon.
3) если необходимо, в разделе Resolution and Presentation можно зафиксировать ориентацию приложения: горизонтальное (Landscape) или вертикальное (Portrait):

4) в разделе Other Settings проверить правильность сформированного идентификатора в поле Package Name:
com.Company.ProductName – здесь правильно должны быть записаны компоненты Company и ProductName. При их записи должны быть использованы ТОЛЬКО буквы латинского алфавита, БЕЗ специальных символов и пробелов.
Примечание: в Unity 2019 эти компоненты заполняются автоматически после заполнения полей Company Name и Product Name в самом начале окна Project Settings, в разделе Player (см. п.1).
Например, итоговая строка com.Company.ProductName может получить следующий вид:
Это минимальный набор настроек, которые стоит отредактировать. После этого окно Project Settings можно закрыть.
Шаг 3. Перечислить в окне Build Settings сцены, которые должны попасть в сборку (build) проекта:
Если сцена всего одна, и она открыта в редакторе, можно просто нажать на кнопку Add Open Scenes.
Дополнительные сцены можно перетащить мышью из нужной папки окна Project.
Если в окне Scenes in Build указана не та сцена, её можно выделить мышью и удалить, нажав на клавишу Delete на клавиатуре компьютера.
All in по фану. Как разобрать, изменить и собрать обратно мобильную игру на Unity
Содержание статьи
Все манипуляции с приложением делались исключительно в исследовательских целях и не преследуют финансовой выгоды в каком-либо виде.
Работа работой, а отдыхать тоже нужно. Человек я не азартный, но карты покидать люблю. Недавно я приметил офлайновое приложение для игры в покер под названием Poker World. У него аскетичный интерфейс, минимальный набор функций, но есть почти все, что мне нужно. Напрягал только повышенный интерес разработчиков к донату. Поэтому с каждой раздачей исследовательская жилка напрягалась и таки не выдержала. Я взялся за клавиатуру с твердым намерением раздобыть себе немного виртуальных деньжат.
Первые шаги
Чтобы начать вивисекцию приложения, нам понадобится небольшой стенд. В первую очередь стоит поставить нормальный эмулятор Android. Раньше я использовал Andy, но теперь он скурвился и даже начал пихать майнеры в свои дистрибутивы. Мне в срочном порядке пришлось искать замену. Моя основная ОС — Windows, и поэтому все поиски были направлены на дистрибутивы для этой платформы. Я перебрал с десяток вариантов из топа выдачи Google, и все они, культурно выражаясь, оставляли желать лучшего. Однако мои молитвы были услышаны, и я наткнулся на MEmu. На момент написания статьи последняя версия была 5.5.1. Тут есть все, что тебе может понадобиться. Создавать можно виртуальные машины Android версий 4.4 и 5.1, а также поддерживается эмуляция нескольких моделей устройств.

Что очень важно, MEmu поддерживает установку приложений из файлов APK и, о боги, в нем есть обычные настройки сетевого подключения Android. Это позволяет легко настроить устройство на работу через прокси типа Burp и перехватывать трафик. Ты удивишься, но часть эмуляторов не поддерживала работу через прокси и не имела стандартных сетевых настроек.

В общем, пока у меня не возникало претензий к MEmu. Если ты знаешь о более достойных вариантах, не стесняйся и пиши о них в комментариях.

Переходим по ссылке и скачиваем нашего подопытного. На момент написания статьи последняя версия приложения — 1.3.5.
Теперь можно установить скачанный apk в эмуляторе. Для этого достаточно перетащить его на окно с запущенным MEmu — практически в лучших традициях macOS.

На этом этапе базовые приготовления закончены. Обо всех остальных полезных штуках и утилитах я расскажу в процессе препарирования приложения.
Начинаем веселье в iOS
Так получилось, что играть я начал на айфоне. И где-то на третьем уровне денег начало катастрофически не хватать. Аппарат был без джейлбрейка, и делать мне его совершенно не хотелось, поэтому я начал искать баги в логике самого приложения. Такие, чтобы можно было провернуть, не закапываясь в его дебри.
Парочку таких я и обнаружил. В игре есть возможность раз в четыре часа крутить однорукого бандита, из которого тебе рандомно выпадают всякие ништяки. Их в игре всего два вида — это деньги и билеты. И те и другие нужны для участия в турнирах. Так вот в местном аналоге тотализатора можно выиграть небольшое количество денег или один билетик. Количество денег, которые ты можешь срубить, зависит от уровня твоего персонажа. Каждые несколько уровней суммы выигрыша в этой рулетке удваиваются. На самом первом они составляют от 400 до 2000 долларов.

Про билет и 2000 баксов можно забыть, за месяц игры и тысячи кручений этой рулетки ни разу ничего подобного мне не выпало. Интересно будет взглянуть на алгоритм. 🙂
Тем не менее через пять таких спинов ты получаешь возможность сделать джекпот-спин, в котором все выигрыши умножены на три и, соответственно, можно урвать аж три билета.

Баг заключался в том, что время до следующего спина считалось от установленной в системе даты. Поэтому достаточно просто свернуть приложение, перевести часы на четыре часа вперед, развернуть его и снова крутить барабан. Так можно делать до бесконечности.
Чтобы бесконечно не переводить время в будущее, можно сделать так:
Я проводил такую процедуру после каждого джекпот-спина. Это дает возможность не уходить далеко в будущее, так как от системного времени много чего зависит. Срабатывание алертов, событий в календаре и прочее.
Вообще, я сильно удивился тому, какие проблемы может вызвать изменение даты на устройстве с iOS. Например, после того как я выставил 2030, меня разлогинил iCloud и отказывался пускать обратно с неизвестной ошибкой. Я уж было подумал, что мой аккаунт заблокировали за путешествия во времени. Повторно авторизоваться удалось только после перезагрузки девайса.
Два года назад в iOS нашли баг: устройство окирпичивалось, если поставить дату на 1970 год. Можно предположить, что от системной даты многое зависит.
Плюс сама смена даты неудобна — чтобы сменить год, нужно прокрутить все 365 дней. Вот и сиди, вози пальцем как сумасшедший.
Помимо бесплатных спинов, имеются еще игры без вложений, которые тоже доступны каждые четыре часа. В цепочке — пять игр, в каждой ты можешь выиграть определенную сумму, причем чем дальше по цепочке ты проходишь, тем больше куш. Приз за выигрыш в последней — один билет.

Ускорить можно точно таким же способом — изменение системного времени. К слову сказать, этот стандартный финт с переводом часов еще много где прокатывает, не стесняйся и чекай в тех приложениях, где предлагают чего-то подождать. 🙂



И вуаля! Виртуальный миллионер. Помимо этого, в файле находится куча интересных параметров — таких как текущий уровень игрока, его позиция в десятке лидеров, какие уровни уже пройдены, лимиты столов и прочее. Если будет интересно, то можешь поэкспериментировать на досуге, а я перехожу к версии приложения для Android и более увлекательным вещам.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Специалист по информационной безопасности в ONsec. Research, ethical hacking and Photoshop.


