美文网首页自专题iOS征服iOS
iOS开发之获取APP在AppStore中的版本号

iOS开发之获取APP在AppStore中的版本号

作者: 1c7d21358574 | 来源:发表于2015-12-10 21:41 被阅读14910次

    导语

    开发中我们可能会遇到这样的需求,当AppStore中有新版本迭代更新,在用户点开APP的时候弹框提醒客户去AppStore更新APP。这里面就有个关键点,判断当前APP与AppStore中的版本高低,若一样,则无需进行提示;反之则弹框提示(用户使用版本不会比AppStore版本高)。下面就讲一下如何获取APP在AppStore中的版本,惯例直接上代码,O(∩_∩)O

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager POST:@"https://itunes.apple.com/lookup?id=414478124" parameters:nil success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
            NSArray *array = responseObject[@"results"];
            NSDictionary *dict = [array lastObject];
            NSLog(@"当前版本为:%@", dict[@"version"]);
        } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
            [SVProgressHUD showErrorWithStatus:@"请求失败!" ];
        }];
    }
    

    简单介绍一下上面的代码,请求链接中的id为APP在AppStore中的一个序号,你可以看成一个唯一标识符,下面放几张图片给还不清楚如何获取的同学科普下,我们以微信为例


    QQ20151210-0@2x.png
    QQ20151210-1@2x.png

    返回的responsObjet返回的是一个字典,results键取出来是一个单个元素的数组,所以我用lastObject这个方法取的元素(当然你也可以firstObject或者[0]),数组取出的元素同样是一个字典,version键对应的值就是AppStore中的版本号。字典里的所有键值对几乎涵盖了APP在AppStore中的各种信息,有兴趣的小伙伴可以打个断点在控制台po一下,就酱紫啦~

    相关文章

      网友评论

      • 翻滚的炒勺2013:有没有发现请求回来的版本号不稳定
      • 须臾以北____:同意一楼看法,但个人认为不需要请求接口(因为可能出现网路差,服务器卡等数据返回延迟问题,如果在审核的时候出现就gg了)来判断状态:

        UIKIT_EXTERN BOOL isPayBtnHidden; //此变量定义为全局变量

        isPayBtnHidden=当前提交版本号>商店版本号;

        审核状态: isPayBtnHidden
        非审核状态:! isPayBtnHidden
      • 咖啡绿茶1991:应用程序还没有发布,如何获取它的id啊 求解
        blus_lee:你再itunes connect 创建要发布应用的时候会生成个id
      • Love_Ju: 你好,我现在遇到的问题就是。在对apple发送这个接口的时候(https://itunes.apple.com/lookup?id=我的app ID )获取的version与在App Store上面实际version不一样,请问这个是有一定的延迟吗?
        凡夫俗子_1b81:@成长路上多迷惑 我的也是有 延迟 通过这个接口获取的version 与刚刚发布的版本号对不上 怎么破
        成长路上多迷惑:老铁 , 你这个问题找到原因了吗。 是延迟 ?
        1c7d21358574:@Love_Ju 可能是延迟,我拿微信和我司app测试,都是一致的
      • blus_lee:你好,获取的version 对应程序里面的version版本还是build版本啊?
        成长路上多迷惑:@Love_Ju 我现在也遇到这个问题了, 我上线版本号是1.9.4。 接口请求回来的还是1.9.3
        Love_Ju:你好,我现在遇到的问题就是。在对apple发送这个接口的时候(https://itunes.apple.com/lookup?id=我的app ID )获取的version与在App Store上面实际version不一样,请问这个是有一定的延迟吗?
        1c7d21358574:@blus_lee AppStore里怎么会是build呢:joy:
      • unhangcorn:好人一生平安
      • ccbd8f44e39b:你好,我请求下来的还是空的
        1c7d21358574:@ccbd8f44e39b 你仔细检查下报的什么错,看哪里写错没?
      • 暗夜夜夜行路:你好,现在网址已经变成了https,望周知
        未来可期me:那http有数据还能用不
        1c7d21358574:多谢提醒
      • 哼哈猿:多谢分享!
      • 郑明明:可以的
      • shushuzhen:为什么走的还是失败的回调?作者能回复吗?
      • Li_Cheng:你好 解析出来是空的 为什么
      • iOSNoteByNiu:什么东东啊,空
      • 笨笨编程:你好,我今天发布了一个应用在AppStore上面,只有一个版本,我怎么获取到的results数组为空哇!
        王浩_wh:请问app只在国内上架,resultcount为0,这样还可以怎样获取AppStore上的版本号
        笨笨编程:@会飞的猪tou 解决了,因为我的APP设置了只在国内,所以resultcount为0
        会飞的猪tou:@笨笨编程 我也是返回个数为0,数组为空,你解决了吗
      • 村里竹竿:博主您好,如果我的APP是第一次发布,是没有id的吧,当我下个版本的时候,怎么提示更新?
        我的天空蔚蓝色:@遥遥锅锅 创建好APP就有了.....
        1c7d21358574:@村里竹竿 你好,发布之后就会有了

      本文标题:iOS开发之获取APP在AppStore中的版本号

      本文链接:https://www.haomeiwen.com/subject/jsdyhttx.html