Ilovalarni imzolash: iOS sertifikatlari, profillar, Android kalitlari
Asoslar3 daqInnovialabs tahririyati
Qisqacha
Imzo yangilanishni aynan o‘sha egasi chiqarganini isbotlaydi; iOS’da buni Apple sertifikat va profillar orqali boshqaradi, Android’da asosiysi upload key’ni yo‘qotmaslik, barcha kalitlar esa pudratchida emas, kompaniya akkauntlarida turishi kerak.
Ilova nima uchun imzolanadi
Imzo — bu ilovani kim yig‘ganini va yig‘ilgandan keyin o‘zgartirilmaganini kriptografik isbotlash. Do‘kon va operatsion tizim uni har bir yuklash va o‘rnatishda tekshiradi.
Amalda bu uch narsani anglatadi:
- yangilanish faqat oldingi versiya egasi tomonidan imzolangan bo‘lsa qabul qilinadi;
- begona odam ilovangizning «yangilanishini» chiqara olmaydi;
- servislarga kirish (push-bildirishnomalar, Google orqali kirish, xaritalar) ko‘pincha aniq imzoga bog‘langan.
Shuning uchun imzo kalitlari domen yoki bank hisobi kabi biznes aktivi hisoblanadi.
iOS’da qanday ishlaydi
Apple ekotizimida imzo bir nechta qismdan iborat va ular Apple Developer Program orqali beriladi:
| Element | Bu nima | Nima uchun kerak |
|---|---|---|
| Sertifikat | Maxfiy kalit va Apple bergan sertifikat jufti | Yig‘ilmani jamoangiz a’zosi imzolaganini tasdiqlaydi |
| App ID / Bundle ID | Ilovaning noyob identifikatori | Imzo, push va boshqa imkoniyatlarni aniq ilovaga bog‘laydi |
| Provisioning profile | Sertifikat, App ID va (test uchun) qurilmalar ro‘yxatini bog‘lovchi fayl | Yig‘ilmani kerakli rejimda o‘rnatishga ruxsat beradi |
Profillar turlicha bo‘ladi: ishlab chiqish uchun, cheklangan qurilmalar ro‘yxati uchun (ad hoc), App Store va TestFlight uchun. Sertifikat va profillarning amal qilish muddati bor — ularni yangilab turish kerak.
Muhim jihat: App Store’dagi ilovalarni Apple o‘zi qayta imzolaydi. Shuning uchun tarqatish sertifikati muddati tugasa yoki bekor qilinsa ham, chop etilgan ilova foydalanuvchilarda ishlashda davom etadi — siz keyingi yig‘ilmalar uchun yangi sertifikat yaratasiz xolos. Korporativ va ad hoc yig‘ilmalarda vaziyat boshqacha: profil muddati tugasa, xodimlarda ilova ishga tushmay qolishi mumkin.
Alohida ehtiyot qilinadigan narsa — push-bildirishnomalar kaliti (APNs, .p8 fayli): Apple uni faqat bir marta yuklab olishga ruxsat beradi.
Android’da qanday ishlaydi
Google Play’da bugun ikki kalitli Play App Signing sxemasi ishlatiladi:
- App signing key — foydalanuvchilar oladigan ilovani imzolovchi asosiy kalit. Uni Google saqlaydi.
- Upload key — jamoa yig‘ilmani (AAB) Play Console’ga yuklashdan oldin imzolaydigan kalit. U sizda turadi.
Upload key’ni JDK tarkibidagi standart keytool utilitasi bilan yaratish mumkin:
keytool -genkeypair -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Keystore fayli, uning paroli, alias va kalit paroli — birga saqlanishi shart bo‘lgan to‘rt narsa.
Kalit yo‘qolsa nima bo‘ladi
| Vaziyat | Oqibati |
|---|---|
| iOS sertifikati yo‘qoldi | Eskisini bekor qilasiz, yangisini chiqarasiz. Foydalanuvchilar hech narsani sezmaydi |
| Play App Signing bilan Android upload key yo‘qoldi | Akkaunt egasi Play Console’da upload key’ni tiklashni so‘raydi. Noxush, lekin hal qilinadi |
| Play App Signing’siz Android kaliti yo‘qoldi (eski ilovalar) | Ilovani yangilab bo‘lmaydi. Boshqa package name bilan yangi ilova chiqarib, auditoriyani qaytadan yig‘ishga to‘g‘ri keladi |
| Dasturchi akkauntiga kirish yo‘qoldi | Eng og‘ir holat: akkauntsiz hech qanday kalit yordam bermaydi |
Kalitlar kimda bo‘lishi kerak
Qoida oddiy: hammasi ilova egasi bo‘lgan kompaniyaga tegishli, pudratchi esa faqat kirish huquqini oladi.
- Apple Developer va Google Play Console akkauntlari kompaniya nomiga ro‘yxatdan o‘tkaziladi, pudratchi esa kerakli rol bilan jamoa a’zosi sifatida qo‘shiladi.
- Keystore va parollar korporativ parol menejeri yoki maxfiy ma’lumotlar omborida saqlanadi, zaxira nusxasi esa alohida joyda turadi.
- CI/CD’da kalitlar repozitoriyda emas, himoyalangan secret’lar orqali uzatiladi.
- Pudratchi almashganda uning rollari olib qo‘yiladi, kalitlar esa sizda qoladi.
Ko‘p uchraydigan xatolar
- Keystore Git’ga parollar bilan ochiq holda qo‘shib yuboriladi.
- Kalitlar faqat bitta dasturchining noutbukida bor.
- Do‘kondagi akkaunt frilanserning shaxsiy pochtasiga ochilgan.
- Firebase, Google Maps yoki Google Sign-In’da app signing key o‘rniga upload key barmoq izi ko‘rsatiladi — natijada relizda kirish yoki xaritalar ishlamay qoladi. App signing key barmoq izi Play Console’da ko‘rsatilgan.