iCloud Drive: bu nima, Apple bulutli saqlashi va qanday ishlaydi

Muallif: IT Sectr Nashr etilgan: 2026-07-11 O'qish vaqti: 6 daq

iCloud Drive — bu iOS, macOS va iPadOS-ga o‘rnatilgan Apple bulutli fayl saqlashi bo‘lib, foydalanuvchi qurilmalari o‘rtasida hujjatlarni sinxronizatsiya qilish uchun xizmat qiladi. Apple, 2024 ma’lumotlariga ko‘ra, iCloud Drive fayllarni saqlash va avtomatik sinxronizatsiya qilish uchun CloudKit-dan backend sifatida foydalanadi: iPhone-da qilingan o‘zgarishlar foydalanuvchi hech qanday harakat qilmasdan darhol Mac va iPad-da aks etadi. Dasturchilar NSDocumentPickerViewController va Ubiquity API orqali iCloud Drive-ni ilovalarga integratsiya qilishlari mumkin.

Asosiy

  • iCloud Drive — qurilmalar o‘rtasida fayllarni sinxronizatsiya qilish uchun Apple bulutli saqlashi
  • CloudKit — ma’lumotlarni saqlash va sinxronizatsiyani ta’minlaydigan iCloud backendi
  • Ubiquity container — ilovaning sinxronlashtiriladigan fayllarini saqlash uchun maxsus katalog
  • NSDocumentPickerViewController — iCloud fayllarini import va eksport qilish uchun tizim boshqaruvchisi
  • Versiya to‘qnashuvlari NSFileVersion orqali to‘qnashuvchi nusxalar yaratish bilan avtomatik hal qilinadi

iOS-da iCloud Drive nima?

iCloud Drive — bu bir xil Apple ID ostida avtorizatsiya qilingan foydalanuvchining barcha qurilmalari uchun yagona hujjat saqlashni ta’minlovchi Apple bulutli fayl xizmatidir. Xizmat 2014-yilda iOS 8 va OS X Yosemite bilan birga iCloud Documents o‘rniga ishga tushirilgan.

iCloud Drive boshqa bulutli saqlashlardan (Google Drive, Dropbox) operatsion tizim bilan chuqur integratsiyasi bilan farqlanadi: fayllar macOS-da to‘g‘ridan-to‘g‘ri Finder-da va iOS-da Fayllar ilovasida qo‘shimcha ilova o‘rnatmasdan ko‘rsatiladi. Tizim Wi-Fi va uyali tarmoq o‘rtasida o‘tib, tarkibni fonda avtomatik sinxronizatsiya qiladi.

Apple Platform Overview, 2024 ma’lumotlariga ko‘ra, iCloud Drive 30 kungacha fayl versiyalarini, iCloud Sharing orqali papkalarni ulashishni va Spotlight tizim qidiruvi bilan integratsiyani qo‘llab-quvvatlaydi. Dasturchilar NSFileCoordinator API va Ubiquity containers orqali saqlashga kirishadi.

iCloud Drive va Ubiquity arxitekturasi

Ubiquity — ma’lumotlarning “hamma joyda mavjud” bo‘lish qobiliyatini bildiruvchi Apple atamasi (ing. ubiquitous). iCloud Drive kontekstida bu CloudKit bulutli backend orqali fayllarning foydalanuvchining barcha qurilmalari o‘rtasida avtomatik sinxronizatsiyasini ta’minlovchi mexanizmdir.

KomponentTavsifRoli
Ubiquity containerIlovaning maxsus katalogiSinxronizatsiya uchun fayllarni saqlaydi
CloudKitApple backend xizmatiSaqlash va sinxronizatsiyani ta’minlaydi
NSMetadataQueryTizim so‘roviUbiquity fayllari holatini kuzatadi
NSFileVersionVersiyalarni boshqarishO‘zgarishlar to‘qnashuvlarini hal qiladi

Ubiquity container — sinxronizatsiya uchun belgilangan ilova Sandbox ichidagi katalogdir. Ushbu katalogga joylashtirilgan fayllar avtomatik ravishda iCloud Drive-ga yuklanadi va boshqa qurilmalarga tarqatiladi. Konteynerga kirish Xcode-da Capabilities orqali sozlanadi.

