以编程方式检查用户以前是否安装了应用程序

时间:2016-02-19 11:57:08

标签: ios objective-c

我想检查我的应用程序以前是否安装在特定设备上。是否有任何编程方式可以这样做?

3 个答案:

答案 0 :(得分:2)

选项#1: 您可以使用NSUserDefaults或将标记保存到钥匙串,以便在卸载应用后不会丢失它,并检入application:didFinishLaunchingWithOptions:方法:

BOOL installFlag = get it from user defaults or keychain;
if (installFlag)
{
    //App was installed
}
else
{
    //This is the first install ever
    installFlag = YES;
    //Here save the YES value to user defaults or keychain
}

如果您要将旗帜保存到钥匙串,请使用钥匙扣包装器,例如this 之一。

此选项的弱点是,即使将标记保留在钥匙串中,重置设备设置后该值也可能会丢失,这就是为什么我更喜欢以下选项:

选项#2: 将标志远程保存在服务器数据库上,作为可以使用设备标识符的密钥:

NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

如果数据库中有当前设备标识符的记录,则必须检查是否已经安装了app,如果没有,则将标志和标识符添加到数据库中。 (但每次都需要互联网连接。)

答案 1 :(得分:2)

您可以使用keychain。但是当用户重置他/她的手机时,此值将丢失。 我认为除了您必须在您的应用中使用iAd之外,没有其他选项可用。 apple为重新安装应用程序后保持不变的唯一ID提供。

答案 2 :(得分:1)

您可以使用钥匙串记录以前安装的应用程序的日志。