Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

iOS App Store Package

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name iOS App Store Package
Description

An iOS App Store Package (IPA) is an archive file which stores iOS application data. IPA files are ZIP archives that have a specific file and directory structure. Upon extraction, IPA files follow a defined package structure. According to the blog post "Pulling apart an iOS app" (link via Internet Archive), the structure is:

  • iTunesArtwork: A PNG file (without the extension).
  • iTunesMetadata.plist: An XML-based file that contains information about the application, its developer, and other technical metadata.
  • Payload/: A directory that contains the application binary and all dependency resources. Contents of this directory vary based on the application.
  • META-INF/: A directory containing general metadata about the IPA. Includes two files, com.apple.FixedZipMetadata.bin and com.apple.ZipMetadata.plist.

" Pulling apart an iOS app" (link via Internet Archive) contains more details, including a sample iTunesMetadata.plist file.

According to Apple Technical Q&A QA1795 (link via Internet Archive), there are several types of IPA files:

  • 1) App Store Submission IPA: A compressed directory containing the app bundle and additional resources needed for App Store services, such as .dSYM files for crash reporting and asset packs for On Demand Resources.
  • 2) Universal IPA: A compressed app bundle that contains all of the resources to run the app on any device. The file bitcode has been recompiled, and additional resources needed by the App Store, such as .dSYM files and On Demand Resources, are removed. For App Store apps, this .ipa is downloaded to devices running iOS 8 or earlier.
  • 3) Thinned IPA: A compressed app bundle akin to the Universal IPA that contains only the resources needed to run the app on a specific device. For App Store apps, this .ipa is downloaded to devices running iOS 9 or later."
  • 4) Universal app bundle: A decompressed Universal IPA.
  • 5) Thinned app bundle: A decompressed Thinned IPA.
Production phase A final-state format used for distribution of iOS and iPad OS applications.
Relationship to other formats
    Extension of ZIP, ZIP File Format (PKWARE)
    Contains XML, XML (Extensible Markup Language). Used in the Plist
    Contains PNG, PNG, Portable Network Graphics
    May contain Plist (XML Property Lists). An XML-based format. Not described separately at this time.

Local use Explanation of format description terms

LC experience or existing holdings The Library of Congress has a small amount of IPA files in its collections.
LC preference The Library of Congress Recommended Formats Statement (RFS) lists IPA as a preferred format for software and gaming distribution packages.

Sustainability factors Explanation of format description terms

Disclosure Poor disclosure by Apple, Inc.
    Documentation As asserted by Wikipedia, there is no specification for this format. Comments welcome.
Adoption IPA is used to distribute application software on iOS and iPadOS operating systems. IPAs are intended to only be installed on iOS or iPadOS. An IPA file may be able to be run on macOS, but most often not. It is not possible to run IPA files on non-macOS devices, although it is possible to extract files.
    Licensing and patents Any license or patents are held by Apple, Inc. Comments welcome.
Transparency Limited. Depends upon algorithms and tools to read; will require sophistication to build tools.
Self-documentation

IPAs should contain package-level metadata about technical dependencies, such as the minimal required OS versions and required hardware. Metadata may be documented with the iTunesMetadata.plist file and META-INF/ directory, but as noted by the British Library, it is contingent on application developers utilizing this feature. Comments welcome.

Accessibility Features

Because there is little public documentation about IPAs, specific support for accessibility is unknown. Although the focus is on Windows applications, Microsoft's Accessibility (Windows Installer) page has some helpful information about installer packages in general, stating "the user interface of an installer package should facilitate accessibility of the application or product to all users." These include tips about "tooltip text is contained in the Help column of the Control table" to be shown by screen readers, "Controls in dialog boxes should be linked using the Control_Next field of the Control table. The controls need to be authored such that they can all be reached by using the TAB key." and "Shortcut keys should be provided for gaining access to controls directly." See also ZIP. Comments welcome.

External dependencies

According to format researcher Johan van der Knijff, Apple restricts installation of IPAs on anything other than Apple devices.

The British Library asserts that through their research, they were not able to identify tools that could unpackage and migrate IPAs for use in non-iOS/iPadOS environments. Only application developers or publishers are able to update applications for compatibility with new versions of the operating system. They also note that the iOS operating system is closed and highly proprietary, limiting the availability of alternative emulator sources.

The British Library also states: "The iOS SDK simulator is used for development and testing purposes. This could in theory be used to deliver content on a PC but would require permission from the publisher and extensive user testing. There would also be challenges in enabling the simulator independently of the full SDK environment."

IPA packages are typically downloaded from the Apple App Store directly to devices. This requires a device to be networked, may require third-party software, and introduces Digital Rights Management which may further limit access.

Technical protection considerations IPAs cannot be individually encrypted or secured, but Apple utilizes Digital Rights Management called FairPlay. FairPlay is a set of algorithms used to manage description of IPA files during installation on Apple devices. The IPA file format contains encrypted information used by the operating system to install the application. All of the encrypted information is handled through FairPlay. For more details, see the blog post "Analysis of Obfuscation Found in Apple FairPlay". FairPlay has caused issues for application playback, such as crashing.

Quality and functionality factors Explanation of format description terms

Aggregate
Compression See ZIP.
Support for Error Dectection See ZIP.
Beyond normal functionality None.

File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension ipa
See Wikidata.
Internet Media Type application/x-itunes-ipa
Not listed in IANA. See Apache Tika. IPA files may also use variations of the MIME type application/zip, application/octet-stream, or a purposefully defined MIME type.
Pronom PUID See note.  PRONOM has no corresponding entry as of March 2024.
Wikidata Title ID Q2461500
See https://www.wikidata.org/wiki/Q2461500.

Notes Explanation of format description terms

General

There have been at least 12 major versions of Apple's iOS since its first release in 2007. Early versions were limited to mobile phone devices. The British Library notes the "rapid rate of development poses a challenge for apps with specific operating system dependencies, as these apps may not function as intended once a device's underlying operating system is updated."

Recommended Formats Statement: IX. Software and Video Games lists IPA files third in order of preference, behind receiving the uncompiled source code and a gold master build.

History An article by Federico Viticci entitled "App Preservation: Saving the App Store's History" details some historical examples of the complexity of working with operating systems and running applications. For example, thousands of "older iOS apps and games were 'purged' as part of Apple's crackdown on 32-bit legacy software: with iOS 11 last year, the company began preventing apps that hadn't been updated for 64-bit devices from being launched altogether, thus rendering 32-bit apps that were still installed on users' devices useless."

Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 05/17/2024