Tizim har bir faylning holatini NSMetadataQuery orqali kuzatadi: fayl mahalliy (qurilmaga yuklangan), masofaviy (faqat bulutda) yoki yuklanayotgan bo‘lishi mumkin. Dasturchi dasturiy ravishda faylni yuklashni so‘rashi yoki ochishdan oldin uning mavjudligini tekshirishi mumkin.

iCloud Drive-ni ilovaga integratsiya qilish

Integratsiya iCloud Drive-ni Xcode-da iCloud capability qo‘shish va iCloud Documents xizmatini yoqish bilan boshlanadi. Shundan so‘ng ilova Ubiquity container — FileManager tomonidan qaytariladigan maxsus katalogga kirish huquqini oladi.

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 fayllarni tanlash va import qilish uchun tizim UI-ni ta’minlaydi. Foydalanuvchi qidiruv, saralash va ko‘p tanlov bilan standart fayl brauzerini ko‘radi. Faylni tanlagandan so‘ng, ilova uning URL-ni oladi va NSFileCoordinator orqali u bilan ishlashi mumkin.

Muhim qoida: iCloud Drive fayllari bilan ishlashda o‘qish va yozish uchun NSFileCoordinator-dan foydalanish kerak. Bu operatsiya vaqtida fayl boshqa jarayon (masalan, sinxronizatsiya) tomonidan o‘zgartirilmasligini kafolatlaydi. Muvofiqlashtirishga e’tibor bermaslik ma’lumotlarning buzilishiga olib kelishi mumkin.

To‘qnashuvlarni hal qilish va NSFileVersion

Versiya to‘qnashuvlari fayl sinxronizatsiya tugashidan oldin ikki qurilmada bir vaqtning o‘zida o‘zgartirilganda yuzaga keladi. iOS NSFileVersion orqali bunday vaziyatlarni avtomatik aniqlaydi va foydalanuvchi yoki ilova hal qilishi kerak bo‘lgan to‘qnashuvchi versiyalarni yaratadi.

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 o‘zgarishlar tarixini 30 kungacha saqlaydi. Har bir versiya URL, yaratilgan sana va versiyani yaratgan qurilma identifikatorini o‘z ichiga oladi. Ikki qurilma bir xil asosiy identifikator bilan o‘zgarishlar yuborganda, tizim avtomatik ravishda versiyalarni to‘qnashuvchi deb belgilaydi.

Hal qilish strategiyalari: ilova qo‘llab-quvvatlanadigan formatlar uchun o‘zgarishlarni avtomatik birlashtirishi, foydalanuvchiga versiya tanlashni ko‘rsatishi yoki “oxirgi yozuvchi” (last-writer-wins) strategiyasidan foydalanishi mumkin. Apple matnli va tuzilgan ma’lumotlar uchun avtomatik birlashtirishni, ikkilik formatlar uchun esa foydalanuvchiga to‘qnashuvchi versiyalarni ko‘rsatishni tavsiya qiladi.

Saqlash chegaralari va optimallashtirish

Bepul saqlash iCloud 5 GB ni tashkil qiladi va foydalanuvchining barcha xizmatlari o‘rtasida taqsimlanadi: zaxira nusxalar, fotosuratlar, pochta va iCloud Drive. Pulli tariflar 50 GB dan boshlanadi va 12 TB gacha yetadi. Fayl almashinuvi intensiv bo‘lgan ilovalar uchun ushbu chegaralarni hisobga olish muhimdir.

Saqlashni optimallashtirish: iOS fayllarni bo‘shatish (eviction) mexanizmini ta’minlaydi — mahalliy joy tugaganda, tizim faqat metama’lumotlarni qoldirib, iCloud Drive fayllarining keshlangan nusxalarini o‘chirishi mumkin. Bunday faylni ochishga urinishda tizim uni avtomatik ravishda bulutdan yuklaydi. Dasturchi bu jarayonni NSFileCoordinator orqali boshqarishi va fayl holatini NSMetadataUbiquitousItemDownloadingStatusKey orqali tekshirishi mumkin.

