### iOS判断App是否需要更新 无需后台支持

新上传的App可能没法通过http://itunes.apple.com/lookup?id来获取到信息,这样的话就需要后台的接口来支持了

直接获取AppStore上面的App信息,省去了后台单独写接口支持
话不多说,直接上代码

/**
 判断AppStore是否有新版本
 
 @param appId      appId
 @param completion block回调
 */
+ (void)isUpdatedInAppStoreWithAppId:(NSString *)appId Completion:(void (^)(BOOL isUpdate, NSString *newVersion, NSString *updateLog))completion;
+ (void)isUpdatedInAppStoreWithAppId:(NSString *)appId Completion:(void (^)(BOOL, NSString *, NSString *))completion{
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appId]];
    NSString *appInfo = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    NSData *data = [appInfo dataUsingEncoding:NSUTF8StringEncoding];

    NSError *error;
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
    if (error) {
        NSLog(@"解析失败:%@",error);
    }
    NSDictionary *infoDict = dict[@"results"][0];
    NSString *updateLog = infoDict[@"releaseNotes"];
    NSString *newVersion = infoDict[@"version"];
    NSString *oldVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
    BOOL isUpdate = NO;
    if ([oldVersion compare:newVersion options:NSNumericSearch] == NSOrderedAscending) {
        isUpdate = YES;
    }
    completion(isUpdate,newVersion,updateLog);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,238评论 4 61
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,684评论 7 249
  • 留意到思路准备的巨大意义。并不需要过渡精心准备。只要一个大致思路,有某些关键点、某些故事素材即可。过于精心准备就缺...
    sageness阅读 1,430评论 0 0
  • 我已经有一周多没有更新自己的文章了,因为不知道写什么,也不知道是否要继续写下去。这一周我在干嘛呢?我将自己泡在《奇...
    Be_Jessica阅读 3,720评论 0 4
  • Apple 在 iOS4 中添加 addObserverForName 方法,给予开发者可以在block中处理 N...
    PonyCui阅读 7,906评论 0 3