iOS’ta Background Modes — nedir, hangi modlar vardır ve yapılandırma

Yazar: IT Sectr Yayınlanma: 2026-03-27 Okuma süresi: 9 dk

Background Modes, bir uygulamanın arka plana geçtikten sonra kod çalıştırmaya devam etmesine izin veren, iOS’un bildirilebilir yetenekleri kümesidir. Her mod belirli bir görev türüne karşılık gelir: ses, coğrafi konum, VoIP, Bluetooth, fetch ve processing. Apple, 2026’ya göre, Background Modes’un yanlış kullanımı, App Store incelemesinde uygulamaların reddedilmesinin yaygın nedenlerinden biridir.

Önemli Noktalar

  • Background Modes — arka planda meşru kod yürütme için iOS yetenekleri kümesi.
  • Ses Modu — Kontrol Merkezi üzerinden kontrol ile arka planda müzik, podcast, sesli kitap çalma.
  • Coğrafi Konum — navigasyon ve fitness takipçileri için arka planda konum takibi.
  • Bluetooth — arka planda BLE cihazlarıyla çalışma: fitness bileklikleri, sensörler, çevre birimleri.
  • Apple İncelemesi — modların uygunsuz kullanımı, uygulamanın App Store’dan reddedilmesine yol açar.

iOS’ta Background Modes Nedir?

Background Modes, uygulamanın arka planda belirli türde işlemler gerçekleştirme niyetini bildiren Xcode proje yetenekleridir. Bir uygulamanın arka planda herhangi bir Service başlatabildiği Android’in aksine, iOS, Info.plist’te modun açıkça bildirilmesini gerektirir. Her modun sıkı kullanım kuralları vardır ve Apple tarafından inceleme sırasında doğrulanır.

Background Modes Nasıl Çalışır

Bir uygulama arka plana geçtiğinde, iOS onu 3–5 saniye içinde askıya alır. Uygulama bir Background Mode bildirir ve ilgili API’yi (ses için AVAudioSession gibi) aktif olarak kullanırsa, sistem onu özel bir yürütme moduna alır. Uygulama bellekte kalır ve mod türüyle sınırlı kod çalıştırabilir.

Mevcut Modların Tam Listesi

iOS şu Background Modes’ları destekler: Ses, Konum, VoIP, Bluetooth LE (BLE aksesuarları), Background Fetch (periyodik güncellemeler), Background Processing (uzun süreli görevler), External Accessory Communication, Push to Talk (PTT) ve HealthKit. Her mod, uygulama açıklamasında gerekçelendirme gerektirir.

ModInfo.plist AnahtarıAmaçiOS Sürümü
AudioaudioArka plan sesi, AirPlay4.0+
LocationlocationKonum takibi4.0+
VoIPvoipVoIP push bildirimleri4.0+
BLEbluetooth-centralBLE cihazlarıyla çalışma7.0+
FetchfetchPeriyodik veri indirme7.0+
ProcessingprocessingUzun süreli arka plan görevleri13.0+
Push to Talkpush-to-talkPush-to-talk ses16.0+

Ses Modu (Ses, AirPlay ve Picture in Picture)

Ses Arka Plan Modu, müzik çalarlar, podcast uygulamaları ve ses hizmetleri tarafından kullanılan en yaygın moddur. Uygulama ses çalmaya devam edebilir, Kontrol Merkezi üzerinden kontrol edilebilir ve Kilit Ekranında görünebilir. Etkinleştirmek için .playback kategorisiyle AVAudioSession yapılandırmak yeterlidir.

Ses Oturumunu Yapılandırma

Sesin arka planda çalışması için AVAudioSession’u yapılandırmak ve etkinleştirmek gerekir. .playback kategorisi, sisteme uygulamanın ses çaldığını ve arka planda aktif kalması gerektiğini belirtir. Bu yapılandırma olmadan, uygulama küçültüldükten 5–10 saniye sonra ses durur.

swift
import AVFoundation

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

Kontrol Merkezi’nden Çalmayı Kontrol Etme

