iCloud Drive: ce este, stocarea cloud Apple și cum funcționează

Autor: IT Sectr Publicat: 2026-07-11 Timp de citire: 6 min

iCloud Drive este o stocare de fișiere în cloud Apple, integrată în iOS, macOS și iPadOS pentru sincronizarea documentelor între dispozitivele utilizatorului. Potrivit Apple, 2024, iCloud Drive utilizează CloudKit ca backend pentru stocarea fișierelor și sincronizarea automată: modificările făcute pe iPhone se reflectă instantaneu pe Mac și iPad fără acțiuni din partea utilizatorului. Dezvoltatorii pot integra iCloud Drive în aplicații prin NSDocumentPickerViewController și API Ubiquity.

Principalele

  • iCloud Drive — stocarea cloud Apple pentru sincronizarea fișierelor între dispozitive
  • CloudKit — backend-ul iCloud care asigură stocarea și sincronizarea datelor
  • Ubiquity container — directorul special pentru stocarea fișierelor sincronizate ale aplicației
  • NSDocumentPickerViewController — controlerul de sistem pentru importul și exportul fișierelor iCloud
  • Conflictele de versiuni se rezolvă automat prin NSFileVersion cu crearea de copii conflictuale

Ce este iCloud Drive în iOS?

iCloud Drive este un serviciu de fișiere în cloud Apple, care oferă o stocare unitară de documente pentru toate dispozitivele utilizatorului autorizate sub același Apple ID. Serviciul a fost lansat în 2014 împreună cu iOS 8 și OS X Yosemite ca înlocuitor pentru iCloud Documents.

iCloud Drive se deosebește de alte stocări în cloud (Google Drive, Dropbox) prin integrarea profundă cu sistemul de operare: fișierele se afișează direct în Finder pe macOS și în aplicația Fișiere pe iOS, fără a fi necesară instalarea unei aplicații suplimentare. Sistemul sincronizează automat conținutul în fundal, comutând între Wi-Fi și rețeaua celulară.

Potrivit Apple Platform Overview, 2024, iCloud Drive suportă versionarea fișierelor până la 30 de zile, partajarea folderelor prin iCloud Sharing și integrarea cu căutarea de sistem Spotlight. Dezvoltatorii obțin acces la stocare prin API NSFileCoordinator și Ubiquity containers.

Arhitectura iCloud Drive și Ubiquity

Ubiquity — termen Apple care desemnează capacitatea datelor de „a fi peste tot” (din engleză ubiquitous). În contextul iCloud Drive, acesta este un mecanism care permite fișierelor să se sincronizeze automat între toate dispozitivele utilizatorului prin backend-ul cloud CloudKit.

ComponentăDescriereRol
Ubiquity containerDirectorul special al aplicațieiStochează fișiere pentru sincronizare
CloudKitServiciu backend AppleAsigură stocarea și sincronizarea
NSMetadataQueryInterogare de sistemUrmărește starea fișierelor Ubiquity
NSFileVersionGestionarea versiunilorRezolvă conflictele de modificări

Ubiquity container este un director din interiorul Sandbox-ului aplicației marcat pentru sincronizare. Fișierele plasate în acest director sunt încărcate automat în iCloud Drive și distribuite pe alte dispozitive. Accesul la container se configurează prin Capabilities în Xcode.

Sistemul urmărește starea fiecărui fișier prin NSMetadataQuery: fișierul poate fi local (descărcat pe dispozitiv), la distanță (doar în cloud) sau în curs de descărcare. Dezvoltatorul poate solicita programatic descărcarea fișierului sau poate verifica disponibilitatea acestuia înainte de deschidere.

Integrarea iCloud Drive în aplicație

Integrarea iCloud Drive începe cu adăugarea capacității iCloud în Xcode și activarea serviciului iCloud Documents. După aceea, aplicația obține acces la Ubiquity container — un director special a cărui cale este returnată prin FileManager.

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 oferă o interfață de sistem pentru selectarea și importarea fișierelor din iCloud Drive. Utilizatorul vede un browser de fișiere standard cu suport pentru căutare, sortare și selecție multiplă. După selectarea fișierului, aplicația primește URL-ul acestuia și poate lucra cu el prin NSFileCoordinator.

Regulă importantă: la lucrul cu fișierele iCloud Drive, trebuie utilizat NSFileCoordinator pentru citire și scriere. Aceasta garantează că fișierul nu va fi modificat de un alt proces (de exemplu, sincronizarea) în timpul operației. Neglijarea coordonării poate duce la deteriorarea datelor.

Rezolvarea conflictelor și NSFileVersion

