我已經查了很多這和結論:如何檢測ios應用程序中的第一次運行?
- 宣傳ID
- 供應商ID
- 鑰匙扣
但據我所知,所有這些ID可以變化用戶可以在icloud設置中禁用鑰匙串。有人說使用NSUserDefault
,但是一旦刪除應用程序就會被刪除。
我想要實現的是在特定設備上檢測到第一次運行,即使卸載並重新安裝。
我是ios開發新手,有人可以幫忙嗎?提前致謝。
我已經查了很多這和結論:如何檢測ios應用程序中的第一次運行?
但據我所知,所有這些ID可以變化用戶可以在icloud設置中禁用鑰匙串。有人說使用NSUserDefault
,但是一旦刪除應用程序就會被刪除。
我想要實現的是在特定設備上檢測到第一次運行,即使卸載並重新安裝。
我是ios開發新手,有人可以幫忙嗎?提前致謝。
獲取供應商ID並將其存儲到鑰匙扣是您可以實現您的要求的最佳方式。
感謝您的快速回放。您是否意味着我保存到KeyChain的信息在用戶卸載並重新安裝我的應用程序時不會被更改或刪除?我會試試這個,謝謝。如果你的回覆會更好。 –
是的,當您第一次安裝應用程序時,請檢查鑰匙串中是否已有應用程序的供應商ID。如果你找到一個,用它作爲你的設備ID,否則獲得一個新的供應商ID並保存到鑰匙串。你可以使用SSKeyChain https://github.com/samsoffes/sskeychain。一個圍繞鑰匙鏈的簡單包裝,讓您的任務變得輕鬆。 :) –
謝謝,只是謝謝 –
嘗試從UserDefaults
中讀取一個您知道不存在的密鑰。
if UserDefaults.standard.bool(forKey: "YourAppNamePrefixHasRunBefore") {
// do whatever you need to do
UserDefaults.standard.set(true, forKey: "YourAppNamePrefixHasRunBefore") // set the key so on the next run this test fails
}
您可能需要驗證語法,但它應該非常接近。
感謝您的回覆,但userdefaults鍵/值用戶卸載我的應用程序後不會刪除對嗎? –
是的,它會被刪除。該商店特定於您的應用。如果您希望數據在卸載後保留,我誤解了這個問題。 –
基本上這些方式足以檢測,大多數用戶不會打擾重置廣告ID或鑰匙串,並且鑰匙串在設備中,icloud只是備份,因此您可以使用其中一種或兩種來檢測 – Tj3n
Hi Tj3n,你的意思是即使用戶禁用鑰匙串,即使用戶卸載並重新安裝我的應用程序,我的設置也會保存在本地設備中?謝謝 –
是的,他們似乎只是可能會消失,如果用戶恢復設備,這大多不會發生,重置廣告也99%的用戶不會做無論如何 – Tj3n