IPA文件
.IPA後綴的文件是iOS和iPadOS的應用程序存檔文件,全称为iPhone application archive(iPhone應用存檔)。通常情况下,IPA文件都是使用苹果公司的FairPlayDRM技术进行加密保护的二進制文件,可以通过IPA砸壳的方式移除加密保护来对IPA文件进行一些修改。每个IPA文件都是ARM架构的可执行文件以及该应用的资源文件的打包文件,只能安装在iPhone、iPod Touch、iPad以及使用Apple Silicon平台的Mac上。文件可通过修改后缀为zip进行解压缩,並查看其内容。
.ipa | |
开发者 | Apple公司 |
格式类型 | 軟件包格式 |
作为容器 | 移動應用程序 |
自 | ZIP文件、JAR文件 |
大多數.ipa文件無法安裝在iPhone模擬器,因為不含用於x86架構的二進製文件,只有用於手機和平板電腦的ARM架構。[1]要在模擬器運行應用程序,需要使用Xcode軟件開發工具包打開原始項目文件。但通過提取和複製實體數據文件夾的.app文件,可在模擬器上打開一些.ipa文件。一些簡單的應用程序可通過這種方法在模擬器運行。
IPA文件是Apple「事實上的」格式。格式存在一種數字版權管理形式,用於控制對單個Apple ID重新分發。[2]在iTunes 12.7(2017年9月)之前,用戶可直接訪問表單的IPA文件App Store下載量。[3]
文件結構
IPA具有供iTunes和App Store識別的內置結構。 下面的示例顯示了IPA的結構:[4]
/Payload/ /Payload/Application.app/ /iTunesArtwork /iTunesArtwork@2x /iTunesMetadata.plist /WatchKitSupport/WK /META-INF
如上所示,實體數據文件夾包含所有應用程序數據。iTunes Artwork文件是一個512×512像素的PNG圖像,包含用於在iTunes顯示的應用程序圖標和iPad的App Store應用程序。iTunesMetadata.plist包含各種信息,包括開發者名稱、ID、捆綁包標識符、版權信息、流派、應用程序名稱、發布日期、購買日期等。
It is common but undocumented to use a JPEG file for .[5]
自 2017 年以來,Apple 在 IPA 中使用 LZFSE 而不是註冊 Zip 算法。本例中的“壓縮方法”字段設置為 99。 Since 2017, Apple has used LZFSE instead of registered Zip algorithms in IPAs. The "compression method" field in this case is set to 99.[6]
Code signing is handled in the .app bundle directory. The META-INF folder only contains metadata about what program was used to create the IPA.[7]
Unsigned .ipa executables
An unsigned .ipa can be created by copying the folder with the extension .app from the Products folder of the application in Xcode to a folder called Payload and compressing the latter using the command zip -0 -y -r myAppName.ipa Payload/
.
It is then possible to install unsigned .ipa files on iOS jailbroken devices using third party software. AppSync is the tool for installing such homebrew apps. Similar to the case of game console hacking, people are known to use this installation for piracy, against the tool developer's wishes:[8] some underground communities form around buying an app and then sharing its DRM-free unsigned version.
參考
- . Reincubate. [2019-04-08]. (原始内容存档于2019-04-08).
- . Ask Different. 2012.
- Bergman, Jim. . Stack Overflow.
- (PDF). ARXAN. 2014 [2019-04-08]. (原始内容 (PDF)存档于2017-12-22).
- . www.theiphonewiki.com. [2023-01-02]. (原始内容存档于2023-01-02).
- . sskaje. 23 August 2017 [2023-01-02]. (原始内容存档于2021-07-29).
- . Raz. 29 December 2017 [4 March 2020]. (原始内容存档于14 July 2020).
- . cydia.akemi.ai. [2023-01-02]. (原始内容存档于2023-01-02).