WWDC 2022 ma’lumotlariga ko‘ra, Apple iCloud Drive-ni optimallashtirish uchun quyidagi amaliyotlarni tavsiya qiladi: Ubiquity container-da faqat foydalanuvchi hujjatlarini saqlash, ilova keshini emas; ko‘rsatkich bilan asinxron yuklashdan foydalanish; foydalanuvchiga yuklashdan oldin fayl hajmi haqida ma’lumot berish; katta fayllar uchun davom ettirishni qo‘llab-quvvatlashni amalga oshirish.

Asosiy nuance: Ubiquity container-dan faylni o‘chirish uning foydalanuvchining barcha qurilmalaridan o‘chirilishiga olib keladi. Vaqtinchalik fayllar uchun Ubiquity container emas, balki mahalliy Documents katalogidan foydalaning. Shuningdek, sinxronizatsiya bir zumda emasligini yodda tuting — kechikish fayl hajmi va tarmoqqa qarab bir necha soniyadan daqiqagacha o‘zgarishi mumkin.

Tez-tez beriladigan savollar

iCloud Drive nima?

iCloud Drive — bu iPhone, iPad, Mac va PC o‘rtasida hujjatlarni sinxronizatsiya qiluvchi Apple bulutli fayl saqlashidir. U Finder va Fayllar ilovasi bilan integratsiyalangan bo‘lib, qo‘shimcha ilovalarsiz hujjatlar bilan ishlash imkonini beradi.

iCloud Drive fayllarni qanday sinxronizatsiya qiladi?

Sinxronizatsiya CloudKit orqali ishlaydi: ilovaning Ubiquity container-idagi fayllar avtomatik ravishda bulutga yuklanadi va foydalanuvchining boshqa qurilmalariga tarqatiladi. Tizim holatni kuzatish uchun NSMetadataQuery va xavfsiz kirish uchun NSFileCoordinator-dan foydalanadi.

iCloud Drive-ni ilovaga qanday integratsiya qilish mumkin?

Xcode-da iCloud capability qo‘shing, iCloud Documents xizmatini yoqing va sinxronlashtiriladigan katalog yo‘lini olish uchun FileManager.url(forUbiquityContainer:) dan foydalaning. Fayllarni tanlash uchun NSDocumentPickerViewController-dan foydalaning.

iCloud Drive-da versiya to‘qnashuvi bo‘lsa nima qilish kerak?

iOS NSFileVersion orqali to‘qnashuvchi versiyalar yaratadi. Dasturchi o‘zgarishlarni avtomatik birlashtirishi yoki foydalanuvchiga tanlashni ko‘rsatishi mumkin. Tizim versiyalarni 30 kun saqlaydi va turli qurilmalardan bir vaqtda o‘zgarishlar bo‘lganda to‘qnashuvlarni avtomatik belgilaydi.

iCloud Drive chegaralari qanday?

Bepul 5 GB barcha iCloud xizmatlari uchun taqdim etiladi. Pulli tariflar: 50 GB, 200 GB, 2 TB, 6 TB va 12 TB. Katta fayllar uchun davom ettirishni qo‘llab-quvvatlashni amalga oshiring va yozishdan oldin mavjud joyni tekshiring.

Xulosa

  • iCloud Drive — CloudKit orqali qurilmalar o‘rtasida avtomatik sinxronizatsiya bilan Apple bulutli saqlashi
  • Ubiquity container — sinxronlashtiriladigan fayllarni saqlash uchun ilovaning maxsus katalogi
  • NSMetadataQuery iCloud Drive fayllarining yuklash holati va mavjudligini kuzatadi
  • NSFileCoordinator sinxronlashtiriladigan fayllarni xavfsiz o‘qish va yozish uchun majburiydir
  • Versiya to‘qnashuvlari avtomatik aniqlanadi va NSFileVersion orqali hal qilishni talab qiladi
  • Optimallashtirish foydalanilmayotgan fayllarni bo‘shatish va ko‘rsatkich bilan asinxron yuklashni o‘z ichiga oladi
  • Bepul limit 5 GB — katta hajmlar uchun iCloud+ pulli tarifi talab qilinadi

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