IPA: mi ez, fájl szerkezete és működési elve

Szerző: IT Sectr Megjelenés: 2026-04-15 Olvasási idő: 8 perc

IPA (iOS App Store Package) egy archív fájlformátum iOS-alkalmazások terjesztéséhez. Minden alkalmazás, ami az App Store-ba kerül, átmegy az IPA formátumon: a fejlesztő összeállítja a projektet, aláírja és feltölti az IPA-t az App Store Connectbe. Az Apple Developer Documentation, 2026 szerint az IPA formátum ZIP-en alapul és tartalmaz egy futtatható Mach-O fájlt, erőforrásokat és aláírási metaadatokat.

Főbb pontok

  • IPA — archívumformátum iOS-alkalmazások terjesztéséhez az App Storeon és ad-hoc telepítésen keresztül.
  • Szerkezet tartalmazza az aláírt futtatható Mach-O fájlt, erőforrásokat és Provisioning Profile-t.
  • Aláírás — kötelező: helyes tanúsítvány és profil nélkül az IPA nem telepíthető.
  • Építés Xcode-on keresztül történik különböző sémák támogatásával: Debug, Release, Ad-hoc, Enterprise.
  • Architektúrák — a modern IPA-k bináris fájlokat tartalmaznak arm64-hez, 32-bites eszközök támogatása nélkül.

Mi az IPA és mire használják

IPA (iOS App Store Package) egy csomagformátum alkalmazások Apple platformon történő terjesztéséhez. Az APK-hoz hasonlóan technikailag az IPA egy ZIP archívum, de saját szerkezettel, amelyet az iOS biztonsági és aláírási követelményei határoznak meg.

A formátum története

Az IPA formátum az iPhone OS 2.0-val és az App Store-ral együtt jelent meg 2008-ban. Alapul a macOS .app csomagformátumát vették, ZIP-be csomagolva a méret csökkentése érdekében az átvitel során. Azóta az IPA szerkezete nem szenvedett győkeres változásokat — csak az aláírási sémák és a metaadatok változtak.

Használati forgatókönyvek

App Store — a fő csatorna. Ad-hoc terjesztés — korlátozott számú eszközön (max. 100) történő teszteléshez. Enterprise terjesztés — vállalati alkalmazásokhoz, boltban történő közzététel nélkül. A fejlesztők az IPA-t valós eszközökön történő teszteléshez is használják Xcode-on keresztül.

Az IPA fájl belső szerkezete

A belső szerkezet egy ZIP archívum, amely a Payload mappát tartalmazza .app bundle-lal és metaadatokkal.

Fájl/könyvtárRendeltetés
Payload/Gyökérmappa .app bundle-lal
Payload/App.app/Alkalmazás bundle: futtatható fájl, erőforrások, nib/storyboard
Payload/App.app/Info.plistMetaadatok: bundle ID, verziók, engedélyek
Payload/App.app/embedded.mobileprovisionProvisioning Profile telepítéshez
iTunesMetadata.plistMetaadatok iTunes-hoz (opcionális)
META-INF/Aláírások és hashek ellenőrzéshez

.app bundle

A Payload mappán belül található az alkalmazás bundle .app kiterjesztéssel. Ez nem egy fájl, hanem egy könyvtár, amelyet az iOS alkalmazásként ismer fel. Belül található a futtatható Mach-O fájl (név megegyezik a bundle nevevel), Info.plist, erőforrások, képek és lokalizált sztringek.

Mach-O futtatható fájl

A Swift vagy Objective-C forráskód gépi kóddá fordul Mach-O (Mach Object) formátumban. A fájl __TEXT (kód), __DATA (adatok) és __LINKEDIT (linkelési metaadatok) szegmenseket tartalmaz. A modern IPA-k csak 64-bites arm64 architektúrát tartalmaznak.

IPA építési folyamata Xcode-on keresztül

Xcode automatizálja az IPA építését: a források fordításától az App Store Connectbe történő feltöltésre kész aláírt archívum létrehozásáig.

Építési sémák

Debug — fejlesztéshez, optimalizálások nélkül. Release — közzétételhez, fordítói optimalizálásokkal. Minden séma meghatározza a fordítói kapcsolókat, a kódaláírást és az entitlements-eket. Az Xcode archívumot (Archive) hoz létre a Product → Archive menün keresztül.

objective-c
// Info.plist — az alkalmazás alap metaadatai
<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>

Építési architektúra

Az Xcode minden .swift vagy .m fájlt objektumfájllá (.o) fordít, majd összekapcsolja őket egyetlen Mach-O bináris fájllá. Az erőforrások (képek, XIB, storyboard) külön kerülnek feldolgozásra: a storyboard-ok .storyboardc bináris formátumba fordulnak, a képek az Asset Catalogban (.car) optimalizálódnak.

