IPA: nədir, faylın strukturu və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-04-15 Oxuma vaxtı: 8 dəq

IPA (iOS App Store Package) iOS-da tətbiqlərin yayılması üçün arxiv fayl formatıdır. App Store-a daxil olan hər bir tətbiq IPA formatından keçir: tərtibatçı layihəni yığır, imzalayır və IPA-nı App Store Connect-ə yükləyir. Apple Developer Documentation, 2026-ya görə, IPA formatı ZIP-ə əsaslanır və icra olunan Mach-O faylı, resurslar və imza metadatanlarını ehtiva edir.

Başlıca məqamlar

  • IPA — iOS tətbiqlərinin App Store və ad-hoc quraşdırma vasitəsilə yayılması üçün arxiv formatı.
  • Struktur imzalanmış icra olunan Mach-O faylını, resursları və Provisioning Profile-i əhatə edir.
  • İmza — məcburidir: düzgün sertifikat və profil olmadan IPA quraşdırılmır.
  • Yığma müxtəlif sxemlərə dəstəklə Xcode vasitəsilə həyata keçirilir: Debug, Release, Ad-hoc, Enterprise.
  • Arxitekturalar — müasir IPA-lar 32-bitli cihazları dəstəkləmədən arm64 üçün binar faylları ehtiva edir.

IPA nədir və nə üçün istifadə olunur

IPA (iOS App Store Package) Apple platformasında tətbiqlərin yayılması üçün paket formatıdır. APK kimi, texniki olaraq IPA ZIP arxividir, lakin iOS-un təhlükəsizlik və imza tələbləri ilə müəyyən edilmiş öz strukturu ilə.

Formatın tarixi

IPA formatı 2008-ci ildə iPhone OS 2.0 və App Store ilə birlikdə ortaya çıxdı. Əsas olaraq ötürmə zamanı ölçünü azaltmaq üçün ZIP-ə yığılmış macOS-dan .app paket formatı götürüldü. O vaxtdan bəri IPA strukturu köklü dəyişikliklərə məruz qalmamışdır — yalnız imza sxemləri və metadatanlar dəyişmişdir.

İstifadə ssenariləri

App Store — əsas kanal. Ad-hoc yayılma — məhdud sayda cihazda (100-ə qədər) sınaq üçün. Enterprise yayılma — mağazada dərc edilmədən korporativ tətbiqlər üçün. Tərtibatçılar həmçinin Xcode vasitəsilə real cihazlarda sınaq üçün IPA-dan istifadə edirlər.

IPA faylının daxili strukturu

Daxili strukturu Payload qovluğunu .app bundle və metadatanlarla ehtiva edən ZIP arxividir.

Fayl/kataloqTəyinat
Payload/.app bundle ilə kök qovluq
Payload/App.app/Tətbiq bundle-ı: icra olunan fayl, resurslar, nib/storyboard
Payload/App.app/Info.plistMetadatanlar: bundle ID, versiyalar, icazələr
Payload/App.app/embedded.mobileprovisionQuraşdırma üçün Provisioning Profile
iTunesMetadata.plistiTunes üçün metadatanlar (istəyə bağlı)
META-INF/Doğrulama üçün imzalar və heşlər

.app bundle-ı

Payload qovluğunun içərisində .app genişlənməsi olan tətbiq bundle-ı yerləşir. Bu fayl deyil, iOS-un tətbiq kimi tanıdığı bir kataloqdur. İçərisində icra olunan Mach-O faylı (adı bundle adı ilə üst-üstə düşür), Info.plist, resurslar, şəkillər və lokalizasiya olunmuş sətrlər var.

Mach-O icra olunan faylı

Swift və ya Objective-C mənbə kodu Mach-O (Mach Object) formatında maşin koduna tərtib edilir. Fayl __TEXT (kod), __DATA (məlumatlar) və __LINKEDIT (link metadatanları) seqmentlərini ehtiva edir. Müasir IPA-lar yalnız 64-bitli arm64 arxitekturasını ehtiva edir.

Xcode vasitəsilə IPA-nın yığılma prosesi

Xcode IPA-nın yığılmasını avtomatlaşdırır: mənbələrin tərtibindən App Store Connect-ə yüklənməyə hazır imzalanmış arxiv yaratmağa qədər.

Yığma sxemləri

Debug — işlənmə üçün, optimallaşdırma olmadan. Release — nəşr üçün, tərtibedici optimallaşdırmaları ilə. Hər bir sxem tərtib bayraqlarını, kod imzasını və entitlements-ləri müəyyən edir. Xcode Product → Archive menyusu vasitəsilə arxiv (Archive) yaradır.

objective-c
// Info.plist — tətbiqin əsas metadatanları
<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>

Yığma arxitekturası

Xcode hər bir .swift və ya .m faylını obyekt faylına (.o) tərtib edir, sonra onları vahid Mach-O binar faylına birləşdirir. Resurslar (şəkillər, XIB, storyboard) ayrıca emal olunur: storyboard-lar .storyboardc binar formatına tərtib edilir, şəkillər Asset Catalog-da (.car) optimallaşdırılır.

