iCloud Drive: шта је то, Аппле-ово складиште у облаку и како ради

Аутор: IT Sectr Објављено: 2026-07-11 Време читања: 6 мин

iCloud Drive је Аппле-ово складиште датотека у облаку, уграђено у иОС, мацОС и иПадОС за синхронизацију докумената између уређаја корисника. Према подацима Аппле, 2024, iCloud Drive користи ЦлоудКит као позадински сервис за чување датотека и аутоматску синхронизацију: промене направљене на иПхоне-у тренутно се одражавају на Мац-у и иПад-у без радњи корисника. Програмери могу да интегришу iCloud Drive у апликације преко НСДоцументПицкерВиевЦонтроллер-а и Убиqуитy АПИ-ја.

Главно

  • iCloud Drive — Аппле-ово складиште у облаку за синхронизацију датотека између уређаја
  • ЦлоудКит — позадински сервис иЦлоуд-а који обезбеђује складиштење и синхронизацију података
  • Убиqуитy цонтаинер — посебан директоријум за чување синхронизованих датотека апликације
  • НСДоцументПицкерВиевЦонтроллер — системски контролер за увоз и извоз иЦлоуд датотека
  • Конфликти верзија се аутоматски решавају кроз НСФилеВерсион са стварањем конфликтних копија

Шта је iCloud Drive у иОС-у?

iCloud Drive је Аппле-ов сервис датотека у облаку који пружа јединствено складиште докумената за све уређаје корисника ауторизоване под истим Аппле ИД-ом. Сервис је покренут 2014. године заједно са иОС 8 и ОС X Yosemite као замена за иЦлоуд Доцументс.

iCloud Drive се разликује од других складишта у облаку (Гоогле Дриве, Дропбок) дубоком интеграцијом са оперативним системом: датотеке се приказују директно у Финдер-у на мацОС-у и у апликацији Датотеке на иОС-у, без потребе за инсталацијом додатне апликације. Систем аутоматски синхронизује садржај у позадини, пребацујући се између Ви-Фи и мобилне мреже.

Према подацима Аппле Платформ Овервиев, 2024, iCloud Drive подржава верзионисање датотека до 30 дана, дељење фасцикли кроз иЦлоуд Схаринг и интеграцију са системском претрагом Спотлигхт. Програмери добијају приступ складишту кроз АПИ НСФилеЦоординатор и Убиqуитy цонтаинерс.

Архитектура iCloud Drive-а и Убиqуитy-ја

Убиqуитy — Аппле-ов термин који означава способност података да „буду свуда” (од енгл. ubiquitous). У контексту iCloud Drive-а, ово је механизам који омогућава датотекама да се аутоматски синхронизују између свих уређаја корисника преко облачног позадинског сервиса ЦлоудКит.

КомпонентаОписУлога
Убиqуитy цонтаинерПосебан директоријум апликацијеЧува датотеке за синхронизацију
ЦлоудКитАппле-ов позадински сервисОбезбеђује складиштење и синхронизацију
НСМетадатаQуерyСистемски упитПрати стање Убиqуитy датотека
НСФилеВерсионУправљање верзијамаРешава конфликте измена

Убиqуитy цонтаинер је директоријум унутар Сандбок-а апликације означен за синхронизацију. Датотеке постављене у овај директоријум се аутоматски отпремају у iCloud Drive и дистрибуирају на друге уређаје. Приступ контејнеру се конфигурише кроз Цапабилитиес у Xcode-у.

Систем прати статус сваке датотеке кроз НСМетадатаQуерy: датотека може бити локална (преузета на уређај), удаљена (само у облаку) или се преузима. Програмер може програмски захтевати преузимање датотеке или проверити њену доступност пре отварања.

Интеграција iCloud Drive-а у апликацију

Интеграција iCloud Drive-а почиње додавањем цапабилитy иЦлоуд у Xcode-у и укључивањем сервиса иЦлоуд Доцументс. Након тога, апликација добија приступ Убиqуитy цонтаинер-у — посебном директоријуму чију путању враћа ФилеМанагер.

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()
    }
}

НСДоцументПицкерВиевЦонтроллер пружа системски UI за избор и увоз датотека из iCloud Drive-а. Корисник види стандардни прегледач датотека са подршком за претрагу, сортирање и вишеструки избор. Након избора датотеке, апликација добија њен УРЛ и може радити са њим кроз НСФилеЦоординатор.

Важно правило: при раду са iCloud Drive датотекама неопходно је користити НСФилеЦоординатор за читање и писање. Ово гарантује да датотека неће бити измењена од стране другог процеса (нпр. синхронизације) током операције. Занемаривање координације може довести до оштећења података.

Решавање конфликата и НСФилеВерсион

Конфликти верзија настају када се датотека мења на два уређаја истовремено пре завршетка синхронизације. иОС аутоматски открива такве ситуације кроз НСФилеВерсион и ствара конфликтне верзије које корисник или апликација морају да реше.

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)"
            )
        }
    }
}

НСФилеВерсион чува историју измена датотеке до 30 дана. Свака верзија садржи УРЛ, датум креирања и идентификатор уређаја који је креирао верзију. Систем аутоматски означава верзије као конфликтне када два уређаја шаљу измене са истим основним идентификатором.

Стратегије решавања: апликација може аутоматски спајати измене (за подржане формате), приказивати кориснику избор верзије или користити стратегију „последњи писац” (ласт-вритер-винс). Аппле препоручује за текстуалне и структуриране податке аутоматско спајање, а за бинарне формате — приказивање конфликтних верзија кориснику.

Ограничења складишта и оптимизација

Бесплатно складиште иЦлоуд-а износи 5 ГБ, распоређених између свих сервиса корисника: резервне копије, фотографије, пошта и iCloud Drive. Платни планови почињу од 50 ГБ и достижу до 12 ТБ. За апликације са интензивном разменом датотека критично је узети у обзир ова ограничења.

Оптимизација складиштења: иОС пружа механизам ослобађања датотека (евицтион) — када понестане локалног простора, систем може уклонити кеширане копије iCloud Drive датотека, остављајући само метаподатке. При покушају отварања такве датотеке, систем је аутоматски преузима из облака. Програмер може контролисати овај процес кроз НСФилеЦоординатор и проверавати статус датотеке кроз НСМетадатаУбиqуитyИтемДовнлоадингСтатусКеy.

Према подацима WWDC 2022, Аппле препоручује следеће праксе за оптимизацију iCloud Drive-а: чувати у Убиqуитy цонтаинер-у само корисничке документе, а не кеш апликације; користити асинхроно преузимање са индикатором напретка; пружити кориснику информацију о величини датотека пре преузимања; имплементирати подршку за наставак за велике датотеке.

Кључна нијанса: уклањање датотеке из Убиqуитy цонтаинер-а доводи до њеног уклањања са свих уређаја корисника. За привремене датотеке користите локални директоријум Доцументс, а не Убиqуитy цонтаинер. Такође узмите у обзир да синхронизација није тренутна — кашњење може износити од неколико секунди до минута у зависности од величине датотеке и мреже.

Често постављана питања

Шта је iCloud Drive?

iCloud Drive је Аппле-ово складиште датотека у облаку које синхронизује документе између иПхоне-а, иПад-а, Мац-а и ПЦ-а. Интегрисан је у Финдер и апликацију Датотеке, омогућавајући рад са документима без додатних апликација.

Како iCloud Drive синхронизује датотеке?

Синхронизација ради кроз ЦлоудКит: датотеке из Убиqуитy цонтаинер-а апликације се аутоматски отпремају у облак и дистрибуирају на друге уређаје корисника. Систем користи НСМетадатаQуерy за праћење статуса и НСФилеЦоординатор за безбедан приступ.

Како интегрисати iCloud Drive у апликацију?

Додајте цапабилитy иЦлоуд у Xcode-у, укључите сервис иЦлоуд Доцументс и користите ФилеМанагер.урл(форУбиqуитyЦонтаинер:) за добијање путање до синхронизованог директоријума. За избор датотека користите НСДоцументПицкерВиевЦонтроллер.

Шта радити при конфликту верзија у iCloud Drive-у?

иОС ствара конфликтне верзије кроз НСФилеВерсион. Програмер може аутоматски спојити измене или приказати кориснику избор. Систем чува верзије до 30 дана и аутоматски означава конфликте при истовременим изменама са различитих уређаја.

Која су ограничења iCloud Drive-а?

Бесплатно се обезбеђује 5 ГБ за све иЦлоуд сервисе. Платни планови: 50 ГБ, 200 ГБ, 2 ТБ, 6 ТБ и 12 ТБ. За велике датотеке имплементирајте подршку за наставак и проверавајте доступан простор пре писања.

Резиме

  • iCloud Drive — Аппле-ово складиште у облаку са аутоматском синхронизацијом између уређаја кроз ЦлоудКит
  • Убиqуитy цонтаинер — посебан директоријум апликације за чување синхронизованих датотека
  • НСМетадатаQуерy прати статус преузимања и доступност iCloud Drive датотека
  • НСФилеЦоординатор је обавезан за безбедно читање и писање синхронизованих датотека
  • Конфликти верзија се аутоматски откривају и захтевају решавање кроз НСФилеВерсион
  • Оптимизација укључује ослобађање неискоришћених датотека и асинхроно преузимање са напретком
  • Бесплатни лимит 5 ГБ — за веће количине потребан је платни план иЦлоуд+

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође