IPA (iOS App Store Package) — bu iOS-da ilovalarni tarqatish uchun arxiv fayl formati. App Store-ga tushadigan har bir ilova IPA formatidan o‘tadi: ishlab chiquvchi loyihani yig‘adi, imzolaydi va IPA-ni App Store Connect-ga yuklaydi. Apple Developer Documentation, 2026 ma’lumotiga ko‘ra, IPA formati ZIP-ga asoslanadi va bajariladigan Mach-O fayli, resurslar va imzo metama’lumotlarini o‘z ichiga oladi.
Asosiy ma’lumotlar
IPA (iOS App Store Package) — Apple platformasida ilovalarni tarqatish uchun paket formati. APK singari, texnik jihatdan IPA ZIP arxividir, lekin iOS-ning xavfsizlik va imzo talablari bilan belgilanadigan o‘z tuzilishiga ega.
IPA formati 2008 yilda iPhone OS 2.0 va App Store bilan birga paydo bo‘ldi. Asos qilib macOS-dan .app paket formati olindi, uzatishda hajmni kamaytirish uchun ZIP-ga joylandi. O‘shandan beri IPA tuzilishi tub o‘zgarishlarga uchramadi — faqat imzo sxemalari va metama’lumotlar o‘zgardi.
App Store — asosiy kanal. Ad-hoc tarqatish — cheklangan sondagi qurilmalarda (100 tagacha) sinash uchun. Enterprise tarqatish — do‘konda chop etmasdan korporativ ilovalar uchun. Ishlab chiquvchilar, shuningdek, Xcode orqali real qurilmalarda sinash uchun IPA-dan foydalanadilar.
Ichki tuzilishi — bu Payload papkasini .app bundle va metama’lumotlar bilan o‘z ichiga olgan ZIP arxividir.
| Fayl/katalog | Vazifasi |
|---|---|
| Payload/ | .app bundle bilan ildiz papka |
| Payload/App.app/ | Ilova bundle: bajariladigan fayl, resurslar, nib/storyboard |
| Payload/App.app/Info.plist | Metama’lumotlar: bundle ID, versiyalar, ruxsatlar |
| Payload/App.app/embedded.mobileprovision | O‘rnatish uchun Provisioning Profile |
| iTunesMetadata.plist | iTunes uchun metama’lumotlar (ixtiyoriy) |
| META-INF/ | Tekshirish uchun imzolar va heshlar |
Payload papkasi ichida .app kengaytmali ilova bundle joylashgan. Bu fayl emas, balki iOS ilova sifatida taniydigan katalogdir. Ichida bajariladigan Mach-O fayli (nomi bundle nomi bilan mos keladi), Info.plist, resurslar, tasvirlar va lokalizatsiya qilingan satrlar mavjud.
Swift yoki Objective-C dastur kodi Mach-O (Mach Object) formatida mashina kodiga kompilyatsiya qilinadi. Fayl __TEXT (kod), __DATA (ma’lumotlar) va __LINKEDIT (bog‘lash metama’lumotlari) segmentlarini o‘z ichiga oladi. Zamonaviy IPA-lar faqat 64-bitli arm64 arxitekturasini o‘z ichiga oladi.
Xcode IPA-ni yig‘ishni avtomatlashtiradi: manba kodlarni kompilyatsiya qilishdan tortib App Store Connect-ga yuklashga tayyor imzolangan arxiv yaratishgacha.
Debug — ishlab chiqish uchun, optimallashtirishlarsiz. Release — nashr qilish uchun, kompilyator optimallashtirishlari bilan. Har bir sxema kompilyatsiya bayroqlarini, kod imzolashni va entitlements-larni belgilaydi. Xcode Product → Archive menyusi orqali arxiv (Archive) yaratadi.
// Info.plist — ilovaning asosiy metama’lumotlari
<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>
Xcode har bir .swift yoki .m faylini ob’ekt fayliga (.o) kompilyatsiya qiladi, so‘ngra ularni bitta Mach-O binar fayliga birlashtiradi. Resurslar (tasvirlar, XIB, storyboard) alohida qayta ishlanadi: storyboard-lar .storyboardc binar formatiga kompilyatsiya qilinadi, tasvirlar Asset Catalog-da (.car) optimallashtiriladi.
Imzo — IPA-ning eng murakkab jihati. Apple real qurilmada ishlaydigan har bir ilova uchun raqamli imzo talab qiladi. Tizim ishlab chiquvchi sertifikatini, entitlements-larni va Provisioning Profile-ga muvofiqligini tekshiradi.
Certificate (Development yoki Distribution) — ishlab chiquvchi shaxsini tasdiqlaydi. Provisioning Profile — sertifikat, bundle ID va ruxsat etilgan qurilmalar ro‘yxatini (ad-hoc uchun) bog‘laydi. Entitlements — ilova ruxsatlari (push-xabarlar, iCloud, App Groups).
Xcode .app bundle ichidagi har bir kutubxona va framework-ni imzolaydi, so‘ngra bundle-ning o‘zini imzolaydi. Yakuniy IPA ZIP arxiv darajasida imzolanadi. Apple o‘rnatish vaqtida imzoning barcha darajalarini tekshiradi. iOS agar kamida bitta komponent haqiqiy bo‘lmagan imzoga ega bo‘lsa, ilovani ishga tushirmaydi.
// Security framework orqali imzoni tekshirish
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 — Apple-ning ilovalar nashrini boshqarish platformasi. IPA-ni yuklash Xcode Organizer, Transporter yoki buyruq satri orqali xcrun altool bilan amalga oshiriladi.
Arxiv yaratilgandan so‘ng, Xcode Distribute App-ni usul tanlash bilan taklif qiladi: App Store Connect, Ad-hoc, Enterprise yoki Development. App Store Connect-ni tanlab, ishlab chiquvchi jamoani ko‘rsatadi va yuklashni tasdiqlaydi. Xcode imzoni tekshiradi, IPA-ni Apple serverlariga yuboradi va qayta ishlash holatini qaytaradi.
CI/CD uchun xcrun altool yoki yangiroq notarytool ishlatiladi. Apple macOS ilovalari uchun notarial tasdiqlashni talab qiladi, iOS uchun bu qadam ixtiyoriy, ammo tavsiya etiladi. xcodebuild -exportArchive yuklashga tayyor imzolangan IPA yaratadi.
Apple har bir IPA-ni zararli kod, shaxsiy API-lar va App Store Review Guidelines qoidalariga muvofiqligi uchun tekshiradi. Tekshirish jarayoni 1 soatdan 2 kungacha davom etadi.
IPA-ni App Store Connect-ga yuklashda Apple App Thinning-ni qo‘llaydi — binar faylni ma’lum qurilmalar uchun optimallashtirish texnologiyasi. Slicing qo‘llab-quvvatlanmaydigan o‘lchamlar va arxitekturalar uchun resurslarni IPA-dan olib tashlaydi. On-Demand Resources foydalanuvchi so‘roviga binoan ilova qismlarini (o‘yin darajalari, video) yuklab olish imkonini beradi. Bitcode — Apple ishlab chiquvchi ishtirokisiz yangi arxitekturalar uchun qayta kompilyatsiya qilishi mumkin bo‘lgan oraliq tasvirdir.
App Store, shuningdek, IPA-ning Sandbox talablariga muvofiqligini tekshiradi: ilova boshqa ilovalarning ma’lumotlariga, o‘z konteyneridan tashqari fayl tizimiga va foydalanuvchining aniq ruxsatisiz apparat funksiyalariga kirishmasligi kerak.
TestFlight — Apple-ning ilovalarni beta-sinash uchun rasmiy xizmati. Ishlab chiquvchi IPA-ni App Store Connect-ga yuklaydi va sinovchilarni elektron pochta yoki ochiq havola orqali taklif qiladi.
Internal Testing — ishlab chiquvchi jamoasidan 100 tagacha ishtirokchi. Apple tekshiruvini talab qilmaydi. External Testing — 10 000 tagacha ishtirokchi, Beta App Review-dan o‘tishni talab qiladi. TestFlight avtomatik ravishda build-larni sinovchilar o‘rtasida taqsimlaydi va analitika to‘playdi.
Build yuklanganidan keyin 90 kun davomida sinov uchun mavjud. TestFlight bir vaqtning o‘zida 100 tagacha faol build-ni qo‘llab-quvvatlaydi. Har bir sinovchi bir vaqtning o‘zida 30 tagacha ilovani o‘rnatishi mumkin. Crashlytics halokat hisobotlari va halokatli bo‘lmagan xatolarni yig‘ish uchun TestFlight bilan integratsiyalanadi.
CI muhitida IPA-ni yig‘ish macOS runner talab qiladi. GitHub Actions, GitLab CI va Bitrise iOS yig‘ishlari uchun macOS muhitlarini taqdim etadi. Fastlane lane `build_app` butun siklini avtomatlashtiradi: arxivlash, imzolash, IPA eksporti va TestFlight-ga yuklash. Sertifikatlar va profillarni boshqarish uchun Match ishlatiladi — imzolarni shifrlangan Git omborida saqlaydigan Fastlane vositasi.
Ishlab chiquvchilar IPA-ni yig‘ish va imzolashda bir qator xarakterli xatolarga duch kelishadi. Aksariyati sertifikatlar va profillarning noto‘g‘ri konfiguratsiyasi bilan bog‘liq.
Xcode bundle ID va sertifikatga mos Provisioning Profile topmaydi. Yechim — Xcode Accounts → Download Manual Profiles bo‘limida joriy profillarni yuklab olish yoki Automatic Signing dan foydalanish.
Xato haqiqiy bo‘lmagan arxitekturaga ega IPA-ni yuklashda yuz beradi. Zamonaviy IPA-lar faqat arm64 ni o‘z ichiga olishi kerak. Binar faylda i386 yoki x86_64 mavjudligi rad etilishga olib keladi. Yechim — Build Settings-da arxitekturalarni tekshirish va simulyator arxitekturalarini chiqarib tashlash.
IPA to‘g‘ri Payload/App.app tuzilishini o‘z ichiga olmaydi. Apple aniq ierarxiyani kutadi. Yechim — arxiv bitta .app bundle bilan Payload papkasini o‘z ichiga olganligini, tekis fayllar ro‘yxati emasligini tekshirish.
Korporativ tarqatish uchun Apple-ning Enterprise dasturi ishlatiladi (299 USD/yil). IPA Enterprise sertifikati bilan imzolanadi va son cheklovisiz kompaniyaning istalgan qurilmasiga o‘rnatilishi mumkin. Ad-hoc tarqatish ishlab chiquvchi hisobi uchun (99 USD/yil) 100 qurilma bilan cheklangan. Jamf va Microsoft Intune kabi MDM (Mobile Device Management) tizimlari Enterprise-IPA-ni ommaviy o‘rnatishni qo‘llab-quvvatlaydi.
Tez-tez beriladigan savollar
IPA DEX o‘rniga Mach-O bajariladigan formatidan foydalanadi, o‘rnatish uchun Provisioning Profile talab qiladi va App Store-ning qat’iy tekshiruvidan o‘tadi. APK, IPA-dan farqli o‘laroq, vositachilarsiz to‘g‘ridan-to‘g‘ri o‘rnatilishi mumkin (sideloading).
Yo‘q, IPA yig‘ish faqat macOS-da mavjud bo‘lgan Xcode va Apple vositalarini talab qiladi. Muqobil: uzoq macOS serverlari (Mac min, AWS Mac) yoki bulutli CI xizmatlari (macOS runner bilan GitHub Actions).
Oddiy ilova — 5–30 MB. O‘rta murakkablikdagi ilova — 30–150 MB. O‘yinlar 4 GB ga yetishi mumkin. Apple mobil tarmoq orqali yuklash hajmini 200 MB bilan cheklaydi, ammo foydalanuvchi Wi-Fi orqali yuklab olishi mumkin.
Ad-hoc o‘rnatish uchun Xcode yoki Apple Configurator ishlatiladi. Enterprise ilovalari manifest.plist bilan ichki server orqali tarqatiladi. Oddiy foydalanuvchi jailbreak yoki TestFlightsiz IPA o‘rnata olmaydi.
Fat IPA universal yig‘ish uchun bir nechta arxitekturalarni (arm64 + x86_64) o‘z ichiga oladi. Thin IPA ma’lum bir qurilma uchun faqat bitta arxitekturadan iborat. Apple nashr qilish uchun faqat thin IPA-ni qabul qiladi — fat binar fayllari rad etiladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.