iCloud Drive: bu nədir, Apple bulud deposu və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-07-11 Oxuma vaxtı: 6 dəq

iCloud Drive — bu, iOS, macOS və iPadOS-ə qurulmuş Apple bulud fayl anbarıdır və istifadəçinin cihazları arasında sənədləri sinxronizasiya edir. Apple, 2024 məlumatlarına görə, iCloud Drive faylların saxlanması və avtomatik sinxronizasiyası üçün CloudKit-dən backend kimi istifadə edir: iPhone-da edilən dəyişikliklər istifadəçinin heç bir hərəkəti olmadan dərhal Mac və iPad-də əks olunur. Tərtibatçılar NSDocumentPickerViewController və Ubiquity API vasitəsilə iCloud Drive-ı tətbiqlərə inteqrasiya edə bilərlər.

Başlıca

  • iCloud Drive — cihazlar arasında faylları sinxronizasiya etmək üçün Apple bulud deposu
  • CloudKit — məlumatların saxlanması və sinxronizasiyasını təmin edən iCloud backend-i
  • Ubiquity container — tətbiqin sinxronizasiya edilən fayllarını saxlamaq üçün xüsusi qovluq
  • NSDocumentPickerViewController — iCloud fayllarını idxal və ixrac etmək üçün sistem nəzarətçisi
  • Versiya konfliktləri — NSFileVersion vasitəsilə konflikt edən surətlərin yaradılması ilə avtomatik həll olunur

iOS-da iCloud Drive nədir?

iCloud Drive — bu, eyni Apple ID altında qeydiyyatdan keçmiş istifadəçinin bütün cihazları üçün vahid sənəd anbarı təmin edən Apple bulud fayl xidmətidir. Xidmət 2014-cü ildə iOS 8 və OS X Yosemite ilə birlikdə iCloud Documents-ın əvəzi kimi işə salınıb.

iCloud Drive digər bulud anbarlarından (Google Drive, Dropbox) əməliyyat sistemi ilə dərin inteqrasiyası ilə fərqlənir: fayllar macOS-da birbaşa Finder-də və iOS-da Fayllar tətbiqində əlavə tətbiq quraşdırmadan göstərilir. Sistem Wi-Fi və mobil řəbəkə arasında keçid edərək məzmunu avtomatik olaraq fonda sinxronizasiya edir.

Apple Platform Overview, 2024 məlumatlarına görə, iCloud Drive 30 günə qədər fayl versiyalarını, iCloud Sharing vasitəsilə qovluqların paylaşılmasını və Spotlight sistem axtarışı ilə inteqrasiyanı dəstəkləyir. Tərtibatçılar NSFileCoordinator API və Ubiquity containers vasitəsilə anbara çıxış əldə edirlər.

iCloud Drive və Ubiquity arxitekturası

Ubiquity — məlumatların “hər yerdə olma” qabiliyyətini bildirən Apple termini (ing. ubiquitous). iCloud Drive kontekstində bu, CloudKit bulud backend-i vasitəsilə faylların istifadəçinin bütün cihazları arasında avtomatik sinxronizasiyasını təmin edən mexanizmdir.

KomponentTəsvirRolu
Ubiquity containerTətbiqin xüsusi qovluğuSinxronizasiya üçün faylları saxlayır
CloudKitApple backend xidmətiSaxlama və sinxronizasiyanı təmin edir
NSMetadataQuerySistem sorğusuUbiquity fayllarının vəziyyətini izləyir
NSFileVersionVersiya idarəetməsiDəyişiklik konfliktlərini həll edir

Ubiquity container — bu, sinxronizasiya üçün qeyd edilmiş tətbiq Sandbox-daxilidir. Bu qovluğa yerləşdirilən fayllar avtomatik olaraq iCloud Drive-a yüklənir və digər cihazlara yayılır. Konteynerə giriş Xcode-da Capabilities vasitəsilə konfiqurasiya edilir.

Sistem hər bir faylın statusunu NSMetadataQuery vasitəsilə izləyir: fayl lokal (cihaza yüklənmiş), uzaq (yalnız buludda) və ya yüklənən ola bilər. Tərtibatçı proqram vasitəsilə faylın yüklənməsini tələb edə və ya açmazdan əvvəl onun əlçatanlığını yoxlaya bilər.

iCloud Drive-ın tətbiqə inteqrasiyası

