亚洲gv猛男gv无码男同

欧洲熟妇色xxxx欧美老妇多毛 解決 iOS 15 上 APP 狼狈其妙地退出登錄

发布日期:2022-05-19 00:49    点击次数:151

欧洲熟妇色xxxx欧美老妇多毛

在 iOS 15 公開推出后, 我們開始從用戶端收到反饋報告:在打開我們的應用法子(Cookpad) 時他們被狼狈其妙的反復退出到登錄頁。特殊令人驚訝的是,這并不是我們在測試 iOS 15 beta 版的時候發現的問題。

如若你是來找修復时势的,那就平直向下滾動到結論,但如若你想了解更多關于我們若何調試這個特定問題,那就開始吧。

復現反饋的問題

用戶報告中的具體信息有限,我們唯独廓清的是:從 iOS 15 開始,用戶打開法子后會發現我方已經退出登錄。

我們沒有視頻,也沒有具體的步驟來重現這個問題,是以我勤奋嘗試以各種神志啟動應用法子,但愿能親眼看到它。我試著再行安裝應用法子,我試著在有網絡連接和沒有網絡連接的情況下啟動,我試著強制退出,經過30分鐘的勤奋,我放棄了,我開始回復用戶說我沒找到具體問題。

直到我再次解鎖手機,沒有做任何操作,就啟動了 Cookpad,我發現APP就像我們的用戶所反饋的那樣,平直退出到了登錄界面!

在那之后,我無法準確的復現該問題,但似乎與暫停使用手機一段時間后再次使用它有關。

縮小問題范圍

我擔心從 Xcode 再行安裝應用法子可能會影響問題的復現,是以在這樣做之前,是時候巡视代碼并試圖縮小問題的范圍。根據我們的實現,我想出了三個潛在的原因。

1、UserDefaults 中的數據被取销。

2、一個有时的API調用复返HTTP 401并觸發退出登錄。

3、Keychain 拋出了一個錯誤欧洲熟妇色xxxx欧美老妇多毛。

我能夠排斥前兩個潛在的原因,這要歸功于我在我方重現該問題后觀察到的一些玄妙行為。

登錄界面沒有条目我選擇地區——這标明UserDefaults中的數據沒有問題,因為我們的 "已顯示地區選擇 "偏好設置仍然奏效。 主用戶界面沒有顯示,即使是短暫的也沒有——這标明沒有嘗試進行網絡請求,是以 API 是問題原因可能還為時過早。

這就把Keychain留給了我們,带领我進入下一個問題。是什么發生了改變以及為什么它如斯難以復現?

是什么發生了改變以及為什么它如斯難以復現?

我和精辟地看了一下發布說明,在谷歌上快速搜索了一下,我找不到任何東西,是以我不得不繼續挖掘以更好地了解這個問題。

對Keychain數據的訪問是通過 Security[1] 框架提供的,這是一個眾所周知的难办的問題。雖然有许多第三方庫來包裝這個框架以使事情變得更容易,但我們還是基于一些蘋果的示例代碼來維護我們我方的簡單封裝。

看一下這段代碼,我們調用 SecItemCopyMatching[2] 时势來加載我們的訪問令牌,它复返數據以及描绘結果的 OSStatus 代碼。但是,祸害的是,雖然我們的封裝器會將不告捷的結果與狀態代碼一道拋出,用于調試,但我們鄙人一層中卻拋棄了這些信息,仅仅將錯誤視為 nil。

我們實行了每周一次的發布計劃,多虧了大宗的自動化。此時,我們即將發布的下一個铁心點(封版)是在第二天。因為我們還沒有透彻了解這個問題有多渊博,何况我們也不確定是否能夠在代碼凍結前發布一個修復法子, 十四以下岁毛片带血a级是以我愚弄這個機會通過使用Crashlytics(崩潰日记記錄器用) 增多一些額外的非致命性日记來解決劳苦可觀察性的問題。

雖然我們無法改變加載會話的行為,但我們能夠開始記錄錯誤并更好地記錄我們實現的當前行為。

這個結果給了我們一些很好的觀察點,然后我們不错在接下來的幾周內觀察。

在10.58.0和10.59.0版块中,受影響的用戶數量迟缓減少欧洲熟妇色xxxx欧美老妇多毛,這是由于我們在勤奋確定根柢原因時引入了一項緩解步调,該步调在10.60.0中获取了修復。

此時,我能夠捕捉到复返的確切錯誤代碼。首恶禍首是errSecInteractionNotAllowed[3]:

不允許與 Security Server 交互。

這個錯誤告訴我們,我們正試圖在數據不行用的時間點上從Keychain中讀取數據。這频繁會發生在你試圖讀取已存儲的數據,并將其可訪問性設置為kSecAttrAccessibleWhenUnlocked[4],而設備仍處于鎖定狀態。

現在這透彻說得通了,但唯独的問題是,在 Cookpad 中,我們只在應用啟動時從Keychain中讀取信息,而我的假設是,用戶一定是點擊了應用圖標來啟動應用,因此設備在這時應該總是解鎖的,對嗎?

那么,究竟發生了什么變化呢?即使我能夠重現這個問題,我也100%確定我的手機在我點擊應用圖標的時候是解鎖的,是以我不解白為什么會出現這個Keychain錯誤。

我決心找到原因,用一個調試器用替換了我們的應用法子的實現,該器用將嘗試并記錄其生命周期中不同節點的Keychain讀取。

在能夠復現問題的場景中,亚洲gv猛男gv无码男同我觀察到以下結果:

main.swift — 失敗 (errSecInteractionNotAllowed) AppDelegate.init() — 失敗 (errSecInteractionNotAllowed) AppDelegate.applicationProtectedDataDidBecomeAvailable(_:)— 告捷 AppDelegate.application(_:didFinishLaunchingWithOptions:) — 告捷 ViewController.viewDidAppear(_:) — 告捷

是以這(一半)解釋了它。為了幸免在我們的AppDelegate上持有一些隱式解包的可選屬性,我們在init()时势中進行了一些設置,其中一部分波及從Keychain中讀取訪問令牌。這即是為什么讀取會失敗,以及最終為什么一些用戶會發現我方被登出了。

我在這里學到了蹙迫的一課,即我不應該假設受保護的數據在AppDelegate运滚动時是可用的,但說實話,我還是不高興,因為我不解白為什么它不行用。畢竟,我們已經许多年沒有改變過這部分代碼了,何况它在iOS 12、13和14系統中一直運行精粹,那么是什么原因呢?

尋找根柢原因

我的調試界面很灵验欧洲熟妇色xxxx欧美老妇多毛,但它枯竭了一些有助于回话所有問題的蹙迫信息:時間。

我廓清在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保護的數據” 是不行用的,但它仍然沒专诚義,因為為了重現這個問題,我正在執行以下操作:

1、啟動應用法子 2、簡單使用 3、強制退出應用 4、鎖定我的設備并將其扬弃約 30 分鐘 5、解鎖設備 6、再次啟動應用

每當我在第 6 步中再次啟動應用法子時,我 100% 確定設備已解鎖,因此我堅信我應該能夠從 AppDelegate.init()中的Keychain讀取數據。

直到我看了所有這些步驟的時間,事情才開始變得有點意義。

再次仔細巡视時間戳:

main.swift — 11:38:47 AppDelegate.init() — 11:38:47 AppDelegate.application(_:didFinishLaunchingWithOptions:) — 12:03:04 ViewController.viewDidAppear(_:) — 12:03:04

在我真实解鎖手機并點擊應用圖標之前的25分鐘,應用法子自己就已經啟動了!

現在,我實際上從未想過有這么大的延遲,實際上是@_saagarjha建議我檢查時間戳,之后,他指給我看這條推特。

Twitter:Apple開發人員文檔的首頁

