我想检查我的应用程序以前是否安装在特定设备上。是否有任何编程方式可以这样做?
答案 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)
您可以使用钥匙串记录以前安装的应用程序的日志。