IPA aláírása és Provisioning Profile

Aláírás — az IPA legösszetettebb aspektusa. Az Apple digitális aláírást követel meg minden olyan alkalmazáshoz, amely valós eszközön fut. A rendszer ellenőrzi a fejlesztői tanúsítványt, az entitlements-eket és a Provisioning Profile-nak való megfelelést.

Az aláírás összetevői

Certificate (Development vagy Distribution) — igazolja a fejlesztő személyazonosságát. Provisioning Profile — összekapcsolja a tanúsítványt, bundle ID-t és az engedélyezett eszközök listáját (ad-hoc esetén). Entitlements — az alkalmazás engedélyei (push értesítések, iCloud, App Groups).

Az aláírás folyamata

Az Xcode aláírja a .app bundle-on belül minden könyvtárat és keretrendszert, majd aláírja magát a bundle-t. A végső IPA a ZIP archívum szintjén kerül aláírásra. Az Apple az összes aláírási szintet ellenőrzi telepítéskor. az iOS nem indítja el az alkalmazást, ha legalább egy összetevő érvénytelen aláírással rendelkezik.

swift
// Aláírás ellenőrzése Security frameworkön keresztül
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
}

IPA közzététele az App Store Connectben

App Store Connect — az Apple platformja az alkalmazáskiadások kezeléséhez. Az IPA feltöltése az Xcode Organizeren, Transporteren vagy parancssoron keresztül történik az xcrun altool segítségével.

A feltöltés folyamata

Az archívum létrehozása után az Xcode felajánlo Distribute App-ot módszerválasztással: App Store Connect, Ad-hoc, Enterprise vagy Development. Az App Store Connect választása után a fejlesztő megadja a csapatot és megerősíti a feltöltést. Az Xcode ellenőrzi az aláírást, elküldi az IPA-t az Apple szervereire és visszaadja a feldolgozási állapotot.

Parancssor

CI/CD-hez xcrun altool-t vagy az újabb notarytool-t használják. Az Apple közjegyzői hitelesítést követel meg macOS-alkalmazásokhoz, iOS esetében ez a lépés opcionális, de ajánlott. Az xcodebuild -exportArchive egy feltöltésre kész aláírt IPA-t hoz létre.

Apple minden IPA-t ellenőriz rosszindulatú kód, privát API-k és az App Store Review Guidelines szabályoknak való megfelelés szempontjából. Az ellenőrzési folyamat 1 órától 2 napig tart.

App Thinning: az IPA optimalizálása eszközökhöz

Az IPA App Store Connectbe történő feltöltésekor az Apple App Thinninget alkalmaz — a bináris fájl optimalizálásának technológiáját meghatározott eszközökhöz. A Slicing eltávolítja az IPA-ból a nem támogatott felbontások és architektúrák erőforrásait. Az On-Demand Resources lehetővé teszi az alkalmazásrészek (játékszintek, videók) letöltését csak a felhasználó kérésére. Bitcode — egy köztes reprezentáció, amelyet az Apple össze tud állítani új architektúrákhoz a fejlesztő részvétele nélkül.

App Store azt is ellenőrzi, hogy az IPA megfelel-e a Sandbox követelményeinek: az alkalmazás nem férhet hozzá más alkalmazások adataihoz, a saját konténerén kívüli fájlrendszerhez és hardverfunkciókhoz a felhasználó kifejezett engedélye nélkül.

IPA tesztelése TestFlighton keresztül

TestFlight — az Apple hivatalos szolgáltatása alkalmazások béta teszteléséhez. A fejlesztő feltölti az IPA-t az App Store Connectbe és meghívja a tesztelőket e-mailen vagy nyilvános linken keresztül.

Belső és külső tesztelés

Internal Testing — legfeljebb 100 résztvevő a fejlesztő csapatából. Nem igényel Apple-ellenőrzést. External Testing — legfeljebb 10 000 résztvevő, át kell esnie a Beta App Review-on. A TestFlight automatikusan elosztja a build-eket a tesztelők között és analitikát gyűjt.

A TestFlight korlátai

A build 90 napig érhető el tesztelésre a feltöltés után. A TestFlight legfeljebb 100 aktív build-et támogat egyszerre. Minden tesztelő legfeljebb 30 alkalmazást telepíthet egyszerre. Crashlytics integrálódik a TestFlight-tal az összeomlási jelentések és nem végzetes hibák gyűjtéséhez.

IPA és Continuous Integration

