Privacy Manifest — ano ito, file na PrivacyInfo.xcprivacy at mga kinakailangan

May-akda: IT Sectr Nai-publish: 2026-05-20 Oras ng pagbabasa: 9 min

Privacy Manifest (PrivacyInfo.xcprivacy) — ang file na dapat isama ng lahat ng application at third-party SDK sa iOS build simula noong tagsibol ng 2024. Apple ay nangangailangan ng deklarasyon ng mga dahilan ng paggamit ng mga protektadong API (Required Reason API) at mga uri ng nakolektang data. Ayon sa Apple Developer Documentation, bawat binary sa komposisyon ng application — pangunahing target, frameworks, Swift Package Manager dependencies — ay dapat maglaman ng sariling Privacy Manifest.

Mga Pangunahing Punto

  • Privacy Manifest — XML file na PrivacyInfo.xcprivacy na may deklarasyon ng mga dahilan ng paggamit ng API
  • Required Reason API — mga kategorya ng API na nangangailangan ng sapilitang pagbanggit ng dahilan
  • SDK Privacy Manifest — bawat third-party SDK ay obligadong magbigay ng sariling manifest
  • Mga Dahilan (Reasons) — tiyak na layunin ng paggamit ng API mula sa aprubadong listahan ng Apple
  • Deadline — mula Mayo 1, 2024 lahat ng bagong build ay dapat maglaman ng Privacy Manifest

Ano ang Privacy Manifest?

Ang Privacy Manifest ay ang file na PrivacyInfo.xcprivacy sa property list (XML) na format, na nagdedeklara kung anong mga uri ng data ang kinokolekta ng application at kung bakit ito gumagamit ng ilang partikular na API. Ipinakilala ng Apple ang mga manifest bilang bahagi ng inisyatiba upang pataasin ang transparency ng privacy, katulad ng Privacy Nutrition Label, ngunit sa antas ng code at binary.

Ang pangunahing layunin ng manifest ay idokumento ang paggamit ng tinatawag na Required Reason API. Ito ay mga kategorya ng API na maaaring gamitin para sa pagkuha ng digital fingerprint ng device (fingerprinting), kaya ang bawat paggamit ay dapat may kasamang deklarasyon ng isang tiyak na dahilan mula sa aprubadong listahan ng Apple.

Simula Mayo 1, 2024, tinatanggihan ng Apple ang mga build na hindi naglalaman ng Privacy Manifest. Ito ay nalalapat kapwa sa mga pangunahing target ng application at sa lahat ng naka-embed na SDK at dependencies. Ayon sa WWDC 2023, ang manifest ay sapilitan para sa lahat ng application na ipinamamahagi sa pamamagitan ng App Store.

Ang manifest ay dapat na naroroon sa bawat binary — hindi lamang sa pangunahing application, kundi pati na rin sa bawat framework at static na library. Kung ang isang third-party SDK ay hindi nagbigay ng manifest, ang developer ay dapat na manu-manong idagdag ito o makipag-ugnayan sa provider ng SDK para sa isang update.

Bakit ipinakilala ng Apple ang Privacy Manifest

Bago lumitaw ang mga manifest, ang mga developer ay maaaring gumamit ng malawak na system API (access sa file system, petsa/oras, system log) nang walang transparent na paliwanag ng layunin ng paggamit. Ito ay lumikha ng panganib ng pagtagas ng data sa pamamagitan ng third-party SDK na maaaring mangolekta ng impormasyon nang walang kaalaman ng developer.

Ayon sa datos ng Mysk Inc. (2023), maraming sikat na SDK ang gumamit ng API para sa pagkuha ng fingerprint ng device nang walang malinaw na pangangailangan — halimbawa, binabasa ang uptime time para sa pagtukoy ng time zone o nag-scan ng mga direktoryo para sa pagkolekta ng metadata. Ang Privacy Manifest ay nag-oobliga ng deklarasyon ng bawat naturang aksyon.

Bukod sa Required Reason API, ang manifest ay may kasamang seksyong NSPrivacyTracking — isang bandila na nagpapahiwatig kung ang application ay gumagamit ng tracking (nangangailangan ng ATT) at NSPrivacyCollectedDataTypes — listahan ng mga uri ng nakolektang data sa format na Privacy Nutrition Label.

Pagkakaiba sa pagitan ng Privacy Manifest at Privacy Nutrition Label

Ang Privacy Nutrition Label ay isang user-friendly na pagpapakita sa pahina ng application sa App Store, na nagpapakita kung anong data ang kinokolekta ng application. Ang Privacy Manifest ay isang teknikal na file sa loob ng binary na awtomatikong sinusuri ng Apple. Kung ang data sa manifest ay hindi tumutugma sa mga label sa App Store Connect, tinatanggihan ng Apple ang build.

Kaya, ang manifest ay ang pinagmumulan ng katotohanan para sa sistema ng pagsusuri ng Apple. Batay dito, awtomatikong nabubuo ang mga label ng privacy, ngunit dapat panatilihin ng developer ang parehong representasyon na napapanahon. Ang pagbabago ng manifest pagkatapos ng publikasyon ay nangangailangan ng pagpapadala ng bagong build para sa pagsusuri.

Istruktura ng PrivacyInfo.xcprivacy

Ang file na PrivacyInfo.xcprivacy ay gumagamit ng property list na format na may root type na Dictionary. Ang mga pangunahing key sa pinakamataas na antas: NSPrivacyTracking (Boolean), NSPrivacyTrackingDomains (Array), NSPrivacyCollectedDataTypes (Array), NSPrivacyAccessedAPITypes (Array).

Mga key sa pinakamataas na antas

Ang key na NSPrivacyTracking — boolean value na nagpapahiwatig kung ang application ay gumagamit ng tracking (nangangailangan ng ATT). Kung true, dapat ding tukuyin ang NSUserTrackingUsageDescription sa Info.plist. Ang key na NSPrivacyTrackingDomains — array ng mga domain kung saan inilalapat ang tracking.

Ang key na NSPrivacyCollectedDataTypes — array ng mga diksyunaryo, bawat isa ay naglalarawan ng uri ng nakolektang data: kategorya (NSPrivacyCollectedDataType), obligasyon (NSPrivacyCollectedDataTypeLinked), layunin (NSPrivacyCollectedDataTypePurposes). Kasama sa mga layunin ang: pagmamarka ng mga third party, analytics, pagpapaunlad ng produkto at pag-personalize ng nilalaman.

Ang key na NSPrivacyAccessedAPITypes — array ng mga diksyunaryo para sa bawat kategorya ng Required Reason API: kategorya (NSPrivacyAccessedAPITypeReasons) — tiyak na dahilan mula sa aprubadong listahan ng Apple at NSPrivacyAccessedAPIType — identifier ng kategorya ng 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>

Mga kategorya ng data sa NSPrivacyCollectedDataTypes

Ang mga uri ng data ay nahahati sa ilang kategorya: impormasyon ng contact (pangalan, email, telepono), pananalapi (data ng pagbabayad), mga identifier (IDFA, User ID), data ng paggamit (log, click), diagnostic (crash logs) at nilalaman ng user (mga larawan, video, file). Bawat kategorya ay may karagdagang marka bilang „nakaugnay sa user" (linked) o „hindi nakaugnay" (not linked).

Ang linked ay nangangahulugan na ang data ay nakaugnay sa account ng user; ang not linked — ang data ay pinagsama-sama o na-anonymize. Depende sa markang ito kung paano ipinapakita ng Apple ang label ng privacy: ang linked data ay minarkahan ng dilaw, ang not linked — berde.

Aling API ang nangangailangan ng pagbanggit ng dahilan

Ang Apple ay nagtalaga ng ilang kategorya ng API, na ang bawat paggamit ay dapat may kasamang tiyak na dahilan mula sa aprubadong listahan. Ang dahilan ay isang natatanging code, halimbawa C617.1 o 35F9.1, na tumutugma sa isang tiyak na layunin na pinapayagan ng Apple.

Mga pangunahing kategorya ng Required Reason API

Ang kategoryang NSPrivacyAccessedAPICategoryFileTimestamp ay may kasamang API para sa pag-access sa mga timestamp ng file (creationDate, modificationDate). Mga dahilan: C617.1 (pag-sync ng file), 3B52.1 (backup), 0A2A.1 (anti-fraud).

Ang kategoryang NSPrivacyAccessedAPICategoryDiskSpace ay may kasamang API para sa pagsusuri ng libreng espasyo sa disk (NSFileManager. Mga pagsusuri (NSFileManager). Mga dahilan: E174.1 (pamamahala ng cache), 85F4.1 (pag-download ng nilalaman), B728.1 (diagnostic).

Ang kategoryang NSPrivacyAccessedAPICategorySystemBootTime ay may kasamang API ng pag-access sa oras ng pag-boot ng system (uptime). Mayroon lamang isang dahilan: 35F9.1 (pagsukat ng oras ng session para sa analytics). Anumang iba pang paggamit ay itinuturing na fingerprinting.

Kumpletong listahan ng mga kategorya ng API

  • FileTimestamp — access sa mga timestamp ng file, pinapayagan para sa pag-sync at backup
  • DiskSpace — pagsusuri ng libreng espasyo, pinapayagan para sa pamamahala ng cache at pag-download
  • SystemBootTime — uptime time, pinapayagan lamang para sa analytics ng session
  • UserDefaults — access sa UserDefaults ng iba pang application, ganap na ipinagbabawal
  • ActiveKeyboards — listahan ng mga aktibong keyboard, pinapayagan para sa mga developer ng IME
  • SystemAperture — laki ng notch sa screen, pinapayagan para sa mga photo at AR application

Bawat kategorya ay may 1 hanggang 5 aprubadong dahilan. Ang developer ay obligadong pumili ng dahilan na pinakaangkop sa aktwal na paggamit ng API. Ang pagbibigay ng hindi tamang dahilan ay maaaring humantong sa pagtanggi ng build o pag-block ng account.

Mga kinakailangan para sa third-party SDK

Simula Mayo 1, 2024, lahat ng third-party SDK — parehong binary at open source — ay obligadong isama ang Privacy Manifest sa kanilang package. Sinusuri ng Apple ang mga manifest para sa lahat ng dependencies, at kung hindi bababa sa isang SDK ang walang manifest, ang build ay tatanggihan.

Ang mga malalaking SDK (Firebase, Adjust, AppsFlyer, Facebook SDK) ay na-update na ang kanilang mga package. Kung ang iyong proyekto ay gumagamit ng hindi gaanong kilalang SDK, suriin ang bersyon nito at kung kinakailangan i-update ito o makipag-ugnayan sa developer. Ang pansamantalang solusyon — manu-manong pagdagdag ng manifest para sa SDK sa proyekto, ngunit hindi ito inirerekomenda dahil sa mga pagkakaiba sa mga pag-update.

Paano gumawa ng Privacy Manifest sa Xcode

Ang Privacy Info.xcprivacy ay maaaring gawin sa pamamagitan ng built-in na template ng Xcode 15+ o manu-mano. Tatalakayin natin ang parehong opsyon.

Paggawa sa pamamagitan ng Xcode 15

Sa Xcode 15 ay idinagdag ang template ng Privacy Manifest: File → New → File → Resource → Privacy Manifest. Gumagawa ang Xcode ng file na may pangunahing istraktura at pinupunan ang NSPrivacyTracking at mga walang laman na array para sa API at data. Pagkatapos gawin, kailangan mong manu-manong tukuyin ang mga dahilan para sa bawat ginamit na Required Reason API.

Ang template ay awtomatikong nagdaragdag ng file sa pangunahing target. Kung ang proyekto ay may maraming target (Extensions, Watch app), kailangan mong idagdag ang manifest sa bawat isa. Hindi sinusuri ng Xcode ang pagkakaroon ng manifest sa mga dependencies sa yugto ng compilation — tanging sa yugto ng pag-archive.

swift
// AppDelegate: pagsusuri ng manifest sa yugto ng pag-develop
import Foundation

func validatePrivacyManifest() {
    guard let path = Bundle.main.path(
        forResource: "PrivacyInfo", ofType: "xcprivacy"
    ) else {
        print("PrivacyInfo.xcprivacy not found")
        return
    }
    guard let dict = NSDictionary(contentsOfFile: path)
    else { return }
    print("Privacy manifest loaded: \(dict.count) keys")
}

Manu-manong paggawa sa pamamagitan ng XML

Maaari kang gumawa ng PrivacyInfo.xcprivacy nang manu-mano bilang isang ordinaryong XML property list file. Para dito, lumikha ng file na may pangalang PrivacyInfo.xcprivacy, isulat ang standard na header ng plist at magdagdag ng root dictionary na may mga kinakailangang key. Siguraduhin na ang file ay naidagdag sa target (Target Membership).

Ang manu-manong paraan ay kapaki-pakinabang kapag kailangan mong magdagdag ng manifest sa isang static na library o Package Manager dependency nang hindi ginagamit ang interface ng Xcode. Pagkatapos ng compilation, suriin kung ang file ay nakapasok sa binary sa pamamagitan ng utos na nm o pag-archive.

Pagsusuri ng manifest bago ang publikasyon

Bago ipadala ang build sa App Store, kailangan mong suriin kung ang Privacy Manifest ay tama at kumpleto. Ang Apple ay nagbibigay ng ilang mga tool sa pagsusuri.

Built-in na validator ng Xcode

Sa pag-archive ng proyekto (Product → Archive) ang Xcode ay nagsasagawa ng pagsusuri ng mga manifest. Kung may nakitang error — kawalan ng manifest, maling dahilan, walang laman na kategorya — ang pag-archive ay nagtatapos sa error. Ang log ng error ay ipinapakita sa Issue navigator na may indikasyon ng problematikong SDK at kategorya ng API.

Ang karagdagang pagsusuri ay isinasagawa ng App Store Connect sa pag-upload ng build. Kung ang validation ay nabigo, ang build ay tinatanggihan na may awtomatikong email na naglalaman ng identifier ng problematikong API at inirerekomendang pag-aayos.

Pagsusuri sa pamamagitan ng command line

Para sa automation ng pagsusuri, gumamit ng mga script na nagsusuri ng binary para sa paggamit ng Required Reason API. Apple ay nagbibigay ng tool na libtool at mga script ng pagsusuri ng simbolo, ngunit ang komunidad ay nakabuo ng mas maginhawang mga utility.

bash
# Paghahanap ng paggamit ng FileTimestamp API sa binary
nm MyApp.app/MyApp | grep "NSFileCreationDate"

# Pagsusuri ng pagkakaroon ng PrivacyInfo.xcprivacy sa application
find MyApp.app -name "*.xcprivacy"

Mga karaniwang error sa validation

Ang pinakakaraniwang error — kawalan ng manifest sa isa sa mga SDK. Kahit na ang pangunahing target ay naglalaman ng manifest, sinusuri ng Apple ang lahat ng binary nang hiwalay. Ang pangalawa sa pinakakaraniwan — maling code ng dahilan: paggamit ng dahilan para sa isang kategorya ng API na may API mula sa ibang kategorya.

Ang pangatlong error — labis na deklarasyon ng mga API na hindi talaga ginagamit. Ang mga developer ay nagdaragdag ng lahat ng posibleng dahilan "kung sakali", na nag-aalarma sa mga tagasuri ng Apple. Idagdag lamang ang mga kategorya na talagang ginagamit. Gamitin ang static analyzer ng Xcode para sa pagsusuri.

Mga Madalas Itanong

Ano ang mangyayari kung walang Privacy Manifest?

Simula Mayo 1, 2024, tinatanggihan ng Apple ang anumang build na walang manifest. Ang error ay nangyayari sa yugto ng pag-upload sa App Store Connect. Ang mga lumang application ay hindi hinaharangan, ngunit ang mga update ay nangangailangan ng sapilitang pagsasama ng manifest.

Kailangan ba ang Privacy Manifest para sa mga application ng iPadOS?

Oo, ang manifest ay sapilitan para sa lahat ng platform ng Apple: iOS, iPadOS, macOS, tvOS, watchOS at visionOS. Ang mga kinakailangan para sa Required Reason API ay pare-pareho para sa lahat ng platform, bagaman ang mga set ng API ay maaaring bahagyang magkaiba.

Paano magdagdag ng manifest para sa third-party SDK?

Kung ang SDK ay hindi nagbigay ng manifest, lumikha ng hiwalay na file na PrivacyInfo.xcprivacy at idagdag ito sa grupo ng SDK sa proyekto. Tukuyin ang mga dahilan para sa API na ginagamit ng SDK na ito batay sa dokumentasyon ng SDK.

Maaari bang tanggihan ng Apple ang build dahil sa maling dahilan?

Oo. Sa awtomatikong pagsusuri, inihahambing ng Apple ang mga idineklarang dahilan sa aktwal na mga tawag sa API. Ang hindi pagkakatugma ay humahantong sa pagtanggi. Sa manu-manong pagsusuri, ang tagasuri ay maaaring humingi ng paliwanag.

Sinusuri ba ang Privacy Manifest para sa Swift Package Manager?

Oo, sinusuri ng Apple ang mga manifest para sa lahat ng dependencies, kasama ang SPM. Ang mga provider ng package ay obligadong isama ang PrivacyInfo.xcprivacy sa kanilang mga repository. Nagbabala ang Xcode tungkol sa mga nawawalang manifest sa pag-archive.

Buod

  • Privacy Manifest — sapilitang file na PrivacyInfo.xcprivacy para sa lahat ng application at SDK mula 2024
  • Required Reason API — 6 na kategorya ng API na nangangailangan ng deklarasyon ng tiyak na dahilan ng paggamit
  • Mga Dahilan — natatanging mga code (C617.1, 35F9.1), bawat kategorya ay may 1-5 pinapayagang dahilan
  • SDK — bawat third-party SDK ay dapat maglaman ng sariling manifest sa binary
  • Validation — sinusuri ng Xcode ang manifest sa pag-archive, App Store Connect sa pag-upload
  • Mga Deadline — simula Mayo 1, 2024 lahat ng bagong build ay dapat maglaman ng manifest
  • Gumawa ng PrivacyInfo.xcprivacy sa pamamagitan ng template ng Xcode at ideklara lamang ang talagang ginagamit na API

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din