iCloud Drive inteqrasiyası Xcode-da iCloud capability əlavə etmək və iCloud Documents xidmətini aktivləşdirməklə başlayır. Bundan sonra tətbiq Ubiquity container-ə — FileManager tərəfindən qaytarılan xüsusi qovluğa çıxış əldə edir.

swift
import UIKit

class DocumentManager {
    func ubiquityURL() -> URL? {
        return FileManager.default
            .url(forUbiquityContainer: nil)
    }

    func saveToICloud(data: Data, filename: String) {
        guard let containerURL = ubiquityURL() else { return }
        let fileURL = containerURL
            .appendingPathComponent(filename)

        do {
            try data.write(to: fileURL)
            Logger.storage.info(
                "Saved \(filename) to iCloud Drive"
            )
        } catch {
            Logger.storage.error(
                "Save failed: \(error.localizedDescription)"
            )
        }
    }

    func listICloudFiles() {
        let query = NSMetadataQuery()
        query.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
        query.start()
    }
}

NSDocumentPickerViewController iCloud Drive-dan faylları seçmək və idxal etmək üçün sistem UI təmin edir. İstifadəçi axtarış, çeşid və çoxsaylı seçim dəstəyi ilə standart fayl brauzerini görür. Faylı seçdikdən sonra tətbiq onun URL-ni alır və NSFileCoordinator vasitəsilə onunla işləyə bilər.

Önəmli qayda: iCloud Drive faylları ilə işləyərkən oxuma və yazma üçün NSFileCoordinator-dan istifadə etmək lazımdır. Bu, əməliyyat zamanı faylın başqa bir proses (məsələn, sinxronizasiya) tərəfindən dəyişdirilməyəcəyini təmin edir. Koordinasiyaya laqeyd yanaşmaq məlumatların zədələnməsinə səbəb ola bilər.

Konfliktlərin həlli və NSFileVersion

Versiya konfliktləri fayl sinxronizasiya tamamlanmazdan əvvəl iki cihazda eyni vaxtda dəyişdirildikdə yaranır. iOS NSFileVersion vasitəsilə belə halları avtomatik aşkar edir və istifadəçi və ya tətbiq tərəfindən həll edilməli olan konflikt edən versiyalar yaradır.

swift
func resolveConflicts(for fileURL: URL) {
    let conflictVersions = NSFileVersion
        .unresolvedConflictVersionsOfItem(at: fileURL) ?? []

    for version in conflictVersions {
        do {
            let conflictData = try Data(contentsOf: version.url)
            let resolved = mergeData(
                original: try Data(contentsOf: fileURL),
                conflict: conflictData
            )
            try resolved.write(to: fileURL)
            version.remove()
        } catch {
            Logger.sync.error(
                "Conflict resolution failed: \(error)"
            )
        }
    }
}

NSFileVersion fayl dəyişiklik tarixini 30 günə qədər saxlayır. Hər versiyada URL, yaradılma tarixi və versiyanı yaradan cihazın identifikatoru var. İki cihaz eyni əsas identifikatorla dəyişikliklər göndərdikdə sistem avtomatik olaraq versiyaları konflikt edən kimi qeyd edir.

Həll strategiyaları: tətbiq dəstəklənən formatlar üçün dəyişiklikləri avtomatik birləşdirə, istifadəçiyə versiya seçimini göstərə və ya “son yazan” (last-writer-wins) strategiyasını tətbiq edə bilər. Apple mətn və strukturlaşdırılmış məlumatlar üçün avtomatik birləşdirmə, ikili formatlar üçün isə istifadəçiyə konflikt edən versiyaları göstərməyi tövsiyə edir.

Yaddaş limitləri və optimallaşdırma

Pulsuz yaddaş iCloud 5 GB təşkil edir və istifadəçinin bütün xidmətləri arasında bölüşdürülür: ehtiyat kopyalar, fotoşəkillər, poçt və iCloud Drive. Ödənişli tariflər 50 GB-dan başlayır və 12 TB-a qədər çatır. Fayl mübadiləsi intensiv olan tətbiqlər üçün bu limitləri nəzərə almaq kritikdir.

Yaddaş optimallaşdırması: iOS faylların boşaldılması (eviction) mexanizmini təmin edir — lokal yer bitdikdə sistem yalnız metadata buraxaraq iCloud Drive fayllarının keşlənmiş surətlərini silə bilər. Belə bir faylı açmağa cəhd etdikdə sistem onu avtomatik olaraq buluddan yükləyir. Tərtibatçı bu prosesi NSFileCoordinator vasitəsilə idarə edə və faylın statusunu NSMetadataUbiquitousItemDownloadingStatusKey vasitəsilə yoxlaya bilər.

WWDC 2022 məlumatlarına görə, Apple iCloud Drive optimallaşdırması üçün aşağıdakı təcrübələri tövsiyə edir: Ubiquity container-də yalnız istifadəçi sənədlərini saxlamaq, tətbiq keşini yox; göstəricisi ilə asinxron yükləmə istifadə etmək; istifadəçiyə yükləmədən əvvəl fayl ölçüsü haqqında məlumat vermək; böyük fayllar üçün davam etdirmə dəstəyini tətbiq etmək.

Əsas nüans: Ubiquity container-dən faylı silmək onun istifadəçinin bütün cihazlarından silinməsinə səbəb olur. Müvəqqəti fayllar üçün Ubiquity container yox, lokal Documents qovluğundan istifadə edin. Həmçinin nəzərə alın ki, sinxronizasiya ani deyil — gecikmə faylın ölçüsündən və řəbəkədən asılı olaraq bir neçə saniyədən dəqiqəyə qədər dəyişə bilər.

Tez-tez verilən suallar

iCloud Drive nədir?

iCloud Drive — bu, iPhone, iPad, Mac və PC arasında sənədləri sinxronizasiya edən Apple bulud fayl anbarıdır. O, Finder və Fayllar tətbiqi ilə inteqrasiya edilmişdir və əlavə tətbiqlər olmadan sənədlərlə işləməyə imkan verir.

iCloud Drive faylları necə sinxronizasiya edir?

Sinxronizasiya CloudKit vasitəsilə işləyir: tətbiqin Ubiquity container-dən fayllar avtomatik olaraq buluda yüklənir və istifadəçinin digər cihazlarına yayılır. Sistem statusu izləmək üçün NSMetadataQuery və təhlükəsiz giriş üçün NSFileCoordinator istifadə edir.

iCloud Drive-ı tətbiqə necə inteqrasiya etmək olar?

Xcode-da iCloud capability əlavə edin, iCloud Documents xidmətini aktivləşdirin və sinxronizasiya qovluğuna yol əldə etmək üçün FileManager.url(forUbiquityContainer:) istifadə edin. Faylları seçmək üçün NSDocumentPickerViewController-dan istifadə edin.

iCloud Drive-da versiya konflikti yaranarsa nə etməli?

iOS NSFileVersion vasitəsilə konflikt edən versiyalar yaradır. Tərtibatçı dəyişiklikləri avtomatik birləşdirə və ya istifadəçiyə seçim göstərə bilər. Sistem versiyaları 30 gün saxlayır və müxtəlif cihazlardan eyni vaxtda dəyişikliklər olduqda konfliktləri avtomatik qeyd edir.

iCloud Drive-ın limitləri nədir?

Pulsuz 5 GB bütün iCloud xidmətləri üçün təqdim olunur. Ödənişli tariflər: 50 GB, 200 GB, 2 TB, 6 TB və 12 TB. Böyük fayllar üçün davam etdirmə dəstəyini tətbiq edin və yazmazdan əvvəl mövcud yeri yoxlayın.

Nəticə

  • iCloud Drive — CloudKit vasitəsilə cihazlar arasında avtomatik sinxronizasiya ilə Apple bulud deposu
  • Ubiquity container — sinxronizasiya edilən faylları saxlamaq üçün tətbiqin xüsusi qovluğu
  • NSMetadataQuery iCloud Drive fayllarının yüklənmə statusunu və əlçatanlığını izləyir
  • NSFileCoordinator sinxronizasiya edilən faylların təhlükəsiz oxunması və yazılması üçün məcburidir
  • Versiya konfliktləri avtomatik aşkar edilir və NSFileVersion vasitəsilə həll tələb edir
  • Optimallaşdırma istifadə olunmayan faylların boşaldılması və göstərici ilə asinxron yükləməni əhatə edir
  • Pulsuz limit 5 GB — daha böyük həcmlər üçün iCloud+ ödənişli planı tələb olunur

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