IPA-nın imzası və Provisioning Profile

İmza — IPA-nın ən çətin aspektidir. Apple real cihazda işləyən hər bir tətbiq üçün rəqəmsal imza tɓləb edir. Sistem tərtibatçının sertifikatını, entitlements-ləri və Provisioning Profile-ə uyğunluğu yoxlayır.

İmza komponentləri

Certificate (Development və ya Distribution) — tərtibatçının şəxsiyyətini təsdiqləyir. Provisioning Profile — sertifikatı, bundle ID-ni və icazə verilən cihazların siyahısını (ad-hoc üçün) birləşdirir. Entitlements — tətbiqin icazələri (push bildirişləri, iCloud, App Groups).

İmza prosesi

Xcode .app bundle içərisində hər bir kitabxana və framework-ü imzalayır, sonra bundle-ın özünü imzalayır. Yekun IPA ZIP arxiv səviyyəsində imzalanır. Apple quraşdırma zamanı imzanın bütün səviyyələrini yoxlayır. iOS ən azı bir komponent etibarsız imzaya malikdirsə, tətbiqi işə salmır.

swift
// Security framework vasitəsilə imzanın yoxlanılması
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-nın App Store Connect-də nəşri

App Store Connect — Apple-ın tətbiqlərin nəşrini idarə etmək üçün platforması. IPA-nın yüklənməsi Xcode Organizer, Transporter və ya əmr sətri vasitəsilə xcrun altool ilə həyata keçirilir.

Yükləmə prosesi

Arxiv yaradıldıqdan sonra Xcode metod seçimi ilə Distribute App təklif edir: App Store Connect, Ad-hoc, Enterprise və ya Development. App Store Connect seçildikdə, tərtibatçı komandanı göstərir və yükləməni təsdiqləyir. Xcode imzanı yoxlayır, IPA-nı Apple serverlərinə göndərir və emal statusunu qaytarır.

Əmr sətri

CI/CD üçün xcrun altool və ya daha yeni notarytool istifadə olunur. Apple macOS tətbiqləri üçün notarial təsdiq tələb edir, iOS üçün bu addım isteğə bağlıdır, lakin tövsiyə olunur. xcodebuild -exportArchive yükləməyə hazır imzalanmış IPA yaradır.

Apple hər bir IPA-nı zə13rli kod, şəxsi API və App Store Review Guidelines qaydalarına uyğunluq baxımından yoxlayır. Yoxlama prosesi 1 saatdan 2 günə qədər davam edir.

App Thinning: cihazlar üçün IPA-nın optimallaşdırılması

IPA App Store Connect-ə yüklərkən, Apple App Thinning tətbiq edir — binar faylın müəyyən cihazlar üçün optimallaşdırılması texnologiyası. Slicing dəstəklənməyən ölçülər və arxitekturalar üçün resursları IPA-dan çıxarır. On-Demand Resources istifadəçinin tələbi ilə tətbiqin hissələrini (oyun səviyyələri, video) yükləməyə imkan verir. Bitcode — Apple-ın tərtibatçının iştirakı olmadan yeni arxitekturalar üçün yenidən tərtib edə biləcəyi aralıq təsvirdir.

App Store həmçinin IPA-nın Sandbox tələblərinə uyğunluğunu yoxlayır: tətbiq digər tətbiqlərin məlumatlarına, öz konteynerindən kənar fayl sisteminə və istifadəçinin açıq icazəsi olmadan aparat funksiyalarına daxil olmamalıdır.

TestFlight vasitəsilə IPA-nın test edilməsi

TestFlight — Apple-ın tətbiqlərin beta-test edilməsi üçün rəsmi xidməti. Tərtibatçı IPA-nı App Store Connect-ə yükləyir və testçiləri e-poçt və ya açıq keçid vasitəsilə dəvət edir.

Daxili və xarici test

Internal Testing — tərtibatçı qrupundan 100-ə qədər iştirakçı. Apple yoxlaması tələb etmir. External Testing — 10 000-ə qədər iştirakçı, Beta App Review-dan keçmə tələb edir. TestFlight avtomatik olaraq build-ləri testçilər arasında paylayır və analitika toplayır.

TestFlight məhdudiyyətləri

Build yükləndikdən sonra 90 gün müddətində test üçün mövcuddur. TestFlight eyni anda 100-ə qədər aktiv build-i dəstəkləyir. Hər bir testçi eyni anda 30 tətbiqə qədər quraşdıra bilər. Crashlytics çökmə hesabatları və qeyri-ölümcül səhvlər toplamaq üçün TestFlight ilə inteqrasiya olunur.

IPA və Continuous Integration

CI mühitində IPA-nın yığılması macOS runner tələb edir. GitHub Actions, GitLab CI və Bitrise iOS yığmaları üçün macOS mühitləri təmin edir. Fastlane lane `build_app` bütün dövranı avtomatlaşdırır: arxivləşdirmə, imza, IPA ixracı və TestFlight-ə yükləmə. Sertifikatlar və profillərin idarə edilməsi üçün Match istifadə olunur — imzaları şifrələnmiş Git repozitoriyasında saxlayan Fastlane aləti.

IPA ilə tipik problemlər

Tərtibatçılar IPA-nın yığılması və imzalanması zamanı bir sıra xarakterik səhvlərlə qarşılaşırlar. Əksəriyyəti sertifikatların və profillərin düzgün konfiqurasiya edilməməsi ilə bağlıdır.

İmza səhvi: No matching provisioning profile found

Xcode bundle ID və sertifikata uyğun Provisioning Profile tapmır. Həll — Xcode Accounts → Download Manual Profiles bölməsində cari profilləri yükləmək və ya Automatic Signing istifadə etmək.

ITMS-90125: The binary is invalid

Səhv etibarsız arxitekturaya malik IPA yüklərkən baş verir. Müasir IPA-lar yalnız arm64 ehtiva etməlidir. Binar faylda i386 və ya x86_64 olması rədd edilməyə səbəb olur. Həll — Build Settings-də arxitekturaları yoxlamaq və simulyator arxitekturalarını çıxarmaq.

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

IPA düzgün Payload/App.app strukturunu ehtiva etmir. Apple dəqiq iyerarxiya gözləyir. Həll — arxivin bir .app bundle ilə Payload qovluğunu ehtiva etdiyini, yoxsa düz fayl siyahısı olmadığını yoxlamaq.

App Store olmadan IPA-nın yayılması

Korporativ yayılma üçün Apple-ın Enterprise proqramı istifadə olunur (299 USD/il). IPA Enterprise sertifikatı ilə imzalanır və say məhdudiyyəti olmadan şirkətin istənilən cihazında quraşdırıla bilər. Ad-hoc yayılma tərtibatçı hesabına (99 USD/il) 100 cihazla məhdudlaşdırılıb. Jamf və Microsoft Intune kimi MDM (Mobile Device Management) sistemləri Enterprise-IPA-nın kütləvi quraşdırılmasını dəstəkləyir.

Tez-tez verilən suallar

IPA APK-dan nə ilə fərqlənir?

IPA DEX əvəzinə Mach-O icra formatından istifadə edir, quraşdırma üçün Provisioning Profile tələb edir və App Store-un ciddi yoxlamasından keçir. APK, IPA-dan fərqli olaraq, vasitəçilər olmadan birbaşa quraşdırıla bilər (sideloading).

Windows-da IPA yığmaq mümkünmü?

Xeyr, IPA-nın yığılması yalnız macOS-da mövcud olan Xcode və Apple alətlərini tələb edir. Alternativlər: uzaq macOS serverləri (Mac min, AWS Mac) və ya bulud CI xidmətləri (macOS runner ilə GitHub Actions).

Tipik IPA nə qədər çəkir?

Sadə tətbiq — 5–30 MB. Orta mürəkkəblikli tətbiq — 30–150 MB. Oyunlar 4 GB-a çata bilər. Apple mobil şəbəkə ilə yükləmə ölçüsünü 200 MB ilə məhdudlaşdırır, lakin istifadəçi Wi-Fi vasitəsilə yükləyə bilər.

App Store olmadan IPA necə quraşdırılır?

Ad-hoc quraşdırma üçün Xcode və ya Apple Configurator istifadə olunur. Enterprise tətbiqləri manifest.plist ilə daxili server vasitəsilə yayılır. Adi istifadəçi jailbreak və ya TestFlight olmadan IPA quraşdıra bilməz.

Thin IPA və fat IPA nədir?

Fat IPA universal yığma üçün bir neçə arxitektura (arm64 + x86_64) ehtiva edir. Thin IPA müəyyən bir cihaz üçün yalnız bir arxitekturanı ehtiva edir. Apple nəşr üçün yalnız thin IPA qəbul edir — fat binar faylları rədd olunur.

Nəticə

  • IPA — Mach-O icra olunan faylı ilə ZIP-ə əsaslanan iOS tətbiqlərinin yayılma formatı.
  • Struktur Payload/.app bundle, Info.plist, imzalar və Provisioning Profile-i əhatə edir.
  • Yığma Swift/Objective-C-nin arm64 maşin koduna tərtibi ilə Xcode vasitəsilə həyata keçirilir.
  • İmza məcburidir: sertifikat + Provisioning Profile + entitlements iOS tərəfindən quraşdırma zamanı yoxlanılır.
  • Nəşr Apple Review Guidelines yoxlaması ilə App Store Connect vasitəsilə həyata keçirilir.
  • TestFlight — 10 000 iştirakçıya qədər beta-test üçün rəsmi alət.
  • Məhdudiyyətlər: yalnız macOS-da yığma, məcburi imza, maksimum 4 GB ölçü.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun