Mobil ilovani yig'ish va nashr qilish — bu manba kodini o'rnatiladigan faylga (APK, AAB, IPA) aylantirish va uni ilovalar do'konlariga yuklash jarayonidir. Google Play Console (2025) ma'lumotiga ko'ra, Android App Bundle (AAB) 2021 yil avgustidan boshlab Google Play'da nashr qilish uchun majburiy formatdir. Ushbu maqolada biz yig'ish formatlari, kompilyatsiya, kod imzolash, nashr qilish jarayoni va beta testini ko'rib chiqamiz.
Asosiy nuqtalar
APK (Android Package Kit) — Android'da mobil ilovalarni yig'ish va nashr qilishning an'anaviy formati. APK ilovaning barcha kodi, resurslari va manifestini o'z ichiga oladi. AAB (Android App Bundle) — Google tomonidan 2018 yilda taqdim etilgan va 2021 yil avgustidan yangi ilovalar uchun majburiy bo'lgan format. AAB to'g'ridan-to'g'ri o'rnatilmaydi — Google Play har bir qurilma uchun AAB'dan optimallashtirilgan APKni dinamik ravishda yaratadi.
AAB ning afzalliklari: yuklab olish hajmi o'rtacha 15% kichikroq (faqat kerakli resurslarni yetkazib berish orqali: to'g'ri ekran zichligi, tillar, CPU arxitekturalari). AAB shuningdek modulli yetkazib berishni qo'llab-quvvatlaydi — modullarni talab bo'yicha (Play Feature Delivery) yoki kechiktirilgan (Play On-Demand) yuklashingiz mumkin. Ishlab chiqaruvchilar uchun AAB majburiy; Google Play dan tashqarida tarqatish (sideloading, bozor joylari) uchun — faqat APK.
IPA (iOS App Store Package) — iOS o'rnatish fayli, imzolangan ilovani o'z ichiga olgan ZIP arxividir. IPA tarkibida Payload/ papkasidagi .app paketi, Provisioning Profile va imzo mavjud. IPA faqat macOS'da Xcode orqali yig'iladi, arxiv (.xcarchive) yaratadi va IPA ni eksport qiladi. App Store orqali tarqatish uchun IPA Apple Distribution Certificate bilan imzolanadi; Ad Hoc yoki Enterprise uchun — tegishli sertifikatlar bilan.
| Parametr | APK | AAB | IPA |
|---|---|---|---|
| Platforma | Android | Android (Google Play) | iOS |
| Format | ZIP arxiv | ZIP arxiv | ZIP arxiv |
| To'g'ridan-to'g'ri o'rnatish | Ha | Yo'q (Google Play orqali) | App Store / MDM orqali |
| Imzo | Keystore (JKS) | Keystore (JKS/PEPK) | Apple Certificate |
| App Thinning | Yo'q | Ha (avtomatik) | Ha (Slicing, Bitcode) |
JIT (Just-In-Time) — ilova bajarilishi paytida kodni kompilyatsiya qilish, yig'ish va nashr qilish tezligiga ta'sir qiladi. Android 5.0 (Lollipop) versiyasigacha JIT kompilyatsiyasi bilan Dalvik VM ishlatilgan. Har bir ilova ishga tushirilganda DEX bayt kodi «jo'joyida» mashina kodiga aylantirilgan. Kamchilik: birinchi ishga tushirishda sekinlashish va qo'shimcha energiya sarfi. AOT (Ahead-Of-Time) — ilova ishga tushirilishidan oldin, o'rnatish paytida kodni kompilyatsiya qilish. Android 7.0 (Nougat) dan boshlab, ART (Android Runtime) ilovani o'rnatish paytida to'liq kompilyatsiya qiladi.
ART (Android Runtime) — Android 5.0 da Dalvik o'rnini egallagan ish vaqti muhiti. ART gibrid yondashuvdan foydalanadi: o'rnatish paytida AOT kompilyatsiyasi + tez-tez bajariladigan metodlar uchun JIT. Bu AOT tezligini (tez ishga tushirish) JIT moslashuvchanligi bilan (adaptiv optimallashtirish) birlashtiradi. Natija: Dalvik bilan solishtirganda Android ilovalari ishlashi 20-30% ga oshdi. Ishlab chiqaruvchilar uchun ART ga o'tish shaffof — kod o'zgartirishni talab qilmaydi.
Bitcode — Apple turli protsessor arxitekturalari uchun IPA ni qayta kompilyatsiya qilishda foydalanadigan oraliq kod ifodasi (IR). Bitcode ixtiyoriy: iOS ilovalari uchun sukut bo'yicha yoqilgan, watchOS va tvOS uchun majburiy. Apple yangi protsessorlar chiqqanda ishlab chiqaruvchi ishtirokisiz Bitcode ni qayta kompilyatsiya qilishi mumkin. App Thinning — Apple ning Slicing (qurilma uchun faqat kerakli resurslarni yetkazib berish) va On-Demand Resources (talab bo'yicha resurslarni yuklash) ni o'z ichiga olgan texnologiyasi. App Thinning App Store dan yuklab olish hajmini 30-50% ga kamaytiradi.
DEX — Android uchun bayt kodi formati, ART/Dalvik tomonidan bajariladi. Kotlin/Java manba kodi class fayllariga kompilyatsiya qilinadi, so'ngra dx yoki d8 (zamonaviy va tezroq vosita) orqali DEX ga o'tkaziladi. Multidex — bitta DEX faylidagi 65,536 metod chegarasidan oshadigan ilovalar uchun mexanizm. Zamonaviy loyihalarda, targetSdkVersion >= 21 bo'lsa, multidex avtomatik ravishda yoqiladi.
Keystore — yig'ish paytida Android ilovasini imzolash uchun xususiy kalit va sertifikatni o'z ichiga olgan fayl. Keystore keytool (-genkey buyrug'i) yoki Android Studio orqali yaratiladi. Muhim: Keystore yo'qotilmasligi kerak — usiz Google Play'da ilovani yangilay olmaysiz. Imzolash parametrlari: keyAlias, keyPassword, storePassword va storeFile. Format: JKS (Java KeyStore) yoki AAB uchun PEPK (Play Encrypted Private Key).
App Bundle ID (Android) — paket notatsiyasidagi (com.example.app) noyob ilova identifikatori. Version Code — ichki versiya raqamlash uchun butun son (har bir yangi yig'ish uni oshiradi). Version Name — foydalanuvchiga ko'rsatiladigan satr (1.2.3). Ushbu parametrlar build.gradle da ilova darajasida o'rnatiladi.
Apple Certificate — ishlab chiqaruvchining shaxsini tasdiqlovchi raqamli sertifikat. Turlari: Development (nosozliklarni tuzatish uchun), Distribution (App Store uchun), Ad Hoc (cheklangan tarqatish uchun). Sertifikatlar Apple Developer Account'da yaratiladi va Keychain'ga yuklab olinadi. Provisioning Profile — sertifikat, App ID (Bundle Identifier) va ruxsat etilgan qurilmalar ro'yxatini bog'laydigan fayl. Provisioning Profile bo'lmasa, ilova qurilmada ishlamaydi.
Bundle ID (iOS) — noyob ilova identifikatori (com.example.app). Build Number — har bir build bilan ortib boruvchi qurish raqami. Marketing Version — foydalanuvchiga ko'rsatiladigan versiya. Versiya boshqaruvi: iOS uchun parametrlar Info.plist va Project Settings'da o'rnatiladi; Android uchun — build.gradle'da. IT Sectr'da biz versiya yangilanishlarini Fastlane orqali avtomatlashtiramiz — bu chiqarish paytida inson xatolarini bartaraf qiladi.
Google Play Console — Android ilovalarini nashr qilish vositasi. Jarayon: ishlab chiqaruvchi hisobini ro'yxatdan o'tkazish ($25 bir marta), ilova yaratish, metama'lumotlarni to'ldirish (nom, tavsif, skrinshotlar, kategoriya), AAB yuklash, narx va tarqatishni sozlash, ko'rib chiqish. Google ilovani avtomatik (viruslar, siyosatga muvofiqlik) va ba'zi kategoriyalar uchun qo'lda tekshiradi. Ko'rib chiqish bir necha soatdan 2-3 kungacha davom etadi.
App Store Connect — iOS ilovalarini nashr qilish uchun Apple platformasi. Jarayon: Apple ishlab chiqaruvchi hisobi ($99/yil), App Store Connect'da ilova yaratish, Xcode'da IPA tayyorlash (Archive → Distribute App → App Store Connect), Transporter yoki Xcode orqali yuklash, metama'lumotlarni to'ldirish, ko'rib chiqishga yuborish. App Review — Apple ning qo'lda tekshiruvi 24 soatdan 7 kungacha davom etishi mumkin. Rad etishning odatiy sabablari: ishlamaydigan tugmalar, to'liq bo'lmagan tarkib, tushuntirishsiz ruxsat so'rash.
TestFlight — iOS ilovalarining beta testi uchun Apple ning rasmiy vositasi. TestFlight Internal Testing (elektron pochta orqali 100 tagacha tester, ko'rib chiqishsiz) va External Testing (10,000 tagacha tester, Apple ko'rib chiqishi bilan) ni qo'llab-quvvatlaydi. Yig'ilmalar 90 kun davomida mavjud, shundan so'ng yangi yig'ilma yuklanishi kerak. TestFlight yangi yig'ilma yuklanganda testerlarning ilovasini avtomatik yangilaydi.
Internal Testing (Android) — 100 tagacha tester, Google ko'rib chiqishisiz, yig'ilma darhol mavjud. Closed Beta — elektron pochta yoki Google Groups orqali 1000 tagacha tester, ko'rib chiqishsiz. Open Beta — ochiq havola orqali cheksiz tester, Google ko'rib chiqishi bilan. Staged Rollout — yangilanishni oladigan foydalanuvchilar foizini bosqichma-bosqich oshirish (5% → 20% → 50% → 100%). Bu eng xavfsiz chiqarish usuli.
App Thinning (iOS) — yuklab olingan IPA hajmini avtomatik kamaytirish: Slicing (qurilma uchun faqat kerakli resurslar), Bitcode (protsessorni optimallashtirish), On-Demand Resources (talab bo'yicha yuklab olish). IT Sectr'da biz iOS beta testi uchun TestFlight va Android uchun Internal Testing dan foydalanamiz — bu ommaviy chiqarishdan oldin muammolarni aniqlash imkonini beradi.
Tez-tez so'raladigan savollar
APK — universal o'rnatish fayli, har qanday qurilmada ishlaydi. AAB — har bir qurilma uchun optimal APK yaratadigan Google Play formati. AAB orqali yuklab olish hajmi 15% kichikroq. Google Play uchun AAB majburiy, sideloading uchun — APK.
Siz Google Play'da ilovani yangilay olmaysiz — yangi package name bilan yangi ilova yaratishingiz kerak bo'ladi. Keystore ni xavfsiz joyda saqlang (parol menejeri, shifrlangan Git). Google Play App Signing (Google kalitlaridan foydalanish) bu xavfni kamaytiradi.
Google Play — ishlab chiqaruvchi hisobi uchun $25 bir marta. App Store — $99/yil. Ikkala miqdor cheksiz ilovalarni o'z ichiga oladi. iOS uchun sizga Mac (dan $999) yoki bulutli Mac ijarasi ham kerak.
Staged Rollout — bosqichma-bosqich yangilanishni joriy qilish: avval 5% foydalanuvchi, keyin 20%, 50% va 100%. Agar biron bosqichda buzilishlar aniqlansa — joriy qilish to'xtatiladi. Google Play Console'da mavjud.
Android uchun — yo'q, siz hisobsiz USB yoki emulyator orqali qurilmaga APK o'rnatishingiz mumkin. iOS uchun — ha, $99/yillik hisobsiz ilova faqat simulyatorda ishlaydi, haqiqiy qurilmada emas.
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.