對於 Apple 在 iOS 15 之後的隱私追蹤政策 App 程式所需的對應改變

近期因為有更新 iOS App 被 Apple 拒絕的問題,發現原本用來處理 Apple 要求的追蹤 Privacy 請求使用的AppTrackingTransparency,撰寫在AppDelegate類別的 FinishedLaunching方法中變得不行了。

此追蹤 Privacy 政策可詳見 Apple 的官網說明:
https://developer.apple.com/documentation/apptrackingtransparency


由於這是從 iOS 14.5 之後開始就有的全新的隱私追蹤政策,先前 App 撰寫其 AppTrackingTransparency,在AppDelegate類別 FinishedLaunching方法中撰寫,一直到 iOS 15.0.x 都能正確執行。

在 Apple 於 2020 年秋季開始實施此 追蹤 Privacy 政策 時,在本部落格也寫過一篇文章介紹:
https://dotblogs.com.tw/jamestsai/2020/12/18/The-new-privacy-of-Apple-Store-App-in-2020Q3-for-example-Taiwan-AskMaskFace-App

除了針對 App 要上架前須去 AppStore Connect 中完成 App 本身的隱私權宣告外,也需要在 App 當中的 info.plist 撰寫相關設定值。

並且也要執行 AppTrackingTransparency Manager 的程式運作,可參考以下連結介紹:
https://docs.microsoft.com/en-us/answers/questions/374387/ios-app-tracking-transparency.html

但不確定是在 iOS 15.1 之後,Apple 是不是又有針對此AppTrackingTransparency 的運作點又有進行什麼特殊的調整(有待查找資料…😮‍💨)。

導致於寫在 FinishedLaunching 方法當中的 AppTrackingTransparency ,在 15.1 版本以後 iOS 系統執行 App 時無法正確運作(也可能 iOS 15.0.x 之前 App 送審都還是有通過,所以就沒有發現此問題),進而 App 到 AppStore Connect 送審失敗。

本來還以為是 AppStore Connect 的隱私權宣告有問題,但後來查找了一下,發現也有其他的 iOS 開發者有類似的狀況:
https://www.jianshu.com/p/e9aebf32532c

而根據查找對照後 Xamarin.iOS 的 OnActivated 方法,是對應 iOS 原生 applicationDidBecomeActive 方法:

  1. https://stackoverflow.com/questions/45908331/what-is-the-correct-way-to-override-onactivated-in-xamarin-forms-am-getting-une
  2. https://stackoverflow.com/questions/30748555/when-is-applicationdidbecomeactive-called#30749362
  3. https://xamaui.net/xamarin-ios-onactivated

再根據 Microsoft docs 的官方文件說明:
https://docs.microsoft.com/zh-tw/dotnet/api/UIKit.UIApplicationDelegate.OnActivated


於是就確定要把原本寫在 FinishedLaunching 方法的 AppTrackingTransparency 的相關運作程式,改搬移到 OnActivated 方法當中撰寫, AppTrachingTransparency 就會被正確呼叫執行,改寫完成後重新封存,上傳新版到 AppStore Connect 送審通過,並且發行 App 成功!

😎😎😎

 

最後,若有要比較 Xamarin.iOS 跟 iOS 原生的 UIApplicationDelegate 設計的所有方法撰寫對照,請參考下列文件介紹:
https://docs.microsoft.com/en-us/dotnet/api/uikit.uiapplicationdelegate

 


 


I'm a Microsoft MVP - Developer Technologies (From 2015 ~).
MVP_Logo

I focus on the following topics: Xamarin Technology, Azure, Mobile DevOps, and Microsoft EM+S.

If you want to know more about them, welcome to my website:
https://jamestsai.tw 


相關 Xamarin(.Forms) 推廣活動與課程,請詳見下列 Accupass (活動通) 列表:
https://www.accupass.com/organizer/detail/1910170752158115281580
 

本部落格文章之圖片相關後製處理皆透過 Techsmith 公司 所贊助其授權使用之 "Snagit" 與 "Snagit Editor" 軟體製作。