Conflictele de versiuni apar atunci când un fișier este modificat pe două dispozitive simultan înainte de finalizarea sincronizării. iOS detectează automat astfel de situații prin NSFileVersion și creează versiuni conflictuale pe care utilizatorul sau aplicația trebuie să le rezolve.

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 stochează istoricul modificărilor fișierului până la 30 de zile. Fiecare versiune conține URL, data creării și identificatorul dispozitivului care a creat versiunea. Sistemul marchează automat versiunile ca fiind conflictuale atunci când două dispozitive trimit modificări cu același identificator de bază.

Strategii de rezolvare: aplicația poate îmbina automat modificările (pentru formatele suportate), poate afișa utilizatorului alegerea versiunii sau poate utiliza strategia „ultimul care scrie” (last-writer-wins). Apple recomandă pentru date textuale și structurate îmbinarea automată, iar pentru formate binare — afișarea versiunilor conflictuale utilizatorului.

Limitele de stocare și optimizarea

Stocarea gratuită iCloud este de 5 GB, distribuită între toate serviciile utilizatorului: copii de rezervă, fotografii, poștă și iCloud Drive. Planurile plătite încep de la 50 GB și ajung până la 12 TB. Pentru aplicațiile cu schimb intensiv de fișiere, este critic să se țină cont de aceste limite.

Optimizarea stocării: iOS oferă un mecanism de eliberare a fișierelor (eviction) — când spațiul local se termină, sistemul poate șterge copiile cache ale fișierelor iCloud Drive, lăsând doar metadatele. La încercarea de a deschide un astfel de fișier, sistemul îl descarcă automat din cloud. Dezvoltatorul poate controla acest proces prin NSFileCoordinator și poate verifica starea fișierului prin NSMetadataUbiquitousItemDownloadingStatusKey.

Potrivit WWDC 2022, Apple recomandă următoarele practici pentru optimizarea iCloud Drive: stocați în Ubiquity container doar documentele utilizatorului, nu cache-ul aplicației; utilizați descărcarea asincronă cu indicator de progres; oferiți utilizatorului informații despre dimensiunea fișierelor înainte de descărcare; implementați suportul pentru reluare pentru fișierele mari.

Nuanță cheie: ștergerea unui fișier din Ubiquity container duce la ștergerea acestuia de pe toate dispozitivele utilizatorului. Pentru fișiere temporare, utilizați directorul local Documents, nu Ubiquity container. De asemenea, rețineți că sincronizarea nu este instantanee — întârzierea poate varia de la câteva secunde la minute în funcție de dimensiunea fișierului și rețea.

Întrebări frecvente

Ce este iCloud Drive?

iCloud Drive este o stocare de fișiere în cloud Apple, care sincronizează documente între iPhone, iPad, Mac și PC. Este integrat în Finder și aplicația Fișiere, permițând lucrul cu documente fără aplicații suplimentare.

Cum sincronizează iCloud Drive fișierele?

Sincronizarea funcționează prin CloudKit: fișierele din Ubiquity container al aplicației sunt încărcate automat în cloud și distribuite pe celelalte dispozitive ale utilizatorului. Sistemul utilizează NSMetadataQuery pentru urmărirea stării și NSFileCoordinator pentru acces sigur.

Cum se integrează iCloud Drive într-o aplicație?

Adăugați capability iCloud în Xcode, activați serviciul iCloud Documents și utilizați FileManager.url(forUbiquityContainer:) pentru a obține calea către directorul sincronizat. Pentru selectarea fișierelor, utilizați NSDocumentPickerViewController.

Ce fac la un conflict de versiuni în iCloud Drive?

iOS creează versiuni conflictuale prin NSFileVersion. Dezvoltatorul poate îmbina automat modificările sau poate afișa utilizatorului alegerea. Sistemul stochează versiunile până la 30 de zile și marchează automat conflictele la modificări simultane de pe diferite dispozitive.

Care sunt limitele iCloud Drive?

Gratuit se oferă 5 GB pentru toate serviciile iCloud. Planurile plătite: 50 GB, 200 GB, 2 TB, 6 TB și 12 TB. Pentru fișiere mari, implementați suportul pentru reluare și verificați spațiul disponibil înainte de scriere.

Rezumat

  • iCloud Drive — stocarea cloud Apple cu sincronizare automată între dispozitive prin CloudKit
  • Ubiquity container — directorul special al aplicației pentru stocarea fișierelor sincronizate
  • NSMetadataQuery urmărește starea descărcării și disponibilitatea fișierelor iCloud Drive
  • NSFileCoordinator este obligatoriu pentru citirea și scrierea sigură a fișierelor sincronizate
  • Conflictele de versiuni sunt detectate automat și necesită rezolvare prin NSFileVersion
  • Optimizarea include eliberarea fișierelor neutilizate și descărcarea asincronă cu progres
  • Limita gratuită 5 GB — pentru volume mai mari este necesar planul plătit iCloud+

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și