發表文章

目前顯示的是 1月, 2016的文章

[iOS]如何使用Keychain

圖片
由於蘋果對於使用者的隱私像當重視, 因此iOS 5以後對於許多用來取得裝置的唯一值的API例如:IP_Address, Mac, IMEI等等都漸漸列為禁止使用, 直到iOS9問世後對於安全機制的設計也更加嚴謹. 於是 當我們需要取得這些資料時, iOS的限制簡直讓人抓狂呀!!為什麼在Android平台可以輕易取得的資料到了iOS竟然像是在破解金庫密碼一樣的困難重重呀!! 米羅我為此頭疼不已的時候, 偶然發現了一線曙光, 原來蘋果還替我們留了一條唯一的生路這個東西叫做UUID, 這個數值在每支手機上取得的資料都不一樣.(PS:有消息指出未來可能連UUID都會封殺掉!NO~) 話不多說了先來貼上取得UUID的程式碼唄 透過這樣簡單的一行程式碼我們就可以簡單取得UUID的資料, 正當米羅以為一切問題終於迎刃而解的時候, 卻發現了一件事情讓米羅猶如五雷轟頂般的驚嚇不已!!! 原來UUID雖然是唯一值但是卻不是手機的唯一值, 而是APP創建時所產的一組認證編碼, 也就是說一般來講只要使用者更新或刪除APP那麼每一次取得的UUID就是不相同的, 登愣~~這是什麼鬼呀!?竟然還有這個坑爹的玩意是想摔死所有開發者是吧, 瞬間髒話全部梗在喉嚨(在公司還是要注重形象的...汗)差點呼嘯而出呀, 可惡的蘋果呀!!老子跟你拼了 於是米羅我不死心再次拜請萬能的谷歌大神出來助陣, 在廣闊無邊的資訊苦海中, 經過了幾天的尋訪終於知道了一個秘密的終極武器他就是 KeyChain!!! 為什麼要使用KeyChain不是有NSUserDefault可以用嗎!?這個問題...問得好 米羅在此簡單地告訴你 所謂NSUserDefault他是類似Android的SharedPreferences, 專門用來儲存我們想透過程式存放在手機的資料, BUT!!!它只是儲存而已, 一旦使用者手癢還是手指頭扭到將我們辛苦撰寫的APP抹掉!!它就GG惹(不要問我什麼意思 乖~自己去查嘿) 也就是說NSUserDefault不是一個可靠的存在呀. 說了一堆廢話(不要扁我), 接下來米羅就要告訴大家為什麼要使用KeyChain來儲存資料了 所謂 KeyChain 顧名思義就是鑰匙圈的意思, 身為iOS的開發者應該對這個名詞都不陌生 沒錯!!這是我們要成為iOS的初心者之前一