Qué son los archivos de aplicaciones en iOS como APK en Android?

Los archivos de paquetes de aplicaciones en iOS se llaman archivos .ipa. IPA son las siglas de «iOS App Store Package». Cada archivo .ipa incluye un binario para la arquitectura ARM y sólo puede instalarse en un dispositivo iOS.

Un IPA tiene una estructura incorporada para que iTunes y AppStore lo reconozcan, El ejemplo siguiente muestra la estructura de un IPA:

/Payload/
/Payload/Application.app
/iTunesArtwork
/iTunesArtwork@2x
/iTunesMetadata.plist
/WatchKitSupport/WK

La carpeta Payload es la que contiene todos los datos de la app. El archivo iTunes Artwork es una imagen PNG de 512×512 píxeles, que contiene el icono de la aplicación para mostrarlo en iTunes y en la aplicación App Store del iPad. El archivo iTunesMetadata.plist contiene varios datos, desde el nombre y la identificación del desarrollador (por ejemplo, Google), el identificador del paquete, la información sobre los derechos de autor, el género, el nombre de la aplicación, la fecha de lanzamiento, la fecha de compra, etc.

A diferencia de los archivos .apk, los archivos .ipa no se pueden instalar simplemente en un dispositivo iOS. Utiliza la tecnología de gestión de derechos digitales (DRM) Fairplay de Apple, para evitar la instalación de apps de iOS en dispositivos no autorizados.

Fairplay DRM funciona más bien como SSL. Funciona con claves públicas y privadas.
Por ejemplo, para una comunicación segura con un servidor, utilizaría la clave pública del servidor para encriptar los datos que se envían al servidor. El servidor usaría entonces su clave privada para descifrarlos.

Al registrar una cuenta de Apple, Apple genera un par de claves públicas y privadas para su nombre de usuario. Luego te da tu clave privada y se queda con tu clave pública (Por eso cuando compras por primera vez o cuando restauras tu iDevice debes activarlo con tu cuenta de iTunes). Tras la activación, iTunes envía un identificador de máquina único a los servidores de Apple. Registra tu iDevice en sus bases de datos (esto se hace para limitar el número de dispositivos autorizados) y luego transfiere tu clave privada a tu iDevice. Básicamente, lo que ocurre es que cuando compras una aplicación (gratuita o de pago) Apple genera una cabecera de 4196 bytes que está cifrada con tu clave pública. Sólo tu clave privada puede descifrar la cabecera incrustada en la app.

Así que, por ejemplo, si copiara un IPA generado por ti, y lo pusiera en mi iDevice (esto es asumiendo que puedes conseguirlo allí, iTunes se negaría a sincronizarlo de todos modos), y luego tratara de ejecutarlo, simplemente se bloquearía porque mi clave privada no sería capaz de descifrar la cabecera. También vale la pena señalar que el archivo IPA no tiene la cabecera, si usted echa un vistazo a los contenidos de un IPA se dará cuenta de que contiene un archivo sin extensión, tome Facebook’s app por ejemplo, tendría un archivo llamado ‘Facebook’. Este es el binario de la aplicación, y este es el archivo que tiene la cabecera encriptada.

Cuando un usuario desautoriza un ordenador, iTunes dará instrucciones a los servidores de Apple para eliminar el identificador único de la máquina de su base de datos, y al mismo tiempo eliminará todas las claves de usuario del dispositivo desautorizado.