推特翻譯:原理的iOS 15優化。Duet 現在試圖先發制人地 "預熱" 第三方應用法子,在你點擊一個應用法子圖標前幾分鐘欧洲熟妇色xxxx欧美老妇多毛,通過dyld和預主靜態运滚动器運行它們。然后,該應用法子被暫停,隨后的 "啟動"似乎更快。

現在一切都說得通了。我們领先沒有測試到它,因為我們很可能沒有給 iOS 15 beta 版足夠的時間來 "學習" 我們的使用習慣,是以這個問題只在現實寰球的場景中再現,即設備認為我很快就要啟動應用法子。我仍然不廓清這種預測是若何酿成的,但我只想把它歸結為 "Siri智能",然后就到此為止了。

結論

從iOS 15開始,系統可能決定在用戶實際嘗試打開你的應用法子之前對其進行 "預熱",這可能會增多受保護的數據在你認為應該無法使用的時候的被訪問概率。

通過恭候application(_:didFinishLaunchingWithOptions:)寄予回調來保護我方,如若可能的話,属意UIApplication.isProtectedDataAvailable(或對應寄予的回調/奉告)并相應處理。

我們仍然發現了特殊少的非致命問題,在application(_:didFinishLaunchingWithOptions:)中報告isProtectedDataAvailable為false,在我們不错推遲從鑰匙串閱讀的訪問令牌除外,這將是一個大規模的任務,現在它不值得進行進一步調查。

這是一個相當難調試的bug,何况行為的變化似乎透彻沒有記錄,這對我來說竟然沒有幫助。如若你也被這個問題所困擾,請考慮復制FB9780579[5]。

我從中學到了许多東西,我但愿你也一樣!

更新: 自從發表這篇著述以來,實際上许多人都向我指出了蘋果公司關于預熱行為的相對完善的文檔[6]。但是,其别人也告訴我,他們仍然觀察到與某些場景中記錄的行為不同的行為,因此請謹慎行事。

參考資料

[1]Security:

https://developer.apple.com/documentation/security

[2]SecItemCopyMatching: https:

//developer.apple.com/documentation/security/1398306-secitemcopymatching?language=objc

人工智能产业是智能产业发展的核心,是其他智能科技产品发展的基础,近年来,中国人工智能产业在政策与技术双重驱动下呈现高速增长态势。根据中国信通院数研中心测算,2020 年中国人工智能产业规模为 3031 亿元人民币,同比增长 15.1%。中国人工智能产业规模增速超过全球。

当机器学习模型在有限的例子上进行训练时,它们往往会“过度拟合”。当机器学习模型对其训练示例执行准确,但不能推广到未见数据时,就会发生“过度拟合”。

以下将专门讨论分析阶段,这个过程首先将数据转化为信息,然后转化为知识(有时也称为业务逻辑)。然而,最终不会偏离物联网的核心主题,因为没有大数据的物联网对人们来说毫无意义。

11 月 30 日,高通发布的全新一代骁龙 8 移动平台(骁龙 8 Gen 1)让我们对即将推出的安卓旗舰手机有了期待,从最近解禁的跑分来看,这块芯片 GPU 峰值性能提升了 59.7%,在 GFXBench 上分数甚至要比 iPhone 13 Pro 的 A15 还要高。

[3]errSecInteractionNotAllowed:

https://developer.apple.com/documentation/security/errsecinteractionnotallowed?changes=_3

[4]kSecAttrAccessibleWhenUnlocked:

https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlocked

[5]FB9780579: https://openradar.appspot.com/FB9780579

[6]蘋果公司關于預熱行為的相對完善的文檔: https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/about_the_app_launch_sequence#3894431

 欧洲熟妇色xxxx欧美老妇多毛



上一篇:真实国产乱子伦清晰对白视频 淘寶iOS版上線自動深色款式 曾稱“史上難度最大適配”
下一篇:久久永久免费人妻精品下载 蘇明玉的絲巾,比蘇大強的花樣還多!