iCloud Drive: co to je, cloudové úložiště Apple a jak funguje

Autor: IT Sectr Publikováno: 2026-07-11 Doba čtení: 6 min

iCloud Drive je cloudové úložiště souborů od Apple, vestavěné do iOS, macOS a iPadOS pro synchronizaci dokumentů mezi zařízeními uživatele. Podle údajů Apple, 2024, iCloud Drive používá CloudKit jako backend pro ukládání souborů a automatickou synchronizaci: změny provedené na iPhonu se okamžitě projeví na Macu a iPadu bez akce uživatele. Vývojáři mohou integrovat iCloud Drive do aplikací prostřednictvím NSDocumentPickerViewController a Ubiquity API.

Hlavní

  • iCloud Drive — cloudové úložiště Apple pro synchronizaci souborů mezi zařízeními
  • CloudKit — backend iCloud zajišťující ukládání a synchronizaci dat
  • Ubiquity container — speciální adresář pro ukládání synchronizovaných souborů aplikace
  • NSDocumentPickerViewController — systémový ovladač pro import a export iCloud souborů
  • Konflikty verzí se automaticky řeší přes NSFileVersion vytvořením konfliktních kopií

Co je iCloud Drive v iOS?

iCloud Drive je cloudová souborová služba Apple, která poskytuje jednotné úložiště dokumentů pro všechna zařízení uživatele autorizovaná pod stejným Apple ID. Služba byla spuštěna v roce 2014 spolu s iOS 8 a OS X Yosemite jako náhrada za iCloud Documents.

iCloud Drive se liší od jiných cloudových úložišť (Google Drive, Dropbox) hlubokou integrací s operačním systémem: soubory se zobrazují přímo ve Finderu na macOS a v aplikaci Soubory na iOS, bez nutnosti instalovat další aplikaci. Systém automaticky synchronizuje obsah na pozadí a přepíná mezi Wi-Fi a mobilní sítí.

Podle údajů Apple Platform Overview, 2024, iCloud Drive podporuje verzování souborů až 30 dní, sdílení složek přes iCloud Sharing a integraci se systémovým vyhledáváním Spotlight. Vývojáři získávají přístup k úložišti přes API NSFileCoordinator a Ubiquity containers.

Architektura iCloud Drive a Ubiquity

Ubiquity — termín Apple označující schopnost dat „být všude” (z anglického ubiquitous). V kontextu iCloud Drive se jedná o mechanismus, který umožňuje souborům automaticky se synchronizovat mezi všemi zařízeními uživatele prostřednictvím cloudového backendu CloudKit.

KomponentaPopisRole
Ubiquity containerSpeciální adresář aplikaceUkládá soubory k synchronizaci
CloudKitBackendová služba AppleZajišťuje ukládání a synchronizaci
NSMetadataQuerySystémový dotazSleduje stav Ubiquity souborů
NSFileVersionSpráva verzíŘeší konflikty změn

Ubiquity container je adresář uvnitř Sandboxu aplikace označený pro synchronizaci. Soubory umístěné do tohoto adresáře jsou automaticky nahrávány do iCloud Drive a distribuovány na další zařízení. Přístup ke kontejneru se konfiguruje přes Capabilities v Xcode.

Systém sleduje stav každého souboru prostřednictvím NSMetadataQuery: soubor může být lokální (stažený do zařízení), vzdálený (pouze v cloudu) nebo stahovaný. Vývojář může programově požádat o stažení souboru nebo zkontrolovat jeho dostupnost před otevřením.

Integrace iCloud Drive do aplikace

Integrace iCloud Drive začíná přidáním capability iCloud v Xcode a zapnutím služby iCloud Documents. Poté aplikace získá přístup k Ubiquity container — speciálnímu adresáři, jehož cestu vrací 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 poskytuje systémové UI pro výběr a import souborů z iCloud Drive. Uživatel vidí standardní prohlížeč souborů s podporou vyhledávání, řazení a vícenásobného výběru. Po výběru souboru aplikace obdrží jeho URL a může s ním pracovat přes NSFileCoordinator.

Důležité pravidlo: při práci se soubory iCloud Drive je nutné používat NSFileCoordinator pro čtení a zápis. To zaručuje, že soubor nebude změněn jiným procesem (např. synchronizací) během operace. Zanedbání koordinace může vést k poškození dat.

Řešení konfliktů a NSFileVersion

Konflikty verzí vznikají, když je soubor změněn na dvou zařízeních současně před dokončením synchronizace. iOS automaticky detekuje takové situace přes NSFileVersion a vytváří konfliktní verze, které musí uživatel nebo aplikace vyřešit.

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 uchovává historii změn souboru až 30 dní. Každá verze obsahuje URL, datum vytvoření a identifikátor zařízení, které verzi vytvořilo. Systém automaticky označuje verze jako konfliktní, když dvě zařízení odesílají změny se stejným základním identifikátorem.

Strategie řešení: aplikace může automaticky sloučit změny (pro podporované formáty), zobrazit uživateli výběr verze nebo použít strategii „poslední píšící” (last-writer-wins). Apple doporučuje pro textová a strukturovaná data automatické slučování a pro binární formáty — zobrazení konfliktních verzí uživateli.

Limity úložiště a optimalizace

Bezplatné úložiště iCloud činí 5 GB, rozdělených mezi všechny služby uživatele: zálohy, fotografie, pošta a iCloud Drive. Placené tarify začínají na 50 GB a dosahují až 12 TB. Pro aplikace s intenzivní výměnou souborů je kritické zohlednit tyto limity.

Optimalizace úložiště: iOS poskytuje mechanismus uvolňování souborů (eviction) — když dojde místní místo, systém může odstranit kešované kopie souborů iCloud Drive a ponechat pouze metadata. Při pokusu o otevření takového souboru systém automaticky stáhne soubor z cloudu. Vývojář může tento proces řídit přes NSFileCoordinator a kontrolovat stav souboru přes NSMetadataUbiquitousItemDownloadingStatusKey.

Podle údajů WWDC 2022 Apple doporučuje následující postupy pro optimalizaci iCloud Drive: v Ubiquity container uchovávejte pouze uživatelské dokumenty, ne keš aplikace; používejte asynchronní stahování s indikátorem průběhu; poskytněte uživateli informaci o velikosti souborů před stažením; implementujte podporu obnovení pro velké soubory.

Klíčový detail: odstranění souboru z Ubiquity container vede k jeho odstranění ze všech zařízení uživatele. Pro dočasné soubory používejte místní adresář Documents, ne Ubiquity container. Také mějte na paměti, že synchronizace není okamžitá — zpoždění může být od několika sekund do minut v závislosti na velikosti souboru a síti.

Často kladené otázky

Co je iCloud Drive?

iCloud Drive je cloudové úložiště souborů Apple, které synchronizuje dokumenty mezi iPhone, iPad, Mac a PC. Je integrováno do Finderu a aplikace Soubory, což umožňuje práci s dokumenty bez dalších aplikací.

Jak iCloud Drive synchronizuje soubory?

Synchronizace funguje přes CloudKit: soubory z Ubiquity container aplikace se automaticky nahrávají do cloudu a distribuují na další zařízení uživatele. Systém používá NSMetadataQuery pro sledování stavu a NSFileCoordinator pro bezpečný přístup.

Jak integrovat iCloud Drive do aplikace?

Přidejte iCloud capability v Xcode, zapněte službu iCloud Documents a použijte FileManager.url(forUbiquityContainer:) pro získání cesty k synchronizovanému adresáři. Pro výběr souborů použijte NSDocumentPickerViewController.

Co dělat při konfliktu verzí v iCloud Drive?

iOS vytváří konfliktní verze přes NSFileVersion. Vývojář může automaticky sloučit změny nebo zobrazit uživateli výběr. Systém uchovává verze až 30 dní a automaticky označuje konflikty při současných změnách z různých zařízení.

Jaké jsou limity iCloud Drive?

Zdarma je poskytováno 5 GB pro všechny iCloud služby. Placené tarify: 50 GB, 200 GB, 2 TB, 6 TB a 12 TB. Pro velké soubory implementujte podporu obnovení a před zápisem zkontrolujte dostupné místo.

Shrnutí

  • iCloud Drive — cloudové úložiště Apple s automatickou synchronizací mezi zařízeními přes CloudKit
  • Ubiquity container — speciální adresář aplikace pro ukládání synchronizovaných souborů
  • NSMetadataQuery sleduje stav stahování a dostupnost souborů iCloud Drive
  • NSFileCoordinator je povinný pro bezpečné čtení a zápis synchronizovaných souborů
  • Konflikty verzí jsou automaticky detekovány a vyžadují řešení přes NSFileVersion
  • Optimalizace zahrnuje uvolňování nepoužívaných souborů a asynchronní stahování s průběhem
  • Bezplatný limit 5 GB — pro větší objemy je vyžadován placený tarif iCloud+

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také