Connect with us

Разработка

Проверяем пакет iOS-приложения

Если вы знаете секретные языки ipa-нский и bundle-инди, вы можете удивить и порадовать интервьюера неожиданным отзывом — если потратите 10 минут на проверку и анализ его пакета приложений заранее.

Опубликовано

/

     
     

Хотя я всегда стараюсь проходить собеседования честно, иногда полезно иметь в рукаве несколько тузов.

Если вы знаете секретные языки ipa-нский и bundle-инди, вы можете удивить и порадовать интервьюера неожиданным отзывом — если потратите 10 минут на проверку и анализ его пакета приложений заранее.

Получение файла приложения

Первый шаг к проверке пакета приложений — это, естественно, получение пакета, который вы хотите проверить. Поэтому отправляйтесь в App Store и загружайте его прямо на свое устройство.

Проверяем пакет iOS-приложения

Apple намеренно затрудняет доступ к настоящему файлу приложения в хранилище устройства (по определенным причинам).

Поэтому нам нужно быть немного умнее.

Проверяем пакет iOS-приложения

На компьютере Mac необходимо загрузить программу Apple Configurator. Это программа от Apple, разработанная для управления парком iOS-устройств на предприятии или в школе.

У нее есть и удобная вторичная функция: она позволяет напрямую получать доступ к файлам приложений на iPhone с компьютера Mac.

Подключите iPhone с помощью кабеля и убедитесь, что он появился в Apple Configurator.

Проверяем пакет iOS-приложения

Нажмите на свое устройство, нажмите «Добавить», затем «Приложения».

Вы увидите список всех приложений, загруженных на ваше устройство (некоторые приложения, например банковские, не отображаются в этом списке, скорее всего, они защищаются от взлома таким способом). Теперь просто найдите нужное приложение.

Проверяем пакет iOS-приложения

Найдите в Finder (или, что еще лучше, в Терминале) папку /Users/[имя пользователя]/Library/Group\ Containers/K36BKF7T3D.group.com.apple.configurator.

Теперь найдите и откройте папку Library/Caches/Assets/TemporaryItems контейнера приложений Configurator.

Проверяем пакет iOS-приложения

В Apple Configurator, выбрав приложение, вы можете нажать кнопку «Добавить», чтобы загрузить его на свой Mac.

Файл .ipa появится в папке TemporaryItems/MobileApps (ненадолго!) — скопируйте его в основную файловую систему, чтобы мы могли начать с ним работать.

Проверяем пакет iOS-приложения

Проверка файла .ipa

Несмотря на то, что у нас есть файл .ipa, доступ к нему не очевиден.

Проверяем пакет iOS-приложения

Есть специальный трюк, который мы можем проделать, чтобы заглянуть внутрь. Нам просто нужно понять, что такое .ipa: это сжатая форма приложения, которая передается нам через магазин приложений, когда мы скачиваем его.

После загрузки ваше iУстройство распаковывает его в файл .app.

Как это сделать? Просто добавьте расширение .zip в конец файла .ipa, и файл станет .ipa.zip.

Проверяем пакет iOS-приложения

Иконка поменяется, и мы сможем просто дважды щелкнуть по ней, чтобы заставить файл .ipa распаковаться как обычную папку файловой системы.

Проверяем пакет iOS-приложения

Теперь мы можем заглянуть внутрь приложения.

Файл .ipa содержит некоторые метаданные вместе с пакетом .app в подпапке Payload/.

Это немного проще просмотреть: мы можем щелкнуть правой кнопкой мыши и выбрать Show Package Contents.

Проверяем пакет iOS-приложения

Наконец, мы можем увидеть файлы, из которых состоит рассматриваемое нами приложение.

Проверяем пакет iOS-приложения

Заглянуть внутрь пакета ассетов (файл .car) сложнее. Другое приложение, AssetCatalogTinkerer, использует частный CoreImage API именно для этого.

Emerge Tools

Если вы хотите заглянуть немного глубже, обратите внимание на моих друзей из Emerge Tools.

Имея бесплатную пробную учетную запись, вы можете загрузить .ipa-файл прямо в их систему и увидеть полный “рентгеновский снимок” пакета, разбитый на фреймворки, модули, вплоть до файлов.

Проверяем пакет iOS-приложения

Секреты iBeer раскрыты: у нас…

Крошечные пенные пузырьки .png. Много крошечных пенных пузырьков .png.

Проверяем пакет iOS-приложения

Чтобы научиться читать эти “рентгеновские снимки”, требуется некоторое время, но, изучив их, можно многое узнать о приложении.

Например, вы можете определить:

  • Есть ли большие файлы ресурсов (например, изображения размером более 10 МБ).
  • Где модуль дублируется в нескольких целях.
  • Не являются ли бинарные символы или другие метаданные причиной увеличения размера приложения.
  • Вы даже можете смотреть на приложение в перспективе, сравнивая несколько версий чтобы определить, где происходит значительное изменение  архитектуры.

Более того, когда вы станете экспертом, на собеседовании отлично прозвучит фраза: «Я посмотрел на пакет вашего приложения и заметил, что модуль NetworkCore дублируется — вы импортировали статическую библиотеку и в основное приложение, и в расширение для уведомлений. Вы могли бы перепаковать модуль в динамический фреймворк и сэкономить 14 МБ места».

Но учтите, что никто не любит умников.

Заключение

Если вам понравился этот пост, пожалуйста, расскажите мне, потому что я мог бы написать целую серию статей об анализе пакетов приложений и их последующей оптимизации.

Если вам не терпится, ознакомьтесь с моей недавней совместной статьей с Emerge Tools, Make Your iOS App Smaller with Dynamic Frameworks, где я объясняю, как можно создавать динамические фреймворки с помощью Swift Package Manager, и демонстрирую новую технику работы с общими каталогами активов.

Отдельное спасибо Алексею Альтер-Песоцкому, куратору рассылки «Мобильная автоматизация», который написал оригинальную статью о том, как скачивать файлы .ipa, из которой эта статья черпала вдохновение.

Источник

Дополнительно

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: