如何检测iOS应用程序已重新安装(从XCode)或升级(从AppStore)

Gia*_*uca 3 upgrade detect ios

我们正在开发的应用程序使用应用程序包中包含的二进制文件.

由于此文件需要处理并且在某些情况下需要重新编写,因此应用程序会在首次启动时或应用程序支持中缺少此文件时将此文件复制到库/应用程序支持目录中.然后,应用程序每次启动时都会从Application Support加载此文件并使用其中包含的数据.

由于每个应用程序安装/升级都会保留Application Support目录,因此我们需要在安装或升级应用程序时删除此目录下的上述二进制文件,并从应用程序包中重新复制它以确保二进制文件文件结构与最新版本的应用程序兼容.

我们需要在以下两种情况下执行此操作: - 在开发期间,每次我们从XCode重建和安装应用程序 - 每次用户从AppStore升级应用程序

有没有办法检测到应用程序已安装或重新安装在设备上?

kru*_*rug 5

确定更新的(可能)干净方法是使用info.plist文件中的变量,正如rmaddy所说,但这并不能解决确切知道是否需要或过度杀戮的问题.

我真的不知道Apple是否会让它通过验证,但你可以存储并检查可执行文件的最后修改日期.如果它比某个日期早,那么更新.拥有如此粗略的版本控制机制似乎有点复杂.你不能在二进制文件中包含版本号吗?

要检查日期:

NSString *exePath = [[NSBundle mainBundle] executablePath];
NSDictionary *exeAttrs = [[NSFileManager defaultManager] attributesOfItemAtPath:exePath error:nil];
NSString *lastModDate = [exeAttrs objectForKey:@"NSFileModificationDate"];
Run Code Online (Sandbox Code Playgroud)