iOS-da Background Modes — nima, qanday rejimlar bor va sozlash

Muallif: IT Sectr Nashr etilgan: 2026-03-27 O'qish vaqti: 9 daq

Background Modes — iOS-ning e'lon qilinadigan imkoniyatlari to'plami bo'lib, dasturga fon rejimiga o'tgandan keyin kod bajarilishini davom ettirishga imkon beradi. Har bir rejim ma'lum bir vazifa turiga mos keladi: audio, geolokatsiya, VoIP, Bluetooth, fetch va processing. Apple, 2026 ma'lumotlariga ko'ra, Background Modes-dan noto'g'ri foydalanish App Store-da ko'rib chiqishda dasturlarni rad etishning keng tarqalgan sabablaridan biridir.

Asosiy ma'lumotlar

  • Background Modes — fonda qonuniy kod bajarish uchun iOS capability-lar to'plami.
  • Audio rejimi — Control Center orqali boshqariladigan fonda musiqa, podkast, audiokitoblarni ijro etish.
  • Geolokatsiya — navigatsiya va fitnes kuzatuvchilari uchun fonda joylashuvni kuzatish.
  • Bluetooth — fonda BLE qurilmalari bilan ishlash: fitnes bilaguzuklar, sensorlar, periferiya.
  • Apple tekshiruvi — rejimlardan asossiz foydalanish dasturning App Store-dan rad etilishiga olib keladi.

iOS-da Background Modes nima?

Background Modes — Xcode loyihasining capability-lari bo'lib, dasturning fonda ma'lum turdagi operatsiyalarni bajarish niyatini e'lon qiladi. Android-dan farqli o'laroq, bu yerda dastur fonda istalgan Service-ni ishga tushirishi mumkin, iOS Info.plist-da rejimni aniq ko'rsatishni talab qiladi. Har bir rejim qat'iy foydalanish qoidalariga ega va Apple tomonidan ko'rib chiqishda tekshiriladi.

Background Modes qanday ishlaydi

Dastur fon rejimiga o'tganda, iOS uni 3–5 soniyadan so'ng to'xtatib qo'yadi. Agar dastur Background Mode-ni e'lon qilgan bo'lsa va tegishli API-dan (masalan, audio uchun AVAudioSession) faol foydalansa, tizim uni maxsus bajarish rejimiga o'tkazadi. Dastur qoladi operativ xotirada va rejim turi bilan cheklangan kodni bajarishi mumkin.

Mavjud rejimlarning to'liq ro'yxati

iOS quyidagi Background Modes-larni qo'llab-quvvatlaydi: Audio, Location, VoIP, Bluetooth LE, Background Fetch, Background Processing, External Accessory Communication, Push to Talk (PTT) va HealthKit. Har bir rejim dastur tavsifida asoslashni talab qiladi.

RejimInfo.plist kalitiMaqsadiOS versiyasi
AudioaudioFonda audio, AirPlay4.0+
LocationlocationJoylashuvni kuzatish4.0+
VoIPvoipVoIP push bildirishnomalari4.0+
BLEbluetooth-centralBLE qurilmalari bilan ishlash7.0+
FetchfetchDavriy ma'lumot yuklash7.0+
ProcessingprocessingUzoq muddatli fon vazifalari13.0+
Push to Talkpush-to-talkOvozli push-to-talk16.0+

Audio rejimi (Audio, AirPlay va Picture in Picture)

Audio Background Mode — eng keng tarqalgan rejim bo'lib, musiqiy pleerlar, podkast dasturlari va audio xizmatlari tomonidan qo'llaniladi. Dastur ovozni ijro etishni davom ettirishi, Control Center orqali boshqarilishi va Lock Screen-da ko'rsatilishi mumkin. Faollashtirish uchun .playback toifasi bilan AVAudioSession-ni sozlash kifoya.

Audio sessiyasini sozlash

Fonda audio ishlashi uchun AVAudioSession-ni sozlash va faollashtirish kerak. .playback toifasi tizimga dastur ovoz ijro etayotganini va fonda faol qolishi kerakligini bildiradi. Bu sozlashsiz ovoz dastur minimallashtirilgandan keyin 5–10 soniya ichida to'xtaydi.

swift
import AVFoundation

func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(
            .playback,
            mode: .default,
            options: []
        )
        try session.setActive(true)
    } catch {
        print("Audio sessiyasi xatosi: \(error)")
    }
}

Control Center-dan ijroni boshqarish

