Файл .ipa — это файл zip- архива приложения iOS и iPadOS , который хранит приложение iOS/iPadOS в формате пакета . Каждый файл .ipa включает двоичный файл и может быть установлен только на устройстве iOS , iPadOS или macOS на базе ARM . Файлы с расширением .ipa можно распаковать, изменив расширение на .zip и распаковав. Это рекомендуется только при редактировании самого приложения. Некоторые ipa не будут иметь файла .app.
Большинство файлов .ipa не могут быть установлены на iPhone Simulator , поскольку они не содержат двоичный файл для архитектуры x86 , а только один для архитектуры ARM мобильных телефонов и планшетов. [1] Для запуска приложений на симуляторе требуются оригинальные файлы проекта, которые можно открыть с помощью Xcode SDK . Однако некоторые файлы .ipa можно открыть на симуляторе, извлекая и копируя файл .app, находящийся в папке Payload. Некоторые простые приложения могут запускаться на симуляторе с помощью этого метода.
ipa — это фактический формат, используемый Apple, и для него нет спецификаций. Формат управления цифровыми правами существует в формате для контроля распространения на один Apple ID. [2] До iTunes 12.7 (сентябрь 2017 г.) пользователи имели прямой доступ к файлам ipa в виде загрузок App Store. [3]
IPA имеет встроенную структуру, которую iTunes и App Store могут распознать. В примере ниже показана структура IPA: [4]
/Полезная нагрузка//Полезная нагрузка/Приложение.app//iTunesArtwork/iTunesArtwork@2x/iTunesMetadata.plist/WatchKitSupport/WK/META-INF
Как показано выше, папка Payload содержит все данные приложения. Файл iTunes Artwork — это изображение PNG размером 512×512 пикселей , содержащее значок приложения для показа в iTunes и приложении App Store на iPad . iTunesMetadata.plist содержит различную информацию, начиная от имени и идентификатора разработчика, идентификатора пакета, информации об авторских правах, жанра, названия приложения, даты выпуска, даты покупки и т. д.
Распространено, но не документировано использование файла JPEG для iTunesArtwork . [ требуется ссылка ]
С 2017 года Apple использует LZFSE вместо зарегистрированных алгоритмов Zip в IPA. Поле «метод сжатия» в этом случае установлено на 99. [5]
Подписание кода осуществляется в каталоге .app bundle. Папка META-INF содержит только метаданные о том, какая программа использовалась для создания IPA. [6]
Неподписанный .ipa можно создать, скопировав папку с расширением .app из папки Products приложения в Xcode в папку Payload и сжав последнюю с помощью команды zip -0 -y -r myAppName.ipa Payload/
.
Затем можно устанавливать неподписанные файлы .ipa на устройства iOS с джейлбрейком с помощью стороннего программного обеспечения. AppSync — это инструмент для установки таких самодельных приложений. AltStore и Sideloadly — это инструменты, которые также можно использовать для установки неподписанных файлов .ipa на устройства без джейлбрейка, используя учетную запись разработчика для временной подписи приложения на 7 дней в целях тестирования. Подобно случаю взлома игровых консолей, известно, что люди используют эту установку для пиратства , вопреки желанию разработчика инструмента: [7] некоторые подпольные сообщества формируются вокруг покупки приложения, а затем распространения его неподписанной версии без DRM.