Định dạng tệp được sử dụng cho phần mềm trên hệ điều hành iOS/iPadOS của Apple

Một tệp **.ipa** là tệp lưu trữ ứng dụng iOS và iPadOS lưu trữ ứng dụng iOS/iPadOS. Mỗi tệp .ipa bao gồm một tệp nhị phân và chỉ có thể được cài đặt trên thiết bị iOS, iPadOS, hoặc thiết bị macOS dựa trên ARM. Các tệp có phần mở rộng .ipa có thể được giải nén bằng cách thay đổi phần mở rộng thành .zip và giải nén.

Phần lớn các tệp .ipa không thể cài đặt lên Giả lập iPhone bởi vì chúng không chứa nhị phân cho kiến trúc x86, Kiến trúc ARM của điện thoại di động và máy tính bảng. Để chạy các ứng dụng trên trình giả lập, các tệp dự án gốc có thể được mở bằng Xcode SDK.Tuy nhiên, một số tệp .ipa có thể được mở trên trình mô phỏng bằng cách giải nén và sao chép tệp .app được tìm thấy trong thư mục Payload. Một số ứng dụng đơn giản có thể chạy trên trình mô phỏng thông qua phương pháp này.

ipa là một định dạng thực tế được Apple sử dụng và không có thông số kỹ thuật nào về nó. Nó là một dạng của quản lý quyền kỹ thuật số tồn tại ở định dạng để kiểm soát việc phân phối lại cho một ID Apple duy nhất. Trước iTunes 12.7 (tháng 9 năm 2017), người dùng có quyền truy cập trực tiếp vào các tệp ipa dưới dạng tải xuống App Store.

Cấu trúc của một tệp .ipa
-------------------------

IPA có cấu trúc tích hợp sẵn để iTunes và App Store có thể nhận ra.
Ví dụ dưới đây cho thấy cấu trúc của một tệp IPA:

```
/Payload/
/Payload/Application.app/
/iTunesArtwork
/iTunesArtwork@2x
/iTunesMetadata.plist
/WatchKitSupport/WK
/META-INF

```

Như danh sách ở trên, thư mục Payload là nơi chứa tất cả dữ liệu ứng dụng. Tệp iTunes Artwork có độ phân giải 512×512 pixel ở định dạng PNG, chứa biểu tượng của ứng dụng để hiển thị trong iTunes và ứng dụng App Store trên iPad. Tệp iTunesMetadata.plist chứa nhiều thông tin khác nhau, từ tên và ID của nhà phát triển, số nhận dạng gói, thông tin bản quyền, thể loại, tên ứng dụng, ngày phát hành, ngày mua, v.v.

Việc sử dụng tệp JPEG cho Bản mẫu:Tt là phổ biến nhưng không có giấy tờ. .

Kể từ năm 2017, Apple đã sử dụng LZFSE thay vì thuật toán Zip đã đăng ký trong IPA. Trường "compression method" trong trường hợp này đặt thành 99.

Việc code signing (ký mã) được xử lý trong thư mục gói .app. trong thư mục .app. TThư mục META-INF chỉ chứa metadata về chương trình nào đã được sử dụng để tạo IPA.

Các tệp thực thi .ipa chưa được ký
----------------------------------

Một tệp .ipa chưa được ký (Unsigned) có thể được tạo bằng cách sao chép thư mục có phần mở rộng .app từ thư mục Products của ứng dụng trong Xcode đến một folder gọi là Payload và nén sau bằng lệnh `zip -0 -y -r myAppName.ipa Payload/`.

Sau đó có thể cài đặt tệp .ipa chưa được ký trên thiết bị iOS đã được jailbreak sử dụng phần mềm bên thứ ba. *AppSync* là công cụ để cài đặt các ứng dụng homebrew. Tương tự như trường hợp hack game console, mọi người được biết là sử dụng cài đặt này để vi phạm bản quyền, trái với mong muốn của nhà phát triển công cụ: một số cộng đồng ngầm hình thành xung quanh việc mua một ứng dụng và sau đó chia sẻ phiên bản không có chữ ký và không có DRM của ứng dụng đó.

Tham khảo
---------

1. ↑  "How to open an IPA file on Windows". Reincubate. Truy cập ngày 8 tháng 4 năm 2019.
2. ↑  "itunes - How does iOS app DRM work, exactly?". *Ask Different*. 2012.
3. ↑  Bergman, Jim. "ios - How Can I Extract an IPA from an iPhone for an App Downloaded from the App Store so that I can see the assets in the IPA?". *Stack Overflow*.
4. ↑  "Reverse Engineering iOS Applications" (PDF). ARXAN. 2014. Bản gốc (PDF) lưu trữ ngày 22 tháng 12 năm 2017. Truy cập ngày 8 tháng 4 năm 2019.
5. ↑  "IPA File Format - The iPhone Wiki". *www.theiphonewiki.com*.
6. ↑  "unzip with lzfse support". *sskaje*. ngày 23 tháng 8 năm 2017. Bản gốc lưu trữ ngày 29 tháng 7 năm 2021. Truy cập ngày 21 tháng 3 năm 2023.
7. ↑  "Pulling apart an iOS App". *Raz*. ngày 29 tháng 12 năm 2017. Bản gốc lưu trữ ngày 14 tháng 7 năm 2020. Truy cập ngày 4 tháng 3 năm 2020.
8. ↑  "AppSync Unified :: Karen's Repo". *cydia.akemi.ai*.

Bản mẫu:Archive formats