我们正在开发的应用程序使用应用程序包中包含的二进制文件。
由于需要处理该文件,并且在某些情况下需要重写该文件,因此应用程序会在首次启动时或每当应用程序支持中缺少该文件时,都会将此文件复制到“库/应用程序支持”目录中。然后,应用程序每次启动时都会从应用程序支持加载此文件并使用其中包含的数据。
由于Application Support目录在每次应用程序安装/升级时都会保留,因此我们需要在安装或升级应用程序时删除该目录下的上述二进制文件,并从应用程序包中重新复制它,以确保二进制文件文件结构与最新版本的应用程序兼容。
在以下两种情况下我们需要这样做:
- 在开发过程中,每次我们从 XCode 重建并安装应用程序
- 一旦上线,每次用户从 AppStore 升级应用程序时
有什么方法可以检测该应用程序是否已安装或重新安装在设备上?
正如 rmaddy 所说,确保更新的(可能)干净方法是使用 info.plist 文件中的变量,但这并不能解决准确了解是否需要更新或过度更新的问题。
老实说,我不知道苹果是否会让它通过验证,但您可能可以存储并检查可执行文件的最后修改日期。如果它早于某个日期,则更新。这么粗暴的版本控制机制看起来有点复杂。不能在二进制文件中包含版本号吗?
要检查日期:
NSString *exePath = [[NSBundle mainBundle] executablePath];
NSDictionary *exeAttrs = [[NSFileManager defaultManager] attributesOfItemAtPath:exePath error:nil];
NSString *lastModDate = [exeAttrs objectForKey:@"NSFileModificationDate"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)