iCloud Drive: nedir, Apple bulut depolama ve nasıl çalışır

Yazar: IT Sectr Yayınlanma: 2026-07-11 Okuma süresi: 6 dk

iCloud Drive, kullanıcının cihazları arasında belgeleri senkronize etmek için iOS, macOS ve iPadOS'a entegre edilmiş Apple'ın bulut dosya depolama alanıdır. Apple, 2024'e göre, iCloud Drive dosyaları depolamak ve otomatik senkronizasyon için CloudKit'i arka uç olarak kullanır: iPhone'da yapılan değişiklikler, kullanıcının herhangi bir işlem yapmasına gerek kalmadan anında Mac ve iPad'e yansır. Geliştiriciler, iCloud Drive'ı NSDocumentPickerViewController ve Ubiquity API aracılığıyla uygulamalara entegre edebilir.

Önemli Noktalar

  • iCloud Drive, cihazlar arasında dosyaları senkronize etmek için Apple'ın bulut depolama alanıdır
  • CloudKit, veri depolama ve senkronizasyon sağlayan iCloud arka ucudur
  • Ubiquity kapsayıcısı, uygulamanın senkronize edilmiş dosyalarını depolamak için özel bir dizindir
  • NSDocumentPickerViewController, iCloud dosyalarını içe ve dışa aktarmak için sistem denetleyicisidir
  • Sürüm çakışmaları, NSFileVersion aracılığıyla çakışan kopyalar oluşturularak otomatik olarak çözülür

iOS'ta iCloud Drive nedir?

iCloud Drive, aynı Apple ID ile yetkilendirilmiş tüm kullanıcı cihazları için birleşik belge depolama sağlayan Apple'ın bulut dosya hizmetidir. Hizmet, 2014 yılında iOS 8 ve OS X Yosemite ile birlikte iCloud Documents'ın yerini almak üzere başlatılmıştır.

iCloud Drive, diğer bulut depolama hizmetlerinden (Google Drive, Dropbox) işletim sistemiyle derin entegrasyonuyla ayrılır: dosyalar, ek bir uygulama yüklemeye gerek kalmadan macOS'ta Finder'da ve iOS'ta Dosyalar uygulamasında doğrudan görünür. Sistem, Wi-Fi ve hücresel ağlar arasında geçiş yaparak arka planda içeriği otomatik olarak senkronize eder.

Apple Platform Overview, 2024'e göre, iCloud Drive 30 güne kadar dosya sürümlemeyi, iCloud Sharing aracılığıyla klasör paylaşımını ve Spotlight sistem aramasıyla entegrasyonu destekler. Geliştiriciler, NSFileCoordinator API'si ve Ubiquity kapsayıcıları aracılığıyla depolama alanına erişir.

iCloud Drive Mimarisi ve Ubiquity

Ubiquity, verilerin “her yerde bulunma” yeteneği anlamına gelen bir Apple terimidir. iCloud Drive bağlamında bu, dosyaların CloudKit bulut arka ucu aracılığıyla kullanıcının tüm cihazlarında otomatik olarak senkronize edilmesini sağlayan bir mekanizmadır.

BileşenAçıklamaRol
Ubiquity kapsayıcısıUygulamanın özel diziniSenkronizasyon için dosyaları depolar
CloudKitApple arka uç hizmetiDepolama ve senkronizasyon sağlar
NSMetadataQuerySistem sorgusuUbiquity dosya durumunu izler
NSFileVersionSürüm yönetimiDeğişiklik çakışmalarını çözer

Ubiquity kapsayıcısı, senkronizasyon için işaretlenmiş uygulama Sandbox'ı içindeki bir dizindir. Bu dizine yerleştirilen dosyalar otomatik olarak iCloud Drive'a yüklenir ve diğer cihazlara dağıtılır. Kapsayıcıya erişim, Xcode'da Capabilities aracılığıyla yapılandırılır.

Sistem, her dosyanın durumunu NSMetadataQuery aracılığıyla izler: bir dosya yerel (cihaza indirilmiş), uzak (yalnızca bulutta) veya indiriliyor olabilir. Geliştirici, programlı olarak dosya indirmeyi talep edebilir veya açmadan önce kullanılabilirliğini kontrol edebilir.

Bir Uygulamaya iCloud Drive Entegre Etme

iCloud Drive entegrasyonu, Xcode'da iCloud yeteneği eklenerek ve iCloud Documents hizmeti etkinleştirilerek başlar. Bundan sonra uygulama, yolu FileManager aracılığıyla döndürülen özel bir dizin olan Ubiquity kapsayıcısına erişim kazanır.

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 dosya seçmek ve içe aktarmak için bir sistem kullanıcı arayüzü sağlar. Kullanıcı, arama, sıralama ve çoklu seçim desteğiyle standart bir dosya tarayıcısı görür. Dosya seçiminden sonra uygulama URL'sini alır ve NSFileCoordinator aracılığıyla onunla çalışabilir.

Önemli kural: iCloud Drive dosyalarıyla çalışırken, okuma ve yazma için NSFileCoordinator kullanmalısınız. Bu, işlem sırasında dosyanın başka bir işlem (örneğin senkronizasyon) tarafından değiştirilmemesini sağlar. Koordinasyonu ihmal etmek veri bozulmasına yol açabilir.

Çakışma Çözümü ve NSFileVersion