Control Center va Lock Screen bilan integratsiya uchun MPRemoteCommandCenter-ni sozlash kerak. U Play, Pause, Next va Previous Track buyruqlarini qayta ishlaydi. Shuningdek, MPNowPlayingInfoProperty-ni yangilash kerak: qo'shiq nomi, ijrochi, muqova va ijro jarayoni.

Video uchun Picture in Picture

iOS 14 dan boshlab, audio Background Mode video uchun Picture in Picture-ni ham qo'llab-quvvatlaydi. Dastur minimallashtirilganda videoni suzuvchi oynada ko'rsatishni davom ettirishi mumkin. Faollashtirish uchun AVPlayerLayer bilan AVPictureInPictureController-dan foydalaning. Rejim faqat dastur audio trekni ijro etganda ishlaydi.

Geolokatsiya (Location updates)

Location Background Mode dasturga fonda geolokatsiya yangilanishlarini olish imkonini beradi. Navigatorlarda, fitnes kuzatuvchilarida, yetkazib berish dasturlarida va ijtimoiy tarmoqlarda qo'llaniladi. Bu rejimsiz dastur faqat bir marta fonda o'tishda joylashuvni oladi, keyin yangilanishlar to'xtaydi.

Joylashuvni kuzatish turlari

CLLocationManager bir nechta kuzatish strategiyalarini qo'llab-quvvatlaydi: muhim o'zgarishlar (significant-change location), standart kuzatish (standard location) va hudud kuzatuvi (region monitoring). Maksimal aniqlik bilan fonda ishlash uchun allowsBackgroundLocationUpdates = true va pausesLocationUpdatesAutomatically = false dan foydalaning.

Energiya samaradorligi va aniqlik

Fonda joylashuvni uzluksiz kuzatish eng energiya talab qiladigan stsenariylardan biridir. iOS avtomatik ravishda yangilanish chastotasini harakat tezligiga moslashtiradi: piyoda yurganda har 10–30 soniyada, mashinada har 1–5 soniyada. Navigatsiya uchun desiredAccuracy = kCLLocationAccuracyBestForNavigation dan foydalaning.

swift
let locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.activityType = .fitness
locationManager.startUpdatingLocation()

Joylashuvning muhim o'zgarishlari

Significant-change location rejimi Location Background Mode-siz ishlaydi — tizim dasturni faqat koordinatalarning muhim o'zgarishida (odatda 500 m va undan ko'p) uyg'otadi. GPS-ni doimiy yoqishni talab qilmaydi, bu batareyani tejaydi. Foydalanuvchi harakatlanganda ma'lumotlarni yangilaydigan ob-havo dasturlari uchun mos keladi.

Bluetooth rejimi (LE accessories)

Bluetooth LE Background Mode dasturga fonda BLE qurilmalari bilan o'zaro aloqa qilish imkonini beradi. Fitnes bilaguzuklar, tibbiy sensorlar, Smart Home qurilmalari va Beacon navigatsiyasi tomonidan qo'llaniladi. Rejim ikki kichik turga bo'linadi: bluetooth-central (dastur qurilmalarga ulanadi) va bluetooth-peripheral (dastur qurilma sifatida ishlaydi).

Central rejimida ishlash

Central rolidagi dastur fonda BLE qurilmalarini skanerlashi va ularga ulanishi mumkin. Buning uchun Background Modes-da bluetooth-central ko'rsatilishi va CBCentralManager.scanForPeripherals CBCentralManagerScanOptionAllowDuplicatesKey opsiyasi bilan chaqirilishi kerak. Fonda skanerlash past chastotada ishlaydi — tizim energiyani tejash uchun aniqlashni kechiktirishi mumkin.

Peripheral rejimida ishlash

Peripheral rolidagi dastur xizmatlarni reklama qilishi va boshqa qurilmalarning so'rovlariga javob berishi mumkin. Bluetooth-peripheral rejimi dasturga hatto fonda ham boshqa BLE qurilmalari uchun ko'rinadigan bo'lib qolish imkonini beradi. HealthKit dasturlari va IoT yechimlarida qo'llaniladi.

Beacon va Region Monitoring

iBeacon monitoringi qo'shimcha ruxsatlarsiz fonda ishlaydi — tizim o'zi Beacon hududiga kirish va chiqishni kuzatadi. Ammo Beacon tarkibini skanerlash (proximity UUID, major, minor) uchun Bluetooth ruxsati va bluetooth-central Background Mode talab qilinadi. Monitoring uchun CLBeaconRegion bilan CLLocationManager-dan foydalaning.

Aloqa dasturlari uchun VoIP va PushKit

VoIP Background Mode ovozli aloqa dasturlari (Skype, Zoom, WhatsApp) uchun mo'ljallangan. Rejim dasturga kiruvchi qo'ng'iroqlarni qabul qilish uchun serverga ulangan holda qolish imkonini beradi. iOS 8 dan boshlab, VoIP uchun PushKit ishlatiladi — APNs ishtirokisiz VoIP serveridan Push bildirishnomalarini qayta ishlaydigan freymvork.

Kiruvchi qo'ng'iroqlar uchun PushKit

PushKit qurilmaga VoIP bildirishnomasini yetkazib berishni kafolatlaydigan yagona mexanizmdir. PushKit bildirishnomasi olingandan so'ng, tizim dasturni uyg'otadi, hatto dastur tugatilgan bo'lsa ham. Dastur 30 soniya ichida serverga ulanishi va kiruvchi qo'ng'iroq haqida mahalliy bildirishnoma ko'rsatishi kerak.

swift
import PushKit

class VoIPHandler: NSObject, PKPushRegistryDelegate {
    func pushRegistry(
        _ registry: PKPushRegistry,
        didReceiveIncomingPushWith payload: PKPushPayload,
        for type: PKPushType,
        completion: @escaping () -> Void
    ) {
        let caller = payload.dictionaryPayload["caller"] as! String
        reportIncomingCall(from: caller)
        completion()
    }
}

PushKit-dan foydalanish qoidalari

PushKit oddiy bildirishnomalar uchun ishlatilmaydi — faqat VoIP, watchOS aloqasi va fayl provayderlari uchun. Apple buni tekshiradi ko'rib chiqishda. Asossiz foydalanishda dastur rad etiladi. iOS 13 dan boshlab, PushKit faqat bildirishnomani yetkazadi — qo'ng'iroq ekranini ko'rsatish uchun CXProvider (CallKit) chaqiruvi majburiydir.

Fetch va Processing rejimlari

Background Fetch va Background Processing — fonda tarkibni yangilash va uzoq muddatli vazifalarni bajarish uchun rejimlar. Fetch — qisqa davriy yangilanishlar (30 s gacha), Processing — shartlar bilan (Wi-Fi, zaryad) uzoq muddatli vazifalar (10 daqiqagacha). Processing faqat iOS 13+ dan boshlab mavjud.

Background Fetch — tezkor yangilash

Fetch rejimi tizimga davriy ravishda dasturni yangi tarkibni yuklash uchun uyg'otish imkonini beradi. Tizim foydalanuvchi xatti-harakatlarini tahlil qiladi va optimal vaqtni tanlaydi. Dastur 30 soniya ichida completion handler-ni chaqirishi kerak. Fetch yangiliklar dasturlari, ijtimoiy tarmoq lentasi va ob-havo uchun mos keladi.

Background Processing — uzoq muddatli vazifalar

BGProcessingTask foydalanuvchi ishtirokisiz bajarilishi mumkin bo'lgan vazifalar uchun mo'ljallangan: keshni tozalash, katta ma'lumotlar bazasini sinxronlash, media fayllarni qayta ishlash. Tizim vazifani faqat qulay sharoitlarda ishga tushiradi — qurilma zaryadlanayotgan, Wi-Fi-ga ulangan, Low Power rejimida emas. 10 daqiqagacha mavjud.

Rejalashtirish va talablar

BGProcessingTask uchun requiresExternalPower va requiresNetworkConnectivity ko'rsatilishi kerak. Tizim shartlar bajarilmasa, bajarilishni noma'lum muddatga kechiktirishi mumkin. Kuniga kamida bir marta bajarilishi kerak bo'lgan BGAppRefreshTask-dan farqli o'laroq, Processing qurilma kamdan-kam zaryadlansa, haftalar davomida bajarilmasligi mumkin.

Background Modes uchun App Store Review Guidelines

Apple dasturlarni ko'rib chiqishda Background Modes dan foydalanishni qat'iy tekshiradi. Asosiy qoida: har bir yoqilgan rejim dastur funksionalligi bilan asoslanishi kerak. Agar dastur Location Mode-ni e'lon qilsa, lekin geolokatsiyadan foydalanmasa, capability-ni olib tashlash talabi bilan rad etiladi.

Rad etishning keng tarqalgan sabablari

Eng keng tarqalgan buzilishlar: Location Mode aniq ehtiyojsiz (dastur reklama ko'rsatish uchun “Always” kirishini so'raydi), fonda ovoz ijro etmasdan Audio Mode, PushKit-siz VoIP, Bluetooth qurilmalarisiz BLE Mode. Apple dasturni hatto yangilash bosqichida ham rad etishi mumkin, agar rejim endi ishlatilmasa.

