iOS----获取系统启动时间和App安装(更新)时间

Posted 普通网友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS----获取系统启动时间和App安装(更新)时间相关的知识,希望对你有一定的参考价值。

2020年发生了很多事情,是多灾多难的一年
想了一下,今年的最后一篇博客还是写给ios吧,毕竟是我开始工作赚钱学会的第一份技能
2020年的最后一天,跟时间有关,所以写一篇关于时间的博客提醒一下自己,第一批90后已经30岁了。。。

获取系统的启动时间,原理很简单,就是获取kernel_task的启动时间,kernel_task大家都知道,系统主进程,系统挂了他也挂,系统起了他也起,所以获取kernel_task的启动时间就相当于获取到了系统的启动时间。

#include <sys/sysctl.h>

+ (void)boots 
    struct timeval boottime;
    int mib[2] = CTL_KERN, KERN_BOOTTIME;
    size_t size = sizeof(boottime);

    if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
    
        NSLog(@"%@", [NSNumber numberWithLong:boottime.tv_sec]);
    

获取App安装、更新时间,方法也很取巧,就是查看info.plist的创建时间,每次更新App的时候info.plist会重新创建,因此可以作为获取App安装时间的绝佳方式。

+ (NSNumber *)appUpdateTime 
    NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:bundlePath error:nil];
    NSDate *date = [fileAttributes objectForKey:NSFileCreationDate];
    return [NSNumber numberWithDouble:date.timeIntervalSince1970];

与50位技术专家面对面 20年技术见证,附赠技术全景图

以上是关于iOS----获取系统启动时间和App安装(更新)时间的主要内容,如果未能解决你的问题,请参考以下文章

苹果iOS系统下检查第三方APP是否安装及跳转启动

iOS获取app图标和启动图片名字(AppIcon and LaunchImage's name)

如何禁止苹果手机ios系统自动更新

[转-备忘]iOS11.0后APP的图标和启动图

iOS APP启动广告实现方式 与 APP唤端调用

Appium自动化测试框架