Privacy Manifest — یہ کیا ہے، PrivacyInfo.xcprivacy فائل اور ضروریات

مصنف: IT Sectr اشاعت: 2026-05-20 مطالعے کا وقت: 9 منٹ

Privacy Manifest (PrivacyInfo.xcprivacy) ایک فائل ہے جسے تمام ایپلیکیشنز اور تیسرے فریق کے SDK کو 2024 کے موسم بہار سے iOS بلڈ میں شامل کرنا ضروری ہے۔ Apple کو محفوظ API (Required Reason API) کے استعمال کی وجوہات اور جمع کردہ ڈیٹا کی اقسام کا اعلان کرنے کی ضرورت ہے۔ Apple ڈویلپر دستاویزات کے مطابق، ایپلیکیشن کے اندر ہر بائنری — مرکزی ہدف، فریم ورک، Swift Package Manager انحصار — کو اپنا Privacy Manifest شامل کرنا چاہیے۔

اہم نکات

  • Privacy Manifest — API استعمال کی وجوہات کے اعلان کے ساتھ XML فائل PrivacyInfo.xcprivacy
  • Required Reason API — API زمرے جن میں وجہ بتانا لازمی ہے
  • SDK Privacy Manifest — ہر تیسرے فریق کا SDK اپنا مینی فیسٹ فراہم کرنے کا پابند ہے
  • وجوہات (Reasons) — Apple کی منظور شدہ فہرست سے API استعمال کا مخصوص مقصد
  • آخری تاریخ — یکم مئی 2024 سے تمام نئے بلڈز میں Privacy Manifest شامل کرنا لازمی ہے

Privacy Manifest کیا ہے؟

Privacy Manifest ایک PrivacyInfo.xcprivacy فائل ہے جو property list (XML) فارمیٹ میں اعلان کرتی ہے کہ ایپلیکیشن کس قسم کا ڈیٹا جمع کرتی ہے اور وہ مخصوص API کیوں استعمال کرتی ہے۔ Apple نے رازداری کی شفافیت بڑھانے کے اقدام کے حصے کے طور پر، Privacy Nutrition Label کی طرح، لیکن کوڈ اور بائنری سطح پر مینی فیسٹ متعارف کرائے ہیں۔

مینی فیسٹ کا بنیادی مقصد نام نہاد Required Reason API کے استعمال کو دستاویز کرنا ہے۔ یہ API زمرے ہیں جو ڈیوائس کی ڈیجیٹل فنگر پرنٹنگ کے لیے استعمال ہو سکتے ہیں، لہذا ہر استعمال Apple کی منظور شدہ فہرست سے مخصوص وجہ کے اعلان کے ساتھ ہونا چاہیے۔

یکم مئی 2024 سے، Apple ان بلڈز کو مسترد کرتا ہے جن میں Privacy Manifest نہیں ہے۔ یہ ایپلیکیشن کے مرکزی اہداف اور تمام ایمبیڈڈ SDK اور انحصار دونوں پر لاگو ہوتا ہے۔ WWDC 2023 کے مطابق، App Store کے ذریعے تقسیم کردہ تمام ایپلیکیشنز کے لیے مینی فیسٹ لازمی ہے۔

مینی فیسٹ ہر بائنری میں موجود ہونا چاہیے — نہ صرف مرکزی ایپلیکیشن میں بلکہ ہر فریم ورک اور سٹیٹک لائبریری میں بھی۔ اگر تیسرے فریق کے SDK نے مینی فیسٹ فراہم نہیں کیا، تو ڈویلپر کو اسے دستی طور پر شامل کرنا ہوگا یا اپ ڈیٹ کے لیے SDK فروش سے رابطہ کرنا ہوگا۔

Apple نے Privacy Manifest کیوں متعارف کرایا

مینی فیسٹ سے پہلے، ڈویلپر شفاف وضاحت کے بغیر وسیع نظام API (فائل سسٹم تک رسائی، تاریخ/وقت، سسٹم لاگز) استعمال کر سکتے تھے۔ اس سے تیسرے فریق کے SDK کے ذریعے ڈیٹا لیک ہونے کا خطرہ پیدا ہوتا تھا جو ڈویلپر کی معلومات کے بغیر معلومات جمع کر سکتے تھے۔

Mysk Inc. (2023) کے مطابق، بہت سے مشہور SDK نے واضح ضرورت کے بغیر ڈیوائس فنگر پرنٹنگ کے لیے API استعمال کیا — مثال کے طور پر، ٹائم زون کا تعین کرنے کے لیے اپ ٹائم پڑھنا یا میٹا ڈیٹا جمع کرنے کے لیے ڈائریکٹریز کو اسکین کرنا۔ Privacy Manifest ایسی ہر کارروائی کا اعلان کرنے کا پابند بناتا ہے۔

Required Reason API کے علاوہ، مینی فیسٹ میں NSPrivacyTracking سیکشن شامل ہے — ایک فلیگ جو بتاتا ہے کہ ایپ ٹریکنگ استعمال کرتی ہے یا نہیں (ATT درکار ہے)، اور NSPrivacyCollectedDataTypes — Privacy Nutrition Label فارمیٹ میں جمع کردہ ڈیٹا کی اقسام کی فہرست۔

Privacy Manifest اور Privacy Nutrition Label کے درمیان فرق

Privacy Nutrition Label App Store میں ایپلیکیشن پیج پر صارف کے سامنے پیش کرنے والا نمائندہ ہے، جو دکھاتا ہے کہ ایپ کون سا ڈیٹا جمع کرتی ہے۔ Privacy Manifest بائنری کے اندر ایک تکنیکی فائل ہے جسے Apple خود بخود چیک کرتا ہے۔ اگر مینی فیسٹ میں ڈیٹا App Store Connect کے لیبل سے مماثل نہیں ہے، تو Apple بلڈ کو مسترد کر دیتا ہے۔

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

PrivacyInfo.xcprivacy کی ساخت

PrivacyInfo.xcprivacy فائل property list فارمیٹ استعمال کرتی ہے جس میں جڑ کی قسم Dictionary ہے۔ اہم اوپری سطح کی کنجیاں ہیں: NSPrivacyTracking (Boolean), NSPrivacyTrackingDomains (Array), NSPrivacyCollectedDataTypes (Array), NSPrivacyAccessedAPITypes (Array).

اوپری سطح کی کنجیاں

NSPrivacyTracking کنجی — ایک بولین قدر جو بتاتی ہے کہ ایپ ٹریکنگ لاگو کرتی ہے یا نہیں (ATT درکار ہے)۔ اگر true ہے، تو Info.plist میں NSUserTrackingUsageDescription بھی بتانا ضروری ہے۔ NSPrivacyTrackingDomains کنجی — ڈومینز کی ایک صف جہاں ٹریکنگ لاگو کی جاتی ہے۔

NSPrivacyCollectedDataTypes کنجی — ڈکشنریز کی ایک صف، ہر ایک جمع کردہ ڈیٹا کی قسم کو بیان کرتی ہے: زمرہ (NSPrivacyCollectedDataType), ربط (NSPrivacyCollectedDataLinked), مقصد (NSPrivacyCollectedDataTypePurposes)۔ مقاصد میں شامل ہیں: تیسرے فریق کی تشہیر، تجزیہ، مصنوعات کی ترقی اور مواد کی ذاتی بنانا۔

NSPrivacyAccessedAPITypes کنجی — ہر Required Reason API زمرے کے لیے ڈکشنریز کی ایک صف: زمرہ (NSPrivacyAccessedAPITypeReasons) — Apple کی منظور شدہ فہرست سے ایک مخصوص وجہ، اور NSPrivacyAccessedAPIType — API زمرے کا شناخت کنندہ۔

xml
<!-- PrivacyInfo.xcprivacy -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPrivacyTracking</key>
    <false/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>C617.1</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

NSPrivacyCollectedDataTypes میں ڈیٹا کے زمرے

ڈیٹا کی اقسام کئی زمروں میں تقسیم ہیں: رابطے کی معلومات (نام، ای میل، فون)، مالیات (ادائیگی کا ڈیٹا)، شناخت کنندگان (IDFA، صارف ID)، استعمال کا ڈیٹا (لاگ، کلکس)، تشخیص (کریش لاگ) اور صارف کا مواد (تصاویر، ویڈیوز، فائلیں)۔ ہر زمرے کو اضافی طور پر «صارف سے منسلک» یا «منسلک نہیں» کے طور پر نشان زد کیا جاتا ہے۔

منسلک کا مطلب ہے کہ ڈیٹا صارف کے اکاؤنٹ سے جڑا ہوا ہے؛ منسلک نہیں کا مطلب ہے کہ ڈیٹا جمع یا گمنام کیا گیا ہے۔ یہ نشان زد کرنا متاثر کرتا ہے کہ Apple رازداری کا لیبل کیسے دکھاتا ہے: منسلک ڈیٹا پیلے رنگ میں نشان زد ہوتا ہے، منسلک نہیں — سبز رنگ میں۔

کن API کو وجوہات بتانے کی ضرورت ہے

Apple نے کئی API زمرے متعین کیے ہیں، جن میں سے ہر ایک کا استعمال منظور شدہ فہرست سے مخصوص وجہ کے ساتھ ہونا چاہیے۔ وجہ ایک منفرد کوڈ ہے، مثال کے طور پر C617.1 یا 35F9.1، جو Apple کی اجازت کردہ مخصوص مقصد سے میل کھاتا ہے۔

بنیادی Required Reason API زمرے

NSPrivacyAccessedAPICategoryFileTimestamp زمرے میں فائل ٹائم سٹیمپ (creationDate, modificationDate) تک رسائی کے لیے API شامل ہیں۔ وجوہات: C617.1 (فائل سنکرونائزیشن), 3B52.1 (بیک اپ), 0A2A.1 (اینٹی فراڈ)۔

NSPrivacyAccessedAPICategoryDiskSpace زمرے میں ڈسک کی خالی جگہ چیک کرنے کے لیے API شامل ہیں (NSFileManager. چیک (NSFileManager)۔ وجوہات: E174.1 (کیشے کا انتظام), 85F4.1 (مواد ڈاؤن لوڈ), B728.1 (تشخیص)۔

NSPrivacyAccessedAPICategorySystemBootTime زمرے میں سسٹم بوٹ ٹائم (اپ ٹائم) تک رسائی کے لیے API شامل ہیں۔ صرف ایک وجہ: 35F9.1 (تجزیہ کے لیے سیشن کا وقت ناپنا)۔ کوئی بھی دوسرا استعمال فنگر پرنٹنگ سمجھا جاتا ہے۔

API زمروں کی مکمل فہرست

  • FileTimestamp — فائل ٹائم سٹیمپ تک رسائی، سنکرونائزیشن اور بیک اپ کے لیے اجازت ہے
  • DiskSpace — خالی جگہ کی جانچ، کیشے کے انتظام اور ڈاؤن لوڈ کے لیے اجازت ہے
  • SystemBootTime — اپ ٹائم، صرف سیشن تجزیہ کے لیے اجازت ہے
  • UserDefaults — دوسری ایپس کے UserDefaults تک رسائی، مکمل طور پر ممنوع ہے
  • ActiveKeyboards — فعال کی بورڈز کی فہرست، IME ڈویلپرز کے لیے اجازت ہے
  • SystemAperture — اسکرین کٹ آؤٹ سائز، فوٹو اور AR ایپس کے لیے اجازت ہے

ہر زمرے میں 1 سے 5 منظور شدہ وجوہات ہیں۔ ڈویلپر کو وہ وجہ منتخب کرنی چاہیے جو API کے حقیقی استعمال سے زیادہ قریب تر ہو۔ غلط وجہ فراہم کرنے سے بلڈ مسترد یا اکاؤنٹ معطل ہو سکتا ہے۔

تیسرے فریق کے SDK کے لیے ضروریات

یکم مئی 2024 سے، تمام تیسرے فریق کے SDK — بائنری اور اوپن سورس دونوں — کو اپنے پیکج میں Privacy Manifest شامل کرنا ضروری ہے۔ Apple تمام انحصار کے مینی فیسٹ چیک کرتا ہے، اور اگر کم از کم ایک SDK کے پاس مینی فیسٹ نہیں ہے، تو بلڈ مسترد کر دیا جائے گا۔

بڑے SDK (Firebase, Adjust, AppsFlyer, Facebook SDK) پہلے ہی اپنے پیکج اپ ڈیٹ کر چکے ہیں۔ اگر آپ کا پروجیکٹ کوئی کم معروف SDK استعمال کرتا ہے، تو اس کا ورژن چیک کریں اور اگر ضروری ہو تو اپ ڈیٹ کریں یا ڈویلپر سے رابطہ کریں۔ ایک عارضی حل پروجیکٹ میں SDK کے لیے دستی طور پر مینی فیسٹ شامل کرنا ہے، لیکن اپ ڈیٹس کے دوران تضادات کی وجہ سے اس کی سفارش نہیں کی جاتی ہے۔

Xcode میں Privacy Manifest کیسے بنائیں

آپ Xcode 15+ میں بلٹ ان ٹیمپلیٹ کے ذریعے یا دستی طور پر PrivacyInfo.xcprivacy بنا سکتے ہیں۔ دونوں آپشنز پر غور کریں۔

Xcode 15 کے ذریعے تخلیق

Xcode 15 میں Privacy Manifest ٹیمپلیٹ شامل ہے: File → New → File → Resource → Privacy Manifest۔ Xcode بنیادی ساخت کے ساتھ ایک فائل بناتا ہے اور NSPrivacyTracking اور API اور ڈیٹا کے لیے خالی صفیں بھرتا ہے۔ تخلیق کے بعد، آپ کو ہر استعمال کردہ Required Reason API کے لیے دستی طور پر وجوہات بتانی ہوں گی۔

ٹیمپلیٹ خود بخود فائل کو مرکزی ہدف میں شامل کرتا ہے۔ اگر پروجیکٹ میں متعدد اہداف ہیں (Extensions, Watch app)، تو آپ کو ہر ایک میں مینی فیسٹ شامل کرنا ہوگا۔ Xcode مرتب کرنے کے وقت انحصار میں مینی فیسٹ کی موجودگی کو نہیں چیک کرتا — صرف آرکائیو کرنے کے مرحلے پر۔

swift
// AppDelegate: ڈیولپمنٹ مرحلے پر مینی فیسٹ کی جانچ
import Foundation

func validatePrivacyManifest() {
    guard let path = Bundle.main.path(
        forResource: "PrivacyInfo", ofType: "xcprivacy"
    ) else {
        print("PrivacyInfo.xcprivacy نہیں ملا")
        return
    }
    guard let dict = NSDictionary(contentsOfFile: path)
    else { return }
    print("Privacy manifest loaded: \(dict.count) keys")
}

XML کے ذریعے دستی تخلیق

آپ PrivacyInfo.xcprivacy کو دستی طور پر ایک عام XML property list فائل کے طور پر بنا سکتے ہیں۔ ایسا کرنے کے لیے، PrivacyInfo.xcprivacy نامی فائل بنائیں، معیاری plist ہیڈر لکھیں اور ضروری کنجیوں کے ساتھ ایک روٹ ڈکشنری شامل کریں۔ یقینی بنائیں کہ فائل ہدف میں شامل ہے (Target Membership).

دستی طریقہ کارآمد ہے جب آپ کو Xcode UI استعمال کیے بغیر سٹیٹک لائبریری یا Package Manager انحصار میں مینی فیسٹ شامل کرنے کی ضرورت ہوتی ہے۔ مرتب کرنے کے بعد، nm کمانڈ یا آرکائیونگ کے ذریعے تصدیق کریں کہ فائل بائنری میں شامل ہے۔

اشاعت سے پہلے مینی فیسٹ کی تصدیق

App Store میں بلڈ جمع کرانے سے پہلے، آپ کو تصدیق کرنی ہوگی کہ Privacy Manifest درست اور مکمل ہے۔ Apple کئی تصدیقی ٹولز فراہم کرتا ہے۔

Xcode میں بلٹ ان تصدیق کنندہ

پروجیکٹ کو آرکائیو کرتے وقت (Product → Archive)، Xcode مینی فیسٹ کی تصدیق کرتا ہے۔ اگر کوئی غلطی ملتی ہے — مینی فیسٹ کی کمی، غلط وجہ، خالی زمرہ — آرکائیونگ غلطی کے ساتھ ناکام ہو جاتی ہے۔ غلطی کا لاگ Issue نیویگیٹر میں دکھایا جاتا ہے، جس میں مسئلہ SDK اور API زمرے کی نشاندہی ہوتی ہے۔

بلڈ اپ لوڈ کرتے وقت App Store Connect کی طرف سے اضافی تصدیق کی جاتی ہے۔ اگر تصدیق ناکام ہوتی ہے، تو بلڈ کو مسئلہ API کے شناخت کنندہ اور تجویز کردہ اصلاح کے ساتھ خودکار ای میل کے ذریعے مسترد کر دیا جاتا ہے۔

کمانڈ لائن کے ذریعے تصدیق

تصدیق کو خودکار بنانے کے لیے، اسکرپٹ استعمال کریں جو Required Reason API کے استعمال کے لیے بائنری کا تجزیہ کریں۔ Apple libtool ٹول اور علامت کی تصدیق کے اسکرپٹ فراہم کرتا ہے، لیکن کمیونٹی نے زیادہ آسان افادیتیں تیار کی ہیں۔

bash
# بائنری میں FileTimestamp API استعمال کی تلاش
nm MyApp.app/MyApp | grep "NSFileCreationDate"

# ایپلیکیشن میں PrivacyInfo.xcprivacy کی موجودگی کی جانچ
find MyApp.app -name "*.xcprivacy"

عام تصدیقی غلطیاں

سب سے عام غلطی SDK میں سے کسی ایک میں مینی فیسٹ کی عدم موجودگی ہے۔ یہاں تک کہ اگر مرکزی ہدف میں مینی فیسٹ موجود ہے، Apple ہر بائنری کو انفرادی طور پر چیک کرتا ہے۔ دوسری سب سے عام غلطی غلط وجہ کوڈ ہے — ایک API زمرے کی وجہ کو دوسرے زمرے کی API کے ساتھ استعمال کرنا۔

تیسری غلطی API کی ضرورت سے زیادہ اعلان ہے جو حقیقت میں استعمال نہیں ہوتیں۔ ڈویلپر «ممکنہ صورت حال میں» کے لیے تمام ممکنہ وجوہات شامل کرتے ہیں، جو Apple کے جائزہ لینے والوں کو مشکوک بناتا ہے۔ صرف وہی زمرے شامل کریں جو حقیقت میں استعمال ہوتے ہیں۔ تصدیق کے لیے Xcode سٹیٹک تجزیہ کار استعمال کریں۔

اکثر پوچھے گئے سوالات

Privacy Manifest نہ ہونے پر کیا ہوگا؟

یکم مئی 2024 سے، Apple مینی فیسٹ کے بغیر کسی بھی بلڈ کو مسترد کرتا ہے۔ غلطی App Store Connect میں اپ لوڈ کرنے کے مرحلے پر ہوتی ہے۔ پرانی ایپلیکیشنز بلاک نہیں ہوتیں، لیکن اپ ڈیٹ کے لیے مینی فیسٹ کا لازمی شامل کرنا ضروری ہے۔

کیا iPadOS ایپلیکیشنز کو Privacy Manifest کی ضرورت ہے؟

جی ہاں، مینی فیسٹ تمام Apple پلیٹ فارمز کے لیے لازمی ہے: iOS, iPadOS, macOS, tvOS, watchOS اور visionOS۔ Required Reason API کی ضروریات تمام پلیٹ فارمز پر یکساں ہیں، تاہم API سیٹ قدرے مختلف ہو سکتے ہیں۔

تیسرے فریق کے SDK کے لیے مینی فیسٹ کیسے شامل کریں؟

اگر SDK نے مینی فیسٹ فراہم نہیں کیا، تو ایک علیحدہ PrivacyInfo.xcprivacy فائل بنائیں اور اسے پروجیکٹ میں SDK گروپ میں شامل کریں۔ SDK کی دستاویزات کی بنیاد پر اس SDK کے استعمال کردہ API کے لیے وجوہات بتائیں۔

کیا Apple غلط وجہ کی وجہ سے بلڈ مسترد کر سکتا ہے؟

جی ہاں۔ خودکار جانچ کے دوران، Apple اعلان کردہ وجوہات کو اصل API کالز سے ملاتا ہے۔ عدم مطابقت مسترد کرنے کا باعث بنتی ہے۔ دستی جائزے کے دوران، جائزہ لینے والا وضاحت طلب کر سکتا ہے۔

کیا Swift Package Manager کے لیے Privacy Manifest چیک کیا جاتا ہے؟

جی ہاں، Apple SPM سمیت تمام انحصار کے مینی فیسٹ چیک کرتا ہے۔ پیکج فراہم کرنے والوں کو اپنے ذخیروں میں PrivacyInfo.xcprivacy شامل کرنا ضروری ہے۔ Xcode آرکائیونگ کے دوران غائب مینی فیسٹ کے بارے میں خبردار کرتا ہے۔

خلاصہ

  • Privacy Manifest — 2024 سے تمام ایپس اور SDK کے لیے لازمی PrivacyInfo.xcprivacy فائل
  • Required Reason API — 6 API زمرے جن میں استعمال کی مخصوص وجہ کا اعلان ضروری ہے
  • وجوہات — منفرد کوڈ (C617.1, 35F9.1), ہر زمرے میں 1-5 منظور شدہ وجوہات
  • SDK — ہر تیسرے فریق کا SDK بائنری میں اپنا مینی فیسٹ شامل کرنے کا پابند ہے
  • تصدیق — Xcode آرکائیونگ پر مینی فیسٹ چیک کرتا ہے، App Store Connect اپ لوڈ پر
  • آخری تاریخ — یکم مئی 2024 سے تمام نئے بلڈز میں مینی فیسٹ ہونا چاہیے
  • Xcode ٹیمپلیٹ کے ذریعے PrivacyInfo.xcprivacy بنائیں اور صرف حقیقت میں استعمال ہونے والی API کا اعلان کریں

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

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

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

مزید پڑھیں