Ko'rib chiqishda tavsif

Ko'rib chiqishga yuborishda Notes-da har bir rejimning aniq asoslanishini ko'rsating. Masalan, “Location Background Mode fitnes funksiyasida foydalanuvchi marshrutini kuzatish uchun ishlatiladi”. Tushuntirishsiz ko'rib chiqar dasturni rad etishi mumkin. Maxfiy funksiyalar (VoIP) uchun Apple test hisobini so'rashi mumkin.

Rejimlarni minimallashtirish bo'yicha tavsiyalar

Minimal zarur rejimlar to'plamidan foydalaning. Agar dasturga soatiga bir marta fonda ma'lumot yuklash kerak bo'lsa — Location Mode-ni yoqmang, Fetch yoki BGAppRefreshTask-dan foydalaning. Ortiqcha rejimlar nafaqat rad etishga olib keladi, balki salbiy taassurot qoldiradi: foydalanuvchi sozlamalarda dastur fonda geolokatsiyadan foydalanayotganini ko'radi.

Tez-tez so'raladigan savollar

Bitta dasturda nechta Background Mode yoqish mumkin?

Soni bo'yicha cheklov yo'q, lekin har bir rejim dastur funksionalligi bilan asoslanishi kerak. Barcha rejimlarni keraksiz yoqish — ko'rib chiqishda rad etishning kafolatlangan sababi. Amaliy cheklov — dastur uchun 2–3 rejim, aks holda foydalanuvchi ko'plab ruxsat so'rovlarini ko'radi.

Background Mode faolligini qanday tekshirish mumkin?

UIApplication.shared.applicationState dan foydalaning — dastur fonda ekanligini tekshirishi mumkin (state == .background). Shuningdek, xatti-harakatni o'zgartirish uchun UIApplication.didEnterBackgroundNotification va willEnterForegroundNotification bildirishnomalarini kuzatish mumkin.

Audio va AirPlay Background Modes o'rtasidagi farq nima?

Audio — dinamik yoki eshitish vositalari orqali ovoz ijro etish. AirPlay — audio va videoni Apple TV va boshqa AirPlay qurilmalariga uzatish. Amalda Audio Mode ikkala stsenariyni qamrab oladi, chunki AirPlay audio sessiyasidan foydalanadi. iOS 7+ dan boshlab alohida AirPlay rejimi talab qilinmaydi.

Background Location faqat dastur ochiq bo'lganda ishlatilishi mumkinmi?

Ha, buning uchun requestAlwaysAuthorization o'rniga requestWhenInUseAuthorization() dan foydalaning. Dastur faqat oldingi planda joylashuv oladi. Agar fonda qisqa muddatli kuzatish kerak bo'lsa — startUpdatingLocation() ni chaqiring va willResignActive da to'xtating.

Background Modes batareyaga qanday ta'sir qiladi?

Har bir rejim energiya sarfini oshiradi. Location Mode — eng qimmat, uzluksiz kuzatishda ish vaqtini 30–50% qisqartirishi mumkin. Audio Mode — o'rtacha (15–20%). Fetch va Processing — minimal (2–5%). BLE Mode — past (5–10%) Bluetooth LE ning energiya samaradorligi tufayli.

Xulosa

  • Background Modes — dasturga fonda qonuniy kod bajarish imkonini beradigan e'lon qilingan iOS capabilities.
  • Audio Mode — eng keng tarqalgan, .playback toifasi bilan AVAudioSession orqali musiqa, podkast va video ijro etish uchun.
  • Location Mode — navigatsiya va fitnes uchun, eng energiya talab qiladigan, requestAlwaysAuthorization va allowsBackgroundLocationUpdates talab qiladi.
  • BLE Mode — fonda CBCentralManager orqali fon skanerlash bilan Bluetooth qurilmalari bilan ishlash.
  • VoIP va PushKit — aloqa dasturlari uchun, PKPushRegistry orqali kiruvchi qo'ng'iroqlarni yetkazib berishni kafolatlaydi.
  • Fetch va Processing — turli bajarish shartlari va vaqt cheklovlari bilan qisqa va uzoq muddatli fon vazifalari.
  • Apple har bir rejimning asoslanishini qat'iy tekshiradi — asossiz foydalanish dasturning App Store-dan rad etilishiga olib keladi.

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.

Loyihani muhokama qilish

Shuningdek o'qing