Kontrol Merkezi ve Kilit Ekranı ile entegrasyon için MPRemoteCommandCenter yapılandırılmalıdır. Oynat, Duraklat, Sonraki ve Önceki Parça komutlarını işler. Meta verileri görüntülemek için MPNowPlayingInfoProperty’nin güncellenmesi de gerekir: parça adı, sanatçı, kapak resmi ve oynatma ilerlemesi.

Video için Picture in Picture

iOS 14’ten itibaren, Ses Arka Plan Modu, video için Picture in Picture’ı da destekler. Uygulama küçültüldüğünde videoyu hareketli bir pencerede göstermeye devam edebilir. Etkinleştirmek için AVPlayerLayer ile AVPictureInPictureController kullanın. Bu mod yalnızca uygulama bir ses parçası çalıyorsa çalışır.

Coğrafi Konum (Konum Güncellemeleri)

Konum Arka Plan Modu, uygulamanın arka planda konum güncellemeleri almasına izin verir. Navigasyon uygulamalarında, fitness takipçilerinde, teslimat uygulamalarında ve sosyal ağlarda kullanılır. Bu mod olmadan, uygulama arka plana geçerken konumu yalnızca bir kez alır, ardından güncellemeler durur.

Konum Takip Türleri

CLLocationManager birkaç takip stratejisini destekler: önemli konum değişiklikleri, standart konum takibi ve bölge izleme. Maksimum doğrulukla arka planda çalışmak için allowsBackgroundLocationUpdates = true ve pausesLocationUpdatesAutomatically = false kullanın.

Enerji Verimliliği ve Doğruluk

Arka planda sürekli konum takibi, en enerji yoğun senaryolardan biridir. iOS otomatik olarak hareket hızına göre güncelleme sıklığını ayarlar: yürürken her 10–30 saniyede bir, araba kullanırken her 1–5 saniyede bir. Navigasyon için desiredAccuracy = kCLLocationAccuracyBestForNavigation kullanın.

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

Önemli Konum Değişiklikleri

significant-change location modu, Konum Arka Plan Modu olmadan çalışır — sistem, uygulamayı yalnızca koordinatlar önemli ölçüde değiştiğinde (genellikle 500 m veya daha fazla) uyandırır. Sürekli GPS gerektirmez, pil tasarrufu sağlar. Kullanıcı hareket ettiğinde verileri güncelleyen hava durumu uygulamaları için uygundur.

Bluetooth Modu (LE Aksesuarları)

Bluetooth LE Arka Plan Modu, uygulamanın arka planda BLE cihazlarıyla etkileşime girmesine izin verir. Fitness bileklikleri, tıbbi sensörler, Akıllı Ev cihazları ve Beacon navigasyonunda kullanılır. Mod iki alt türe ayrılır: bluetooth-central (uygulama cihazlara bağlanır) ve bluetooth-peripheral (uygulama bir cihaz gibi davranır).

Central Modunda Çalışma

Central olarak hareket eden bir uygulama, arka planda BLE cihazlarını tarayabilir ve bunlara bağlanabilir. Bunun için Background Modes’da bluetooth-central belirtin ve CBCentralManagerScanOptionAllowDuplicatesKey seçeneğiyle CBCentralManager.scanForPeripherals çağrısı yapın. Arka planda tarama düşük frekansta çalışır — sistem enerji tasarrufu için keşfi geciktirebilir.

Peripheral Modunda Çalışma

Peripheral olarak hareket eden bir uygulama, hizmetleri duyurabilir ve diğer cihazların isteklerine yanıt verebilir. bluetooth-peripheral modu, uygulamanın arka planda bile diğer BLE cihazlarına görünür kalmasını sağlar. HealthKit uygulamalarında ve IoT çözümlerinde kullanılır.

Beacon ve Bölge İzleme

iBeacon izleme, ek izinler olmadan arka planda çalışır — sistem, Beacon bölgelerine giriş ve çıkışı kendisi takip eder. Ancak Beacon içeriğini (yakınlık UUID, major, minor) taramak için Bluetooth izni ve bluetooth-central Background Mode gerekir. İzleme için CLBeaconRegion ile CLLocationManager kullanın.

İletişim Uygulamaları için VoIP ve PushKit

VoIP Arka Plan Modu, sesli iletişim uygulamaları (Skype, Zoom, WhatsApp) için tasarlanmıştır. Bu mod, uygulamanın gelen aramaları almak için sunucuya bağlı kalmasını sağlar. iOS 8’den itibaren VoIP için PushKit kullanılır — APNs’yi dahil etmeden VoIP sunucusundan push bildirimlerini işleyen bir framework.

Gelen Aramalar için PushKit

PushKit, VoIP bildirimlerinin cihaza iletilmesini garanti eden tek mekanizmadır. Bir PushKit bildirimi alındığında, sistem uygulama sonlandırılmış olsa bile onu uyandırır. Uygulama 30 saniye içinde sunucuyla bağlantı kurmalı ve gelen arama için yerel bir bildirim göstermelidir.

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 Kullanım Kuralları

PushKit sıradan bildirimler için kullanılamaz — yalnızca VoIP, watchOS iletişimi ve dosya sağlayıcıları içindir. Apple inceleme sırasında bunu doğrular. Uygunsuz kullanım, uygulamanın reddedilmesine yol açar. iOS 13’ten itibaren PushKit yalnızca bildirimi iletir — arama ekranını göstermek için CXProvider (CallKit) çağrısı yapmak zorunludur.

Fetch ve Processing Modları

Background Fetch ve Background Processing, arka plan içerik güncellemeleri ve uzun süreli görevler için modlardır. Fetch kısa periyodik güncellemeler (30 saniyeye kadar), Processing ise koşullu (Wi-Fi, şarj) uzun görevler (10 dakikaya kadar) içindir. Processing yalnızca iOS 13+’ta kullanılabilir.

Background Fetch — Hızlı Güncellemeler

Fetch modu, sistemin yeni içerik indirmek için uygulamayı periyodik olarak uyandırmasına izin verir. Sistem, kullanıcı davranışını analiz eder ve en uygun zamanı seçer. Uygulama 30 saniye içinde completion handler’ı çağırmalıdır. Fetch, haber uygulamaları, sosyal medya akışları ve hava durumu için uygundur.

Background Processing — Uzun Süreli Görevler

BGProcessingTask, kullanıcı müdahalesi olmadan çalışabilen görevler için tasarlanmıştır: önbellek temizleme, büyük veritabanı senkronizasyonu, medya dosyası işleme. Sistem, görevi yalnızca uygun koşullarda başlatır — cihaz şarj oluyor, Wi-Fi’a bağlı, Düşük Güç Modunda değil. 10 dakikaya kadar kullanılabilir.

Planlama ve Gereksinimler

BGProcessingTask için requiresExternalPower ve requiresNetworkConnectivity belirtilmelidir. Koşullar karşılanmazsa sistem yürütmeyi süresiz olarak erteleyebilir. Günde en az bir kez çalışması gereken BGAppRefreshTask’in aksine, cihaz nadiren şarj edilirse Processing haftalarca çalışmayabilir.

Background Modes için App Store İnceleme Yönergeleri

Apple, uygulama incelemesi sırasında Background Modes kullanımını sıkı bir şekilde denetler. Ana kural: etkinleştirilen her mod, uygulamanın işlevselliği ile gerekçelendirilmelidir. Bir uygulama Konum Modu bildiriyor ancak coğrafi konum kullanmıyorsa, yeteneği kaldırma zorunluluğuyla reddedilir.

Sık Reddedilme Nedenleri

En yaygın ihlaller: Konum Modu açık bir gereklilik olmaksızın (uygulama reklam göstermek için “Her Zaman” erişimi ister), arka plan ses çalma olmadan Ses Modu, PushKit olmadan VoIP, Bluetooth cihazları olmadan BLE Modu. Apple, mod artık kullanılmıyorsa güncelleme aşamasında bile uygulamayı reddedebilir.

İnceleme Notlarında Açıklama

İnceleme için gönderirken, Notlar bölümünde her mod için özel bir gerekçe belirtin. Örneğin, “Konum Arka Plan Modu, fitness özelliğinde kullanıcının rotasını izlemek için kullanılır.” Açıklama olmadan, incelemeyi yapan kişi uygulamayı reddedebilir. Gizli özellikler (VoIP) için Apple bir test hesabı isteyebilir.

Modları En Aza İndirme Önerileri

Gerekli minimum mod kümesini kullanın. Uygulamanız saatte bir arka plan veri indirmesi gerektiriyorsa — Konum Modu’nu etkinleştirmeyin, Fetch veya BGAppRefreshTask kullanın. Ekstra modlar yalnızca reddedilmeye yol açmakla kalmaz, aynı zamanda olumsuz bir izlenim yaratır: kullanıcı Ayarlar’da uygulamanın arka planda coğrafi konum kullandığını görür.

Sıkça Sorulan Sorular

Bir uygulamada kaç Background Mode etkinleştirilebilir?

Sayı sınırı yoktur, ancak her mod uygulamanın işlevselliği ile gerekçelendirilmelidir. Gereksiz yere tüm modları etkinleştirmek, inceleme sırasında reddedilmenin garantili bir nedenidir. Pratik sınır, uygulama başına 2–3 moddur, aksi takdirde kullanıcı çok sayıda izin isteği görür.

Bir Background Mode’un aktif olup olmadığını nasıl kontrol edebilirim?

UIApplication.shared.applicationState kullanın — uygulama arka planda olup olmadığını (state == .background) kontrol edebilir. Davranışı değiştirmek için UIApplication.didEnterBackgroundNotification ve willEnterForegroundNotification bildirimlerini de izleyebilirsiniz.

Audio ve AirPlay Background Modları arasındaki fark nedir?

Audio — hoparlör veya kulaklıktan ses çalma. AirPlay — Apple TV ve diğer AirPlay cihazlarına ses ve video akışı. Pratikte, AirPlay ses oturumunu kullandığı için Audio Modu her iki senaryoyu da kapsar. iOS 7+’den itibaren ayrı bir AirPlay modu gerekmez.

Arka Plan Konumunu yalnızca uygulama açıkken kullanabilir miyim?

Evet, bunun için requestAlwaysAuthorization yerine requestWhenInUseAuthorization() kullanın. Uygulama konumu yalnızca ön planda alır. Arka planda kısa süreli izleme gerekiyorsa, startUpdatingLocation() çağrısı yapın ve willResignActive içinde durdurun.

Background Modes pili nasıl etkiler?

Her mod güç tüketimini artırır. Konum Modu en çok güç tüketen moddur, sürekli izleme ile pil ömrünü %30–50 oranında azaltabilir. Ses Modu orta düzeydedir (%15–20). Fetch ve Processing minimumdur (%2–5). BLE Modu, Bluetooth LE’nin enerji verimliliği sayesinde düşüktür (%5–10).

Özet

  • Background Modes — bir uygulamanın arka planda meşru bir şekilde kod çalıştırmasına izin veren, iOS’un bildirilebilir yetenekleri.
  • Audio Mode — en yaygını, .playback kategorisiyle AVAudioSession aracılığıyla müzik, podcast ve video çalmak için.
  • Location Mode — navigasyon ve fitness için, en çok güç tüketen, requestAlwaysAuthorization ve allowsBackgroundLocationUpdates gerektirir.
  • BLE Mode — arka plan taramasıyla CBCentralManager aracılığıyla arka planda Bluetooth cihazlarıyla çalışma.
  • VoIP ve PushKit — iletişim uygulamaları için, PKPushRegistry aracılığıyla gelen aramaların iletilmesini sağlar.
  • Fetch ve Processing — farklı yürütme koşulları ve zaman sınırları olan kısa ve uzun arka plan görevleri.
  • Apple her modun gerekçesini sıkı bir şekilde doğrular — uygunsuz kullanım, App Store’dan uygulamanın reddedilmesine yol açar.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun