Indice
IPA (formato di file)
IPA | |
---|---|
Estensione | .ipa
|
Sviluppatore | Apple |
Tipo | File archivio |
Estensione di | ZIP, JAR |
Un file IPA (iPhone application[1] o iOS app package[2]) è un file archivio contenente un'applicazione per il sistema operativo iOS.[3] I file IPA consistono un archivio ZIP con una particolare struttura.[4]
La maggior parte dei file .ipa non può essere installata su iPhone Simulator perché non contiene un binario per l'architettura x86, avendone solo uno per l'architettura ARM dei cellulari.[5] Per eseguire applicazioni sul simulatore, sono richiesti file di progetto originali che possono essere aperti utilizzando Xcode SDK. Tuttavia, alcuni file .ipa possono essere aperti sul simulatore estraendo e copiando il file .app che si trova nella cartella Payload. Alcune semplici app sono in grado di funzionare sul simulatore con questo metodo.
L'ipa è un formato de facto usato da Apple e non ci sono specificazioni. Vi è una forma di Digital rights management nel formato per controllare la ridistribuzione a un singolo ID Apple.[6] Prima di iTunes 12.7 (settembre 2017), gli utenti avevano accesso diretto ai file .ipa sotto forma di download su App Store.[7]
Struttura di un file .ipa
[modifica | modifica wikitesto]Un IPA ha una struttura integrata che iTunes e App Store possono riconoscere. L'esempio seguente mostra la struttura di un IPA:[8]
/Payload/ /Payload/Application.app/ /iTunesArtwork /iTunesArtwork@2x /iTunesMetadata.plist /WatchKitSupport/WK /META-INF
Come mostrato sopra, la cartella Payload è ciò che contiene tutti i dati dell'app. Il file iTunes Artwork è un'immagine PNG da 512 × 512 pixel, contenente l'icona dell'app da mostrare in iTunes e nell'app App Store su iPad. iTunesMetadata.plist contiene varie informazioni, che vanno dal nome e dall'ID dello sviluppatore, all'identificatore del pacchetto, alle informazioni sul copyright, al genere, al nome dell'app, alla data di pubblicazione, alla data di acquisto, ecc.
È comune ma non documentato utilizzare un file JPEG per iTunesArtwork.[9]
Dal 2017, Apple usa LZFSE invece degli algoritmi Zip registrati negli IPA. Il campo "metodo di compressione" in questo caso è impostato su 99.[10]
La firma del codice viene gestita nella directory del bundle .app. La cartella META-INF contiene solo i metadati del programma utilizzato per creare l'IPA.[11]
Eseguibili .ipa non firmati
[modifica | modifica wikitesto]Un .ipa senza firma può essere creato copiando la cartella con l'estensione .app dalla cartella Products dell'applicazione in Xcode in una cartella denominata Payload e comprimendo quest'ultima utilizzando il comando zip -0 -y -r myAppName.ipa Payload/
.
È quindi possibile installare file .ipa non firmati su dispositivi jailbroken iOS utilizzando software di terze parti. AppSync è lo strumento per l'installazione di tali app homebrew. Simile al caso dell'hacking delle console di gioco, si utilizza questa installazione per pirateria, contro i desideri dello sviluppatore dello strumento:[12] alcune comunità sotterranee si formano attorno all'acquisto di un'app e quindi alla condivisione della sua versione non firmata senza DRM.
Note
[modifica | modifica wikitesto]- ^ (EN) Compiling an iPhone application installer (IPA) file, su help.adobe.com, Adobe.
- ^ (EN) Line-of-business app versioning, su learn.microsoft.com, Microsoft, 6 marzo 2023.
- ^ (EN) Reducing your app’s size, su Apple Developer Documentation, Apple.
- ^ (EN) Doing basic optimization to reduce your app’s size, su Apple Developer Documentation, Apple.
- ^ reincubate.com, https://reincubate.com/support/dmge/open-ipa-file-on-windows/ .
- ^ Ask Different, https://apple.stackexchange.com/a/48236 .
- ^ Stack Overflow, https://stackoverflow.com/a/41165422 .
- ^ Copia archiviata (PDF), su owasp.org. URL consultato il 23 luglio 2020 (archiviato dall'url originale il 22 dicembre 2017).
- ^ theiphonewiki.com, https://www.theiphonewiki.com/wiki/IPA_File_Format#iTunesArtwork .
- ^ Copia archiviata, su sskaje. URL consultato il 23 luglio 2020 (archiviato dall'url originale il 29 luglio 2021).
- ^ Copia archiviata, su Raz. URL consultato il 23 luglio 2020 (archiviato dall'url originale il 14 luglio 2020).
- ^ Copia archiviata, su cydia.akemi.ai. URL consultato il 23 luglio 2020 (archiviato dall'url originale il 14 luglio 2020).