IPA (iOS App Store Package) ay isang format ng archive file para sa pamamahagi ng mga application sa iOS. Bawat application na napupunta sa App Store ay dumadaan sa format na IPA: binubuo ng developer ang proyekto, pinipirmahan ito, at ina-upload ang IPA sa App Store Connect. Ayon sa Apple Developer Documentation, 2026, ang format na IPA ay batay sa ZIP at naglalaman ng executable na Mach-O file, mga resource, at metadata ng pirma.
Mga pangunahing punto
IPA (iOS App Store Package) ay isang format ng package para sa pamamahagi ng mga application sa Apple platform. Tulad ng APK, teknikal na ang IPA ay isang ZIP archive, ngunit may sariling istraktura na idinidikta ng mga kinakailangan sa seguridad at pagpirma ng iOS.
Ang IPA format ay lumitaw kasabay ng iPhone OS 2.0 noong 2008 at App Store. Bilang batayan ay kinuha ang .app package format mula sa macOS, na naka-pack sa ZIP upang bawasan ang laki habang nagpapadala. Mula noon, ang istraktura ng IPA ay hindi sumailalim sa malalaking pagbabago — tanging ang mga scheme ng pagpirma at metadata ang nagbago.
App Store — pangunahing channel. Ad-hoc distribution — para sa pagsubok sa limitadong bilang ng device (hanggang 100). Enterprise distribution — para sa corporate application nang walang pag-publish sa tindahan. Ginagamit din ng mga developer ang IPA para sa pagsubok sa totoong device sa pamamagitan ng Xcode.
Ang panloob na istraktura ng IPA ay isang ZIP archive na naglalaman ng Payload folder na may .app bundle at metadata.
| File/direktoryo | Layunin |
|---|---|
| Payload/ | Root folder na may .app bundle |
| Payload/App.app/ | Bundle ng application: executable file, resource, nib/storyboard |
| Payload/App.app/Info.plist | Metadata: bundle ID, bersyon, pahintulot |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile para sa pag-install |
| iTunesMetadata.plist | Metadata para sa iTunes (opsyonal) |
| META-INF/ | Mga pirma at hash para sa pag-verify |
Sa loob ng Payload folder ay matatagpuan ang bundle ng application na may extension na .app. Ito ay hindi isang file, kundi isang direktoryo na kinikilala ng iOS bilang isang application. Sa loob ay may executable na Mach-O file (pangalan ay tumutugma sa pangalan ng bundle), Info.plist, mga resource, mga larawan, at mga localized na string.
Ang source code sa Swift o Objective-C ay ini-compile sa machine code sa Mach-O (Mach Object) format. Ang file ay naglalaman ng __TEXT (code), __DATA (data), at __LINKEDIT (link metadata) segments. Ang mga modernong IPA ay naglalaman lamang ng 64-bit arm64 architecture.
Xcode ay nag-automate ng pagbuo ng IPA: mula sa compilation ng source code hanggang sa paggawa ng pinirmahang archive na handa para i-upload sa App Store Connect.
Debug — para sa pag-develop, walang optimization. Release — para sa pag-publish, na may compiler optimization. Tinutukoy ng bawat scheme ang compilation flags, code signing, at entitlements. Gumagawa ang Xcode ng archive (Archive) sa pamamagitan ng menu na Product → Archive.
// Info.plist — pangunahing metadata ng application
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
Ni-compile ng Xcode ang bawat .swift o .m file sa isang object file (.o), pagkatapos ay ini-link ang mga ito sa iisang Mach-O binary file. Ang mga resource (mga larawan, XIB, storyboard) ay pinoproseso nang hiwalay: ang mga storyboard ay ini-compile sa binary format na .storyboardc, ang mga larawan ay ino-optimize sa Asset Catalog (.car).
Pagpirma — ang pinakakomplikadong aspeto ng IPA. Apple ay nangangailangan ng digital signature para sa bawat application na tumatakbo sa totoong device. Sinusuri ng system ang sertipiko ng developer, entitlements, at pagsunod sa Provisioning Profile.
Certificate (Development o Distribution) — nagpapatunay ng pagkakakilanlan ng developer. Provisioning Profile — nag-uugnay ng sertipiko, bundle ID, at listahan ng pinapayagang device (para sa ad-hoc). Entitlements — mga pahintulot ng application (push notification, iCloud, App Groups).
Pinipirmahan ng Xcode ang bawat library at framework sa loob ng .app bundle, pagkatapos ay pinipirmahan ang bundle mismo. Ang huling IPA ay pinipirmahan sa antas ng ZIP archive. Sinusuri ng Apple ang lahat ng antas ng pagpirma sa pag-install. iOS ay hindi nagpapatakbo ng application kung hindi bababa sa isang bahagi ay may hindi wastong pirma.
// Pag-verify ng pirma sa pamamagitan ng Security framework
import Security
func checkSignature() -> Bool {
let url = Bundle.main.bundleURL
var staticCode: SecStaticCode?
guard SecStaticCodeCreateWithPath(
url as CFURL,
[], &staticCode
) == errSecSuccess else {
return false
}
return true
}
App Store Connect — ang platform ng Apple para sa pamamahala ng pag-publish ng application. Ang pag-upload ng IPA ay ginagawa sa pamamagitan ng Xcode Organizer, Transporter, o command line sa pamamagitan ng xcrun altool.
Pagkatapos gumawa ng archive, nag-aalok ang Xcode ng Distribute App na may pagpili ng paraan: App Store Connect, Ad-hoc, Enterprise, o Development. Pagpili ng App Store Connect, ipinapakita ng developer ang team at kinukumpirma ang pag-upload. Sinusuri ng Xcode ang pirma, ipinapadala ang IPA sa mga server ng Apple, at ibinabalik ang status ng pagproseso.
Para sa CI/CD ginagamit ang xcrun altool o mas bagong notarytool. Apple ay nangangailangan ng notarization para sa macOS application, para sa iOS ang hakbang na ito ay opsyonal ngunit inirerekomenda. Ang xcodebuild -exportArchive ay gumagawa ng pinirmahang IPA na handa para i-upload.
Apple ay sinusuri ang bawat IPA para sa malicious code, pribadong API, at pagsunod sa App Store Review Guidelines. Ang proseso ng pagsusuri ay tumatagal mula 1 oras hanggang 2 araw.
Sa pag-upload ng IPA sa App Store Connect, inilalapat ng Apple ang App Thinning — teknolohiya ng pag-optimize ng binary para sa mga partikular na device. Slicing ay nag-aalis mula sa IPA ng mga resource para sa hindi sinusuportahang resolution at architecture. On-Demand Resources ay nagpapahintulot sa pag-download ng mga bahagi ng application (mga level ng laro, video) lamang sa kahilingan ng user. Bitcode — isang intermediate na representasyon na maaaring i-recompile ng Apple para sa mga bagong architecture nang walang partisipasyon ng developer.
App Store ay sinusuri rin ang pagsunod ng IPA sa mga kinakailangan ng Sandbox: ang application ay hindi dapat mag-access ng data ng ibang application, file system sa labas ng sarili nitong container, at hardware functions nang walang malinaw na pahintulot ng user.
TestFlight — ang opisyal na serbisyo ng Apple para sa beta testing ng application. Ina-upload ng developer ang IPA sa App Store Connect at iniimbitahan ang mga tester sa pamamagitan ng email o pampublikong link.
Internal Testing — hanggang 100 kalahok mula sa team ng developer. Hindi nangangailangan ng pagsusuri ng Apple. External Testing — hanggang 10,000 kalahok, nangangailangan ng Beta App Review. Awtomatikong namamahagi ang TestFlight ng mga build sa mga tester at nangongolekta ng analytics.
Ang build ay available para sa pagsubok sa loob ng 90 araw pagkatapos i-upload. Sinusuportahan ng TestFlight ang hanggang 100 aktibong build nang sabay. Bawat tester ay maaaring mag-install ng hanggang 30 application nang sabay. Crashlytics ay nagsasama sa TestFlight para sa pagkolekta ng mga ulat ng crash at non-fatal error.
Ang pagbuo ng IPA sa CI environment ay nangangailangan ng macOS runner. GitHub Actions, GitLab CI, at Bitrise ay nagbibigay ng macOS environment para sa iOS builds. Ang Fastlane lane `build_app` ay nag-automate ng buong cycle: pag-archive, pagpirma, pag-export ng IPA, at pag-upload sa TestFlight. Para sa pamamahala ng mga sertipiko at profile ginagamit ang Match — ang Fastlane tool na nag-iimbak ng mga pirma sa naka-encrypt na Git repository.
Mga developer ay nakakaharap ng serye ng mga karakteristikong error sa pagbuo at pagpirma ng IPA. Karamihan ay may kaugnayan sa maling configuration ng mga sertipiko at profile.
Hindi mahanap ng Xcode ang Provisioning Profile na tumutugma sa bundle ID at sertipiko. Solusyon — i-download ang kasalukuyang profile sa Xcode Accounts → Download Manual Profiles o gamitin ang Automatic Signing.
Error ay nangyayari sa pag-upload ng IPA na may hindi wastong arkitektura. Ang mga modernong IPA ay dapat maglaman lamang ng arm64. Ang presensya ng i386 o x86_64 sa binary ay nagdudulot ng pagtanggi. Solusyon — suriin ang architecture sa Build Settings at ibukod ang simulator architecture.
Ang IPA ay hindi naglalaman ng tamang Payload/App.app na istraktura. Apple ay umaasa ng eksaktong hierarchy. Solusyon — suriin na ang archive ay may kasamang Payload folder na may isang .app bundle, hindi flat list ng mga file.
Para sa corporate distribution ginagamit ang Enterprise program ng Apple (299 USD/taon). Ang IPA ay pinipirmahan ng Enterprise certificate at maaaring i-install sa anumang device ng kumpanya nang walang limitasyon sa bilang. Ang ad-hoc distribution ay limitado sa 100 device bawat developer account (99 USD/taon). Ang mga MDM (Mobile Device Management) system tulad ng Jamf at Microsoft Intune ay sumusuporta sa mass installation ng Enterprise-IPA.
Mga madalas itanong
IPA ay gumagamit ng executable na Mach-O format sa halip na DEX, nangangailangan ng Provisioning Profile para sa pag-install, at dumadaan sa mahigpit na pagsusuri ng App Store. APK, hindi tulad ng IPA, ay maaaring i-install nang direkta nang walang tagapamagitan (sideloading).
Hindi, ang pagbuo ng IPA ay nangangailangan ng Xcode at mga tool ng Apple na available lamang sa macOS. Alternatibo: remote macOS server (Mac min, AWS Mac) o cloud CI services (GitHub Actions na may macOS runner).
Simpleng application — 5–30 MB. Application ng katamtamang komplikado — 30–150 MB. Ang mga laro ay maaaring umabot ng 4 GB. Apple ay naglilimita sa laki ng pag-download sa pamamagitan ng mobile network sa 200 MB, ngunit ang user ay maaaring mag-download sa pamamagitan ng Wi-Fi.
Para sa ad-hoc installation ginagamit ang Xcode o Apple Configurator. Ang Enterprise application ay ipinamamahagi sa pamamagitan ng internal server na may manifest.plist. Ang ordinaryong user ay hindi maaaring mag-install ng IPA nang walang jailbreak o TestFlight.
Fat IPA ay naglalaman ng maraming architecture (arm64 + x86_64) para sa universal build. Ang Thin IPA ay naglalaman lamang ng isang architecture para sa isang partikular na device. Apple ay tumatanggap lamang ng thin IPA para sa pag-publish — ang fat binary file ay tinatanggihan.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din