使用objective-c检查iOS更新是不是可用?

Posted

技术标签:

【中文标题】使用objective-c检查iOS更新是不是可用?【英文标题】:Check if iOS Update is available using objective-c?使用objective-c检查iOS更新是否可用? 【发布时间】:2018-06-20 15:45:00 【问题描述】:

如何使用 Objective-c 以编程方式将已安装的 ios 版本与最新的 iOS 版本进行比较?

【问题讨论】:

您可以使用 iTunes 搜索 api 在 iTunes 中查找您的应用程序。或者,您可以将当前应用版本放在云端的某个位置。 @Cy-4AH 他说的是 iOS 版本,而不是他的应用程序版本。 可能对你有帮助.. ***.com/questions/3339722/how-to-check-ios-version/… 首先,为什么要这样做?其次,执行此操作时要小心,运行您的应用程序的设备可能无法运行最新版本的 iOS。特别是如果您想通知用户。如果您的应用需要特定版本的 iOS,请将其设置为您的部署版本。 iOS 中没有任何东西可以为您提供最新版本的 iOS。显然,必须有一个 API 设置应用程序用来做同样的事情。但我认为这不会公开。您可以管理您的服务器以保持最新版本的 iOS 【参考方案1】:

您必须从网络服务中获取新版本号。这是因为如果您想从应用商店更新应用程序,那么您只需从面板中增加您的应用程序版本,您将在网络服务中获取它,然后您就可以像这样检查它(通过传递 Web 服务版本调用此方法):-

(BOOL)isUpdateAvailable:(NSString*)latestVersion 
 
    NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

    NSArray *myCurrentVersion = [currentAppVersion componentsSeparatedByString:@"."];
    NSArray *myLatestVersion = [latestVersion componentsSeparatedByString:@"."];
    NSInteger legthOfLatestVersion = myLatestVersion.count;
    NSInteger legthOfCurrentVersion = myCurrentVersion.count;
    if (legthOfLatestVersion == legthOfCurrentVersion)
    
        for (int i=0; i<myLatestVersion.count; i++)
        
            if ([myCurrentVersion[i] integerValue] < [myLatestVersion[i] integerValue])
            
                return true;
            
            else if ([myCurrentVersion[i] integerValue] == [myLatestVersion[i] integerValue])
            
                continue;
            
            else
            
               return false;
            
        
        return false;
    
    else
    
        NSInteger count = legthOfCurrentVersion > legthOfLatestVersion ? legthOfLatestVersion : legthOfCurrentVersion;
        for (int i=0; i<count; i++)
        
            if ([myCurrentVersion[i] integerValue] < [myLatestVersion[i] integerValue])
            
                return true;
            
            else if([myCurrentVersion[i] integerValue] > [myLatestVersion[i] integerValue])
            
                return false;
            
            else if ([myCurrentVersion[i] integerValue] == [myLatestVersion[i] integerValue])
            
                continue;
            
        

        if (legthOfCurrentVersion < legthOfLatestVersion)
        
            for (NSInteger i=legthOfCurrentVersion; i<legthOfLatestVersion; i++)
            
                if ([myLatestVersion[i] integerValue] != 0)
                
                    return YES;
                
            
            return NO;
        
        else
        
            return NO;
        
    

这将返回 bool 值,如果它返回 YES,那么您将拥有您的应用的新版本,如果不是,那么您的应用已更新版本。

【讨论】:

嗨,我不想知道我的应用程序的更新。我想将最新的 iOS 版本与设备上安装的 iOS 版本进行比较。感谢您的帮助。 aavdo 回答 hoy

以上是关于使用objective-c检查iOS更新是不是可用?的主要内容,如果未能解决你的问题,请参考以下文章

检查适用于 iOS 的可用软件更新

IOS / Objective-C:测试图像是不是存在[重复]

如何检查字体是不是在 iOS 版本中可用?

如何检查某个功能在特定 iOS 版本上是不是可用?

如何在 Qt5 中检查 url 是不是可用?

IOS - 使用 Youtube API 检查 Youtube 视频是不是存在