2017-02-03 162 views
0

我已經查了很多這和結論:如何檢測ios應用程序中的第一次運行?

  • 宣傳ID
  • 供應商ID
  • 鑰匙扣

但據我所知,所有這些ID可以變化用戶可以在icloud設置中禁用鑰匙串。有人說使用NSUserDefault,但是一旦刪除應用程序就會被刪除。

我想要實現的是在特定設備上檢測到第一次運行,即使卸載並重新安裝。

我是ios開發新手,有人可以幫忙嗎?提前致謝。

+0

基本上這些方式足以檢測,大多數用戶不會打擾重置廣告ID或鑰匙串,並且鑰匙串在設備中,icloud只是備份,因此您可以使用其中一種或兩種來檢測 – Tj3n

+0

Hi Tj3n,你的意思是即使用戶禁用鑰匙串,即使用戶卸載並重新安裝我的應用程序,我的設置也會保存在本地設備中?謝謝 –

+0

是的,他們似乎只是可能會消失,如果用戶恢復設備,這大多不會發生,重置廣告也99%的用戶不會做無論如何 – Tj3n

回答

1

獲取供應商ID並將其存儲到鑰匙扣是您可以實現您的要求的最佳方式。

+0

感謝您的快速回放。您是否意味着我保存到KeyChain的信息在用戶卸載並重新安裝我的應用程序時不會被更改或刪除?我會試試這個,謝謝。如果你的回覆會更好。 –

+0

是的,當您第一次安裝應用程序時,請檢查鑰匙串中是否已有應用程序的供應商ID。如果你找到一個,用它作爲你的設備ID,否則獲得一個新的供應商ID並保存到鑰匙串。你可以使用SSKeyChain https://github.com/samsoffes/sskeychain。一個圍繞鑰匙鏈的簡單包裝,讓您的任務變得輕鬆。 :) –

+0

謝謝,只是謝謝 –

0

嘗試從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 
} 

您可能需要驗證語法,但它應該非常接近。

+0

感謝您的回覆,但userdefaults鍵/值用戶卸載我的應用程序後不會刪除對嗎? –

+0

是的,它會被刪除。該商店特定於您的應用。如果您希望數據在卸載後保留,我誤解了這個問題。 –

相關問題