Az IPA CI-környezetben történő építése macOS futási környezetet igényel. GitHub Actions, GitLab CI és Bitrise macOS környezeteket biztosítanak iOS-építésekhez. A Fastlane lane `build_app` automatizálja a teljes ciklust: archiválás, aláírás, IPA exportálás és feltöltés a TestFlightba. A tanúsítványok és profilok kezeléséhez a Match használható — a Fastlane eszköze, amely az aláírásokat titkosított Git-tárban tárolja.

Tipikus problémák az IPA-val

Fejlesztők számos jellegzetes hibába ütköznek az IPA építése és aláírása során. A legtöbb összefügg a tanúsítványok és profilok helytelen konfigurációjával.

Aláírási hiba: No matching provisioning profile found

Az Xcode nem talál Provisioning Profile-t, amely megfelel a bundle ID-nak és a tanúsítványnak. Megoldás — töltse le az aktuális profilokat a Xcode Accounts → Download Manual Profiles menüben, vagy használja az Automatic Signing funkciót.

ITMS-90125: The binary is invalid

A hiba érvénytelen architektúrájú IPA feltöltésekor jelentkezik. A modern IPA-knak csak arm64-et szabad tartalmazniuk. Az i386 vagy x86_64 jelenléte a bináris fájlban elutasításhoz vezet. Megoldás — ellenőrizze az architektúrákat a Build Settingsben és zárja ki a szimulátor architektúrákat.

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

Az IPA nem tartalmazza a megfelelő Payload/App.app szerkezetet. Apple pontos hierarchiát vár. Megoldás — ellenőrizze, hogy az archívum tartalmazza a Payload mappát egy .app bundle-lal, nem pedig egy lapos fájllistát.

IPA terjesztése App Store nélkül

Vállalati terjesztéshez az Apple Enterprise programját használják (299 USD/év). Az IPA Enterprise tanúsítvánnyal kerül aláírásra és a vállalat bármely eszközére telepíthető számkorlátozás nélkül. Az ad-hoc terjesztés 100 eszközre korlátozódik fejlesztői fiókonként (99 USD/év). MDM (Mobile Device Management) rendszerek, mint a Jamf és a Microsoft Intune, támogatják az Enterprise-IPA tömeges telepítését.

Gyakran ismételt kérdések

Miben különbözik az IPA az APK-tól?

IPA Mach-O futtatható formátumot használ DEX helyett, Provisioning Profile-t igényel a telepítéshez és szigorú App Store-ellenőrzésen megy keresztül. Az APK az IPA-val ellentétben közvetlenül telepíthető közvetítők nélkül (sideloading).

Lehet IPA-t építeni Windowson?

Nem, az IPA építése Xcode-ot és Apple-eszközöket igényel, amelyek csak macOS-en érhetők el. Alternatívák: távoli macOS szerverek (Mac min, AWS Mac) vagy felhő CI-szolgáltatások (GitHub Actions macOS futási környezettel).

Mekkora egy tipikus IPA?

Egyszerű alkalmazás — 5–30 MB. Közepes összetettségű alkalmazás — 30–150 MB. Játékok elérhetik a 4 GB-ot. Az Apple korlátozza a letöltés méretét mobilhálózaton 200 MB-ra, de a felhasználó letöltheti Wi-Fi-n keresztül.

Hogyan telepíthető IPA App Store nélkül?

Ad-hoc telepítéshez Xcode-ot vagy Apple Configurator-t használnak. Enterprise-alkalmazások belső szerveren keresztül kerülnek terjesztésre manifest.plist segítségével. Az átlagos felhasználó nem telepíthet IPA-t jailbreak vagy TestFlight nélkül.

Mi a thin IPA és a fat IPA?

Fat IPA több architektúrát (arm64 + x86_64) tartalmaz univerzális építéshez. A Thin IPA csak egy architektúrát tartalmaz egy adott eszközhöz. Az Apple csak thin IPA-t fogad el közzétételre — a fat bináris fájlokat elutasítja.

Összefoglaló

  • IPA — iOS-alkalmazások terjesztési formátuma ZIP-en alapulva, Mach-O futtatható fájllal.
  • Szerkezet tartalmazza a Payload/.app bundle-t, Info.plist-et, aláírásokat és Provisioning Profile-t.
  • Építés Xcode-on keresztül történik a Swift/Objective-C arm64 gépi kóddá fordításával.
  • Aláírás kötelező: tanúsítvány + Provisioning Profile + entitlements ellenőrzése iOS által telepítéskor.
  • Közzététel az App Store Connecten keresztül történik Apple Review Guidelines ellenőrzéssel.
  • TestFlight — a hivatalos béta-tesztelési eszköz legfeljebb 10 000 résztvevő számára.
  • Korlátozások: építés csak macOS-en, kötelező aláírás, maximum 4 GB méret.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is