Sürüm çakışmaları, senkronizasyon tamamlanmadan önce bir dosyanın iki cihazda aynı anda değiştirilmesi durumunda ortaya çıkar. iOS, bu tür durumları NSFileVersion aracılığıyla otomatik olarak algılar ve kullanıcı veya uygulamanın çözmesi gereken çakışan sürümler oluşturur.

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, dosya değişiklik geçmişini 30 güne kadar saklar. Her sürüm bir URL, oluşturma tarihi ve sürümü oluşturan cihazın tanımlayıcısını içerir. İki cihaz aynı temel tanımlayıcıyla değişiklik gönderdiğinde sistem, sürümleri otomatik olarak çakışan olarak işaretler.

Çözüm stratejileri: uygulama, değişiklikleri otomatik olarak birleştirebilir (desteklenen biçimler için), kullanıcıya sürüm seçeneği gösterebilir veya son yazan kazanır (last-writer-wins) stratejisini kullanabilir. Apple, metin ve yapılandırılmış veriler için otomatik birleştirmeyi, ikili biçimler için ise çakışan sürümleri kullanıcıya göstermeyi önerir.

Depolama Sınırları ve Optimizasyon

iCloud'un ücretsiz depolama alanı 5 GB'dır ve tüm kullanıcı hizmetleri arasında dağıtılır: yedeklemeler, fotoğraflar, posta ve iCloud Drive. Ücretli planlar 50 GB'dan başlar ve 12 TB'a kadar çıkar. Yoğun dosya alışverişi olan uygulamalar için bu sınırları dikkate almak kritik öneme sahiptir.

Depolama optimizasyonu: iOS, bir dosya çıkarma mekanizması sağlar—yerel alan tükendiğinde, sistem iCloud Drive dosyalarının önbelleğe alınmış kopyalarını kaldırabilir ve yalnızca meta verileri bırakabilir. Böyle bir dosyayı açmaya çalıştığınızda, sistem onu otomatik olarak buluttan indirir. Geliştirici bu süreci NSFileCoordinator aracılığıyla kontrol edebilir ve NSMetadataUbiquitousItemDownloadingStatusKey aracılığıyla dosya durumunu kontrol edebilir.

WWDC 2022'ye göre Apple, iCloud Drive'ı optimize etmek için aşağıdaki uygulamaları önerir: Ubiquity kapsayıcısında yalnızca kullanıcı belgelerini saklayın, uygulama önbelleğini değil; ilerleme göstergesiyle eşzamansız indirme kullanın; indirmeden önce kullanıcıya dosya boyutu hakkında bilgi sağlayın; büyük dosyalar için sürdürme desteği uygulayın.

Önemli nüans: Ubiquity kapsayıcısından bir dosyayı silmek, onu kullanıcının tüm cihazlarından kaldırır. Geçici dosyalar için Ubiquity kapsayıcısı yerine yerel Documents dizinini kullanın. Ayrıca senkronizasyonun anlık olmadığını unutmayın—gecikme, dosya boyutuna ve ağa bağlı olarak birkaç saniyeden dakikaya kadar değişebilir.

Sıkça Sorulan Sorular

iCloud Drive nedir?

iCloud Drive, belgeleri iPhone, iPad, Mac ve PC arasında senkronize eden Apple'ın bulut dosya depolama alanıdır. Finder ve Dosyalar uygulamasına entegre edilmiştir ve ek uygulamalar olmadan belgelerle çalışmanıza olanak tanır.

iCloud Drive dosyaları nasıl senkronize eder?

Senkronizasyon CloudKit aracılığıyla çalışır: uygulamanın Ubiquity kapsayıcısındaki dosyalar otomatik olarak buluta yüklenir ve kullanıcının diğer cihazlarına dağıtılır. Sistem, durum izleme için NSMetadataQuery ve güvenli erişim için NSFileCoordinator kullanır.

Bir uygulamaya iCloud Drive nasıl entegre edilir?

Xcode'da iCloud yeteneğini ekleyin, iCloud Documents hizmetini etkinleştirin ve senkronize dizinin yolunu almak için FileManager.url(forUbiquityContainer:) kullanın. Dosya seçimi için NSDocumentPickerViewController kullanın.

iCloud Drive'da sürüm çakışmaları durumunda ne yapmalı?

iOS, NSFileVersion aracılığıyla çakışan sürümler oluşturur. Geliştirici, değişiklikleri otomatik olarak birleştirebilir veya kullanıcıya bir seçim gösterebilir. Sistem, sürümleri 30 güne kadar saklar ve farklı cihazlardan eşzamanlı değişiklikler olduğunda çakışmaları otomatik olarak işaretler.

iCloud Drive'ın sınırları nelerdir?

Ücretsiz depolama, tüm iCloud hizmetlerinde 5 GB'dır. Ücretli planlar: 50 GB, 200 GB, 2 TB, 6 TB ve 12 TB. Büyük dosyalar için sürdürme desteği uygulayın ve yazmadan önce kullanılabilir alanı kontrol edin.

Özet

  • iCloud Drive, CloudKit aracılığıyla cihazlar arasında otomatik senkronizasyon sağlayan Apple'ın bulut depolama alanıdır
  • Ubiquity kapsayıcısı, senkronize edilmiş dosyaları depolamak için özel bir uygulama dizinidir
  • NSMetadataQuery, iCloud Drive dosyalarının indirme durumunu ve kullanılabilirliğini izler
  • NSFileCoordinator, senkronize edilmiş dosyaların güvenli okunması ve yazılması için zorunludur
  • Sürüm çakışmaları otomatik olarak algılanır ve NSFileVersion aracılığıyla çözüm gerektirir
  • Optimizasyon, kullanılmayan dosyaların çıkarılmasını ve ilerleme ile eşzamansız indirmeyi içerir
  • Ücretsiz sınır 5 GB'dır—daha büyük hacimler için ücretli bir iCloud+ planı gerekir

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun