File Provider Extension: یہ کیا ہے، iOS فائل رسائی ایکسٹینشن

مصنف: IT Sectr اشاعت: 2026-07-11 مطالعے کا وقت: 6 منٹ

File Provider Extension ایک iOS میکانزم ہے جو ایپلیکیشنوں کو بیلٹ ان فائلز ایپ کے ذریعے باہری ذرائع سے فائلوں تک رسائی فراہم کرنے کی اجازت دیتا ہے۔ Apple Developer Documentation, 2024 کے مطابق، File Provider Extension کلاؤڈ سٹوریج، سرورز اور کسٹم فائل سسٹم سے فائلوں کو Files.app میں براہ راست ڈسپلے کرنے کا قابل بناتا ہے — انہیں مقامی طور پر ایمپورٹ کرنے کی ضرورت کے بغیر۔ صاحب استعمال ان کے طبیعی مقام سے آزاد، فائلوں کے ساتھ کام کرنے کے لیے ایک متحد انٹرفےس حاصل کرتا ہے۔

اہم نکات

  • File Provider Extension — Files.app کے ساتھ باہری فائل سسٹم کو ضم کرنے کے لیے iOS ایکسٹینشن
  • NSFileProviderManager — فائلوں اور سٹیٹ سنکرونائیزیشن کے انتظام کے لیے اہم API
  • دو موڈ آپریشن: مختلف انضمامی مناظر کے لیے Foundation-based اور FileProviderUI
  • فراہم کنندگان NSFileProviderItem کے ذریعے تلاش، فائل کے درجہ بندی اور ٹیگز لاگو کر سکتے ہیں
  • سکیورٹی Sandbox کے ذریعے یقینی بنائی جاتی ہے — ایکسٹینشن ایپ سے علیحدہ چلتا ہے

iOS میں File Provider Extension کیا ہے؟

File Provider Extension iOS اور macOS میں ایک ایپ ایکسٹینشن ہے جو ایک ایپلیکیشن کو سسٹم فائلز ایپ کے ذریعے باہری ذرائع سے فائلوں تک رسائی فراہم کرنے کی اجازت دیتا ہے۔ یہ iOS 11 میں متعارف کرایا گیا تھا اور اسنے Document Provider میکانزم کو بدل دیا، جس میں سنکرونائیزیشن، تلاش اور ٹیگز کی مدد شامل کی گئی۔

File Provider Extension کا بنیادی کام باہری ذخیرہ (کلاؤڈ سرور، کارپوریٹ NAS، FTP) اور Files.app کے درمیان پل کا کام کرنا ہے۔ صاحب استعمال فائلوں اور فائل کو ایسے دیکھتا ہے گویا وہ مقامی طور پر محفوظ ہیں، حالانکہ ڈیٹا ایک دور دراز سرور پر هو سکتا ہے۔ ایکسٹینشن پس منزر میں کام کرتا ہے، ضرورت کے مطابق مواد کو سنکرونائیز کرتا ہے۔

WWDC 2024 کے مطابق، Apple FileProvider API کو فعال طور پر ترقی دے رہا ہے: اضافی سنکرونائیزیشن کے لیے مدد شامل کی گئی ہے، بڑے ڈائریکٹریز کے لیے کارکردگی میں بہتری لائی گئی ہے، اور بیچ آپریشنز اب دستیاب ہیں۔ یہ File Provider Extension کو Apple ایکو سسٹم میں باہری فائلوں کو ضم کرنے کا ترجیحی طریقہ بناتا ہے۔

File Provider Extension کیسے کام کرتا ہے

آرکیٹیکچر File Provider Extension دو اجزاء پر مشتمل ہے: مرکزی ایکسٹینشن (فائل فراہم کنندہ قسم) اور تصدیق اور ترتیب کے لیے ایک اختیاری UI ایکسٹینشن۔ مرکزی ایکسٹینشن NSFileProviderExtension پروٹوکول کو نافذ کرتا ہے اور Files.app سے تمام درخواستوں کو ہینڈل کرتا ہے۔

swift
import FileProvider

class CloudFileProvider: NSFileProviderExtension {
    override func item(for identifier: NSFileProviderItemIdentifier) throws -> NSFileProviderItem {
        guard let item = storage
            .item(for: identifier) else {
            throw NSError(domain: NSFileProviderErrorDomain,
                              code: NSFileProviderError.noSuchItem.rawValue)
        }
        return item
    }

    override func urlForItem(with identifier: NSFileProviderItemIdentifier) -> URL {
        return fileCoordinator.urlForItem(with: identifier)
    }
}

جب کوئی صاحب استعمال Files.app کو کھولتا ہے اور آپ کے فراہم کنندہ کا انتخاب کرتا ہے، سسٹم ایکسٹینشن کو پس منزر پروسیس میں شروع کرتا ہے۔ ایکسٹینشن میں کوئی یوزر انٹرفےس نہیں ہے — یہ ایک ہیڈلس پروسیس ہے جو فائل پڑھنے، لکھنے، نام بدلنے اور حذف کرنے کی درخواستوں کو ہینڈل کرتا ہے۔ تمام کارروائیاں NSFileProviderManager کے ذریعے غیر هم آہنگ انجام پاتی ہیں۔

اہم نکتہ: File Provider Extension ایک علیحدہ پروسیس میں رہتا ہے اور میمری کم ہونے پر سسٹم اسے ختم کر سکتا ہے۔ لہذا، فراہم کنندہ کو شناختگر اور سنک کیش کو مستقل ذخیرہ میں محفوظ کرکے دوبارہ شروع کے بعد حالت کو بحال کرنے کے قابل ہونا چاہی۔

NSFileProviderItem موڈل: فائلیں اور فائل کے

NSFileProviderItem ایک پروٹوکول ہے جو فراہم کنندہ کے درجہ بندی میں انفرادی فائل یا فائل کو بیان کرتا ہے۔ ہر آئٹم کا ایک منفرد شناختگر، نام، قسم (فائل یا فائل کو)، تخلیق اور ترمیم کی تاریخیں، حجم اور فلیگز (آف لائن دستیاب، صرف پڑھنے کے لیے) ہیں۔

خاصیتقسمتفصیل
itemIdentifierNSFileProviderItemIdentifierفراہم کنندہ سسٹم میں آئٹم کا منفرد ID
parentItemIdentifierNSFileProviderItemIdentifierپیرنٹ فائل کا ID (جڑ — .rootContainer)
filenameStringایکسٹنشن کے ساتھ فائل کا نام
typeIdentifierString (UTType)مواد کی قسم کا تعین کرنے کے لیے یونیفرم ٹائپ ایڈینٹیفائر
capabilitiesNSFileProviderItemCapabilitiesفلیگز: حذف، نام بدلنا، ٹیگز کا اضافہ

پروٹوکول NSFileProviderItemProtocol کے ذریعے وسیع صلاحیتوں کی بھی حمایت کرتا ہے: ٹیگز (رنگین لیبلز)، آئیکنز، ورشننگ اور کسٹم کاروائیاں۔ بڑی فائلوں کے لیے، NSFileProviderService کے ذریعے دوبارہ شروع کے قابل منتقلی کی مدد نافذ کی جاتی ہے۔

WWDC 2023 کے مطابق، Apple پورے آبجیکٹ کے بجائے صرف بدلی گئی خاصیتوں کو اپ ڈیٹ کرنے کے لیے کلوزرز (NSFileProviderItemFields) کے استعمال کی سفارش کرتا ہے۔ یہ بیچ اپ ڈیٹس کے دوران سنکرونائیزیشن کو خاصطور تیز کرتا ہے — مثال کے طور پر، جب صرف فائلوں کے ایک گروپ کا حجم بدلتا ہے۔

سنک انجن اور NSFileProviderManager

NSFileProviderManager ایکسٹینشن کے لائف سائکل کے انتظام کے لیے مرکزی کلاس ہے۔ یہ سسٹم کو تبدیلیوں کے بارے میں مطلع کرنے، مشترکہ تنازعات کو ہینڈل کرنے اور ڈاؤن لوڈ کا انتظام کرنے کے لیے طریقے فراہم کرتا ہے۔ منیجر خود برخورد منتقلیات کا پتا لگاتا ہے اور صاحب استعمال کو نظر آنے والی فائلوں کو ترجیح دیتا ہے۔

swift
class SyncManager {
    let providerManager = NSFileProviderManager.default

    func signalUpdate(for item: NSFileProviderItemIdentifier) {
        providerManager.signalEnumerator(
            for: item.parentItemIdentifier
        ) { error in
            if let error = error {
                Logger.sync.error(
                    "Failed to signal: \(error.localizedDescription)"
                )
            }
        }
    }

    func uploadItem(at url: URL, itemId: NSFileProviderItemIdentifier) {
        providerManager.registerURLBasedItem(
            with: itemId,
            url: url
        )
    }
}

سنک انجن وہ لاجک ہے جسے ڈیولپر آزادانہ نافذ کرتا ہے۔ Apple کوئی بنا بنایا سنکرونائیزیشن میکانزم فراہم نہیں کرتا — صرف سسٹم کو تبدیلیوں کے بارے میں مطلع کرنے کے لیے API۔ فراہم کنندہ خود فیصلہ کرتا ہے کہ سرور سے فائلیں کیسے ڈاؤن لوڈ کرنی ہیں، مقامی طور پر کیش کیسے کرنی ہیں اور ترمیمی تنازعات کو کیسے حل کرنا ہے۔

تنازعات: سسٹم NSFileProviderSyncAnchor کے ذریعے ورشن تنازع کا پتا لگانے کی حمایت کرتا ہے۔ جب ایک فائل بہطور بک مقامی اور ریموٹ بدلی جاتی ہے، فراہم کنندہ آخری سنکرونائیزدہ ورشن کا تعین کرنے کے لیے سنک اینکر کا استعمال کرتا ہے اور آخری لکھنے والا جیتتا کی حکمت عملی یا تنازعی نقل بنانے سے تنازع کو حل کرتا ہے۔

سکیورٹی اور ایکسٹینشن سینڈ باکس

File Provider Extension ایک سخت iOS سینڈ باکس کے اندر کام کرتا ہے۔ ایکسٹینشن کی میزبان ایپ کے فائل سسٹم تک براہ راست رسائی نہیں ہے، اور اس کے برعکس، ایپ فراہم کنندہ کی فائلوں کو براہ راست نہیں پڑھ سکتا۔ تمام ڈیٹا کا تبادلہ Files.app سسٹم API کے ذریعے ہوتا ہے۔

صاحب استعمال کی فائلوں تک رسائی صرف واضح باہمی عمل کے ذریعے ممکن ہے: صاحب استعمال ایک ایپلیکیشن میں Files.app سے ایک فائل کھولتا ہے، اور سسٹم ایک علیحدہ کنٹینر میں فائل کی ایک عارضی نقل تیار کرتا ہے۔ وصول کرنے والا ایپ اس نقل کے ساتھ کام کرتا ہے، فراہم کنندہ کے ذخیرہ میں موجود اصل سے نہیں۔

Apple Security Guide, 2024 کے مطابق، فراہم کنندہ کو ترسیل کے دوران ڈیٹا انکرپشن (TLS 1.3) لاگو کرنا ہوگا اور کیش شدہ فائلوں کے لیے اختیاری طور پر ڈسک انکرپشن شامل کر سکتا ہے۔ صاحب استعمال کی تصدیق ایک علیحدہ FileProviderUI کمپوننٹ کے ذریعے کی جاتی ہے، جو محفوظ اسند کی درج کے لیے ایکسٹینشن سینڈ باکس کے باہر چلتا ہے۔

اہم حد: ایکسٹینشن صوری کائی کوڈ نہیں چلا سکتا — یہ صرف NSFileProviderManager کے ذریعے درخواستوں کو پروسیس کرتا ہے۔ فائل آپریشنز سے باہر کی کوئی بھی لاجک مرکزی ایپ میں نافذ کی جانی چاہیے اور ایپ گروپز یا XPC سروسز کے ذریعے کو پیش کیا جانا چاہیے۔

اکثر پوچے جانے والے سوالات

iOS میں File Provider Extension کیا ہے؟

File Provider Extension ایک ایپ ایکسٹینشن ہے جو باہری فائل سٹوریج کو فائلز ایپ کے ساتھ ضم کرتا ہے۔ یہ کلاؤڈ سروسز، FTP، NAS اور دیگر ذرائع سے فائلوں کو مقامی طور پر کپی کیئے بغیر ڈسپلے کرنے کی اجازت دیتا ہے۔

File Provider اور Document Provider میں کیا فرق ہے؟

File Provider (iOS 11+) نے Document Provider کو بدل دیا، پس منزر سنکرونائیزیشن، Spotlight تلاش کی مدد، ٹیگز اور بہتر کارکردگی کا اضافہ کیا۔ Document Provider کو iOS 11 سے فرسودہ کر دیا گیا تھا اور iOS 14 میں ہٹا دیا گیا۔

File Provider Extension فائلوں کو کیسے سنکرونائیز کرتا ہے؟

سنکرونائیزیشن ڈیولپر کے ذریعے NSFileProviderManager کے ذریعے نافذ کی جاتی ہے۔ ایکسٹینشن signalEnumerator کے ذریعے سسٹم کو تبدیلیوں کا سیگنل دیتا ہے، اور سسٹم اپ ڈیٹ شدہ آئٹمز کی فہرست کا مطالبہ کرتا ہے۔ ورشن تنازعات NSFileProviderSyncAnchor کے ذریعے حل کی جاتی ہیں۔

کیا ایکسٹینشن بن مرکزی ایپ کے کام کر سکتا ہے؟

جی ہاں، File Provider Extension مرکزی ایپ کے چلنے کے بغیر ایک آزاد پروسیس کے طور پر کام کر سکتا ہے۔ یہ ایک ہیڈلس ایکسٹینشن ہے جسے iOS Files.app کی درخواست پر شروع کرتا ہے۔ تاہم، تصدیق اور ابتدائی ترتیب عام طور پر مرکزی ایپ کے ذریعے کی جاتی ہے۔

File Provider Extension کو کن اجازتوں کی ضرورت ہے؟

ایکسٹینشن کو Xcode میں File Provider کی صلاحیت اور entitlement com.apple.developer.file-provider کی ضرورت ہے۔ نیٹ ورک تک رسائی کے لیے، Network کی صلاحیت شامل کی جاتی ہے۔ باقی تمام حقوق iOS سینڈ باکس کے ذریعے سختی سے محدود ہیں۔

خلاصہ

  • File Provider Extension — ایپ ایکسٹینشن کے ذریعے باہری فائل سسٹم کو Files.app کے ساتھ ضم کرنے کا ایک iOS میکانزم
  • NSFileProviderManager — فائلوں کے انتظام، تبدیلیوں کے سیگنل اور ڈاؤن لوڈ کے لیے اہم API
  • NSFileProviderItem — فراہم کنندہ کے درجہ بندی میں مواد کے ایک یونٹ کو بیان کرنے والا پروٹوکول
  • سینڈ باکس ایکسٹینشن کو میزبان ایپ سے علیحدہ کرتا ہے — ڈیٹا کا تبادلہ صرف Files.app کے ذریعے
  • سنکرونائیزیشن ڈیولپر کے ذریعے نافذ کی جاتی ہے: Apple API فراہم کرتا ہے لیکن بنا بنایا انجن نہیں
  • ورشن تنازعات سنک اینکر کے ذریعے ہینڈل کی جاتی ہیں — فراہم کنندہ حل کی حکمت عملی کا انتخاب کرتا ہے
  • پس منزر موڈ ایکسٹینشن کو ایپ کے چلنے کے بغیر کام کرنے کی اجازت دیتا ہے، لیکن حالت کے برقرار رہنے کی ضرورت ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں