今天小編分享的科技經驗:蘋果2024春季新政策,對第三方SDK重拳出擊,歡迎閲讀。
給 API 一個必要理由
自從 2021 年 iOS14.5 推出 IDFA 新規後,無論蘋果是真的想保護消費者隐私,還是像很多 " 友商 " 評價的一樣:本質是為了增加自己的廣告服務收入,蘋果對隐私保護的政策正在變得越來越嚴格。
當時 ATT 框架幾乎給 iOS 手遊和應用的推廣帶來毀滅性的打擊,彼時還叫 Facebook 的 Meta 也在當年遭遇了巨大的滑鐵盧,甚至在後續推出了包括 ASC 在内的一系列黑盒廣告產品,但無可否認的是無論是電商還是應用和遊戲,由于 eCPM 的大幅下滑,整個蘋果的應用生态還是發生了翻天覆地的變化。
從隐私保護的角度來説,ATT 框架無疑是成功的,大量用户選擇拒絕被追蹤,但不可否認的是在整個 ATT 框架内依舊有一個相對明顯的漏洞——安裝在遊戲和應用内的各種 SDK。
事實上,這些第三方 SDK 在很大程度上減輕了開發者的負擔,但不可否認的是:無論是開發者還是用户,都很難發現各種 SDK 中隐藏的隐私風險,或者説的更直白一點,繞過 ATT 框架收集用户信息的可能性。
于是在 2023 年 WWDC 上,蘋果就宣布了新的 SDK 隐私清單和籤名,以便用户更好的了解第三方 SDK 使用和收集數據的方式。
與此同時,Xcode 會在開發者準備上架和分發 App 時,為開發提供一份該 App 中使用的所有的第三方 SDK 的隐私清單合并成一個簡單的報告。通過該報告讓開發者能夠全面的了解自己使用的所有第三方 SDK,從而更輕松的創建準确的隐私标籤。
這麼做的原因也很簡單,因為蘋果要求所有的開發者如果使用第三方 SDK,那麼他們就需要對 App 中 SDK 包含的所有代碼負責,并且清晰地了解 SDK 是如何收集和使用用户數據的。從某種程度上來説,這就是将侵犯隐私和審查 SDK 的風險和責任轉嫁給了開發者,因此提供一些便利自然也在情理之中。
總的來看,這次 2024 春季隐私清單政策主要就是兩個關鍵:蘋果創建了一個第三方 SDK 隐私清單和籤名;以及開發者為什麼要使用某個 API 流程。
01 隐私清單和 SDK 籤名到底是什麼?
首先來看隐私清單,其實所謂的第三方隐私清單(privacy manifest),本質上就是讓 SDK 開發人員提供他們 SDK 是如何收集數據的,這樣就能夠讓 App 開發者在集成各種 SDK 的時候,就能迅速得到一份詳細的相關報告,從而避免額外手機不必要的用户數據。
更進一步來説,如果開發者在 App 内集成了不止一個 SDK,上文中所説的 Xcode 也能夠簡單的将第三方 SDK 中的多個隐私清單合并,最終導出一個報告匯總,從而讓開發者能夠清晰且全面的了解自己所使用的全部 SDK 是如何收集并應用這些數據的。
由此,開發者就能在提交 App Store 審核時,能夠更好且更清晰的在後台提供自己 App 的隐私标籤,在 App Store 的後台明确自己 App 的數據收集和使用場景,從而讓用户能夠在詳情頁就清楚的指導該 App 收集了哪些數據,并且将會把這些數據用在什麼地方。
除此之外,蘋果還要求 SDK 的開發者提供SDK 籤名。具體來看,有了 SDK 籤名,當應用這作者在自己的應用中采用一個第三方應用新版本的時候,Xcode 會對其是否由同一個開發者籤名進行驗證,提升軟體供應鏈的完整性。説的簡單直白一點,就是蘋果希望通過籤名認證的方式,來确保 SDK 不會在開發的過程中被篡改。
經過籤名認證後的 SDK ,在 Xcode15 會顯示對應的 Signature 信息,如果一旦發現本次前面和上次不一致,那麼 Xcode 就會讓編譯失敗并彈出警告。雖然目前來看,蘋果并沒有要求所有的 SDK 強制使用籤名,但如果這一 SDK 涉及到隐私手機,尤其是出現在下面列表中的這些 SDK,則一定要添加相關籤名。
需要隐私清單和籤名的 SDK:蘋果還專門列出了一個在 App Store 常用的 SDK 清單,并且表示," 自 2024 年春季開始,當您在 App Store Connect 中提交包含這些 SDK 的新應用程式時,或者當您提交的更新包含這些 SDK 的時候,必須包含下面列出的任何 SDK 的隐私清單。在将列出的 SDK 用作二進制依賴項的情況下,也需要籤名。所列 SDK 的任何版本,以及對列表中的 S DK 進行重新打包的任何 SDK,都包含在規定中。"
具體 SDK 列表截圖如下:
02 給 API 一個必要理由
除了隐私清單之外,本次新政策最為關鍵的則是所謂的《必要理由 API 申明》。
簡單來説,就是蘋果只做了一個新的 API 分類,開發者則需要使用這個分類在隐私清單裏面説明為什麼需要調用該 API 接口。從目前的情況來看,蘋果可能是期望通過此舉來規範 App 使用這些 API 做各種 Fingerprinting 識别行為。
相關的 API 總計有 5 個:
File timestamp APIs
System boot time APIs
Disk space APIs
Active keyboard APIs
User defaults APIs
也就是説,如果 SDK 和 App 裏用到了分類裏的這些 API ,那麼開發者就需要在隐私列表裏填寫為什麼要使用這些 API 的原因。
總結一下,本次 iOS 隐私清單主要覆蓋的有:
SDK 提供隐私清單的數據收集類型、使用描述和用途
必要理由的 API 需要提供使用 " 代碼 " 和原因
ATT 跟蹤添加網域名區分
第三方 SDK 籤名
而這一切,都會在 2024 年春季落地。