【问题标题】: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 版本,而不是他的应用程序版本。
  • 首先,为什么要这样做?其次,执行此操作时要小心,运行您的应用程序的设备可能无法运行最新版本的 iOS。特别是如果您想通知用户。如果您的应用需要特定版本的 iOS,请将其设置为您的部署版本。
  • iOS 中没有任何东西可以为您提供最新版本的 iOS。显然,必须有一个 API 设置应用程序用来做同样的事情。但我认为这不会公开。您可以管理您的服务器以保持最新版本的 iOS

标签: ios objective-c operating-system version


【解决方案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
猜你喜欢
  • 2018-01-18
  • 2018-12-04
  • 1970-01-01
  • 2014-12-28
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
相关资源
最近更新 更多