iOS 自動關閉行動數據
從客服收到回報的心路歷程, 國行版 iPhone
大綱
一、情境描述
二、資訊整理
三、問題釐清
實際上從接到問題到解決大致上分成這三個步驟,最後再整理一下過程中遇到的狀況和新得到的資訊。
上菜
一、情境描述
陸續收到客服回報 用戶使用 APP 無法正確連線
客戶A 截圖 : 一打開 APP 就跳出連線失敗的錯誤訊息
回:請用戶至設定檢查 APP 行動數據是否正確開啟
客戶B.C 影片: 一打開 APP 就跳出連線失敗的錯誤訊息,設定也有正確開啟行動數據,但進入 APP 後會自動關閉。
OS:
holy shit,發生什麼事情了,沒聽說過有這災情啊 ...
二、資訊整理
好吧,竟然真的有這種狀況的話就得好好研究一下,指不定我發現了什麼 iOS 的 BUG (笑。
觀察了 B.C 兩位用戶的操作示範影片,我條列了幾點要注意的地方
1. — 這是一個系統層級的 BUG,正常來說開發者是沒有權限更改用戶設定的
我大蘋果是不會讓上架的 APP 可以替用戶做系統層的行為
( 雖然有 WebView 幫用戶關機的黑暗法 ...)
2 . — 同樣使用繁體字,測試機的設定不同
不同之處:
1. 用詞不同 無線數據 vs 行動數據
2. 開關樣式不同 cell select vs switch
3 . — 火眼金睛的我觀察到一個共通點
QQ,真的是 QQ 讓我發現了這一切的關鍵,兩位用戶同時安裝了這個 APP
果斷開始改用中文關鍵字及中國相關開發平台搜尋。
三、問題釐清
出現了幾個令我恍然大悟的標題
- 国行独有BUG — — iOS10无线局域网权限问题解决方案
- iOS 10不提示「是否允许应用访问数据」,导致应用无法使用的解决方案
- 修复iOS 10首次安装app时,不会弹出”允许xxx使用数据?”授权框的bug
原因(大陸版本的裝置以下簡稱 國行版):
因配合中國大陸法規, iOS 10 以後國行版使用行動數據需要向用戶申明 (如同推播、相簿存取),因 iOS 系統 BUG 在用戶首次申明拒絕或根本沒跳出的情況下可能造成此狀況。
目前看平台討論從 iOS 10 ~ iOS 13.2 都有傳出災情
問題釐清後我立刻決定要查詢兩件事情的可行性
- 如何產生數據權限請求
數據權限請求的行為和一般使用推播、相簿及定位等功能相同,應該有類似的方式從 info.plist 引入
FTNetworkSupport 是在 PrivateFrameworks 詳情可以參考開發者解決方案的連結,只能用在企業 APP,一般上架給普羅大眾的話是沒辦法使用的。
- 如何分辨裝置為國行版
如果可以引入是否可以針對國行版裝置實作即可,避免影響其他版本的裝置
方法一、
從 UIDevice 讀取 identifier 只能分辨部分裝置為港版、國行版,新的裝置如 iPhone 11 等 id 是相同的。
方法二、
TA為台灣、ZP是港版、CH是國行、LL是美版
在專案中取得用戶裝置的機型型號
這也是私有 API,連結找不到 QQQ 有找到再補上
相關連結
一直以來都沒有意識到國行版這件事情,這次踩到這個洞想必對 Debug 很有幫助,希望能幫助到跟我一樣沒頭緒的開發者,不知道有沒有專精國行達人能幫我補充,有任何問題歡迎指正。