IPA: ano ito, istraktura ng file at prinsipyo ng paggawa

May-akda: IT Sectr Nai-publish: 2026-04-15 Oras ng pagbabasa: 8 min

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 — format ng archive para sa pamamahagi ng iOS application sa pamamagitan ng App Store at ad-hoc installation.
  • Istraktura ay may kasamang pinirmahang executable na Mach-O file, mga resource, at Provisioning Profile.
  • Pirma — sapilitan: kung walang tamang sertipiko at profile, hindi mai-install ang IPA.
  • Pagbuo ay ginagawa sa pamamagitan ng Xcode na may suporta sa iba't ibang scheme: Debug, Release, Ad-hoc, Enterprise.
  • Arkitektura — ang mga modernong IPA ay naglalaman ng binary file para sa arm64, walang suporta para sa 32-bit na device.

Ano ang IPA at para saan ito ginagamit

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.

Kasaysayan ng format

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.

Mga sitwasyon ng paggamit

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.

Panloob na istraktura ng IPA file

Ang panloob na istraktura ng IPA ay isang ZIP archive na naglalaman ng Payload folder na may .app bundle at metadata.

File/direktoryoLayunin
Payload/Root folder na may .app bundle
Payload/App.app/Bundle ng application: executable file, resource, nib/storyboard
Payload/App.app/Info.plistMetadata: bundle ID, bersyon, pahintulot
Payload/App.app/embedded.mobileprovisionProvisioning Profile para sa pag-install
iTunesMetadata.plistMetadata para sa iTunes (opsyonal)
META-INF/Mga pirma at hash para sa pag-verify

.app bundle

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.

Mach-O executable file

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.

Proseso ng pagbuo ng IPA sa pamamagitan ng Xcode

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.

Mga scheme ng pagbuo

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.

objective-c
// 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>

Arkitektura ng pagbuo

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 ng IPA at Provisioning Profile

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.

Mga bahagi ng pagpirma

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).

Proseso ng pagpirma

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.

swift
// 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
}

Pag-publish ng IPA sa App Store Connect

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.

Proseso ng pag-upload

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.

Command line

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.

App Thinning: pag-optimize ng IPA para sa device

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.

Pagsubok ng IPA sa pamamagitan ng TestFlight

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 at external na pagsubok

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.

Mga limitasyon ng TestFlight

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.

IPA at Continuous Integration

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 karaniwang problema sa IPA

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.

Error sa pagpirma: No matching provisioning profile found

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.

ITMS-90125: The binary is invalid

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.

Invalid Bundle Structure: The bundle is missing the required .app bundle

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.

Pamamahagi ng IPA nang walang App Store

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

Paano naiiba ang IPA sa APK?

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).

Maaari bang buuin ang IPA sa Windows?

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).

Gaano kalaki ang tipikal na IPA?

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.

Paano mag-install ng IPA nang walang App Store?

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.

Ano ang thin IPA at fat IPA?

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

  • IPA — format ng pamamahagi ng iOS application na batay sa ZIP na may Mach-O executable file.
  • Istraktura ay may kasamang Payload/.app bundle, Info.plist, mga pirma, at Provisioning Profile.
  • Pagbuo ay ginagawa sa pamamagitan ng Xcode na may compilation ng Swift/Objective-C sa arm64 machine code.
  • Pagpirma sapilitan: sertipiko + Provisioning Profile + entitlements ay nabe-verify ng iOS sa pag-install.
  • Pag-publish ay sa pamamagitan ng App Store Connect na may pagsusuri ng Apple Review Guidelines.
  • TestFlight — opisyal na tool ng beta testing para sa hanggang 10,000 kalahok.
  • Mga limitasyon: pagbuo lamang sa macOS, sapilitang pagpirma, maximum na 4 GB na laki.

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.

Pag-usapan ang proyekto

Basahin din