2017-02-03 174 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

是的,它会被删除。该商店特定于您的应用。如果您希望数据在卸载后保留,我误解了这个问题。 –

相关问题