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 (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.
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.
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.
A belső szerkezet egy ZIP archívum, amely a Payload mappát tartalmazza .app bundle-lal és metaadatokkal.
| Fájl/könyvtár | Rendelteté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.plist | Metaadatok: bundle ID, verziók, engedélyek |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile telepítéshez |
| iTunesMetadata.plist | Metaadatok iTunes-hoz (opcionális) |
| META-INF/ | Aláírások és hashek ellenőrzéshez |
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.
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.
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.
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.
// 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>
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.
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.
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 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.
// 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
}
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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
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).
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).
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.
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.
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ó
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.
Olvassa el is