Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有没有办法检查应用程序是否已安装或更新?_Ios_Iphone - Fatal编程技术网

Ios 有没有办法检查应用程序是否已安装或更新?

Ios 有没有办法检查应用程序是否已安装或更新?,ios,iphone,Ios,Iphone,我已经发布了我的应用程序的一个版本。对于后续版本,我需要进行一些验证,以检查它是新安装还是更新(我无法使用NSUserDefaults或Document Directory,因为我的第一个版本已经发布)。您可以检查documents文件夹的创建日期。如果它在您的1.1版本发布之前,那么它就是一个更新 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); N

我已经发布了我的应用程序的一个版本。对于后续版本,我需要进行一些验证,以检查它是新安装还是更新(我无法使用NSUserDefaults或Document Directory,因为我的第一个版本已经发布)。

您可以检查documents文件夹的创建日期。如果它在您的1.1版本发布之前,那么它就是一个更新

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSDictionary* fileAttribs = [[NSFileManager defaultManager] attributesOfItemAtPath:documentsDirectory error:nil];
NSDate *result = [fileAttribs objectForKey:NSFileCreationDate];
NSLog(@"%@",result);

不,如果不检查以前版本存储的某些类型的数据,则无法执行此操作。您能解释一下为什么需要检测更新吗?您当然可以使用用户默认值。@rokoenes。我们已经发布了两个版本的应用程序(免费/专业版)。现在,我们将添加一个应用内购买版本。因此,我们想出了一个办法,从应用商店中删除免费应用,并更新专业版。我将解锁现有付费用户使用此专业功能。谢谢当您从备份或iCloud还原时,此功能也可以使用吗?@rckoenes我不知道还原后是否保存了属性。戴米森必须检查一下。我确信有一些边缘案例可以打破上述情况,但这是我能想到的最好的(唯一的?)方式。完全同意,只是希望你能对此有一些答案。你得到了我的支持,我不确定这是否有效。从文档:
当用户下载应用程序更新时,iTunes会将更新安装在新的应用程序目录中。然后,在删除旧安装之前,它将用户的数据文件从旧安装移到新应用程序目录@Segev我检查了一下设备,解决方案是有效的。但是有一些问题。我们必须相信系统日期和时间,rockoenes说从备份恢复。我认为这是处理这件事的唯一方法。