zoukankan      html  css  js  c++  java
  • iOS开发中检测版本,有新版本则更新

    iOS程序自动提示更新的实现方案大致分为两种:
    第一种,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 。
    第二种,就是利用苹果的appstore 提供的相关api进行查询更新。
     
    由于此前没有找到iOS程序更新的方法,就用了第一种方式,但后来发现了一些问题,自己提供服务器,需要维护,程序提交更新后,由于苹果需要审核,中间会有时间差,这个时间不好把握。后台就找苹果的相关文档,终于找到了。
    http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html
     
    实现机制:
     
    #define APP_URL @"http://itunes.apple.com/lookup?id=你程序的appId"
     
      ASIFormDataRequest *formRequst = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:APP_URL]];


    请求网络数据,返回的大致数据如下,其他还有好多数据,我们把关键的给截取出来

    {  
        resultCount = 1;  
        results =     (  
                    {  
                artistId = 开发者 ID;  
                artistName = 开发者名称;
                price = 0;
                isGameCenterEnabled = 0;  
                kind = software;  
                languageCodesISO2A =             (  
                    EN  
                );
                trackCensoredName = 审查名称;  
                trackContentRating = 评级;  
                trackId = 应用程序 ID;  
                trackName = 应用程序名称";  
                trackViewUrl = 应用程序介绍网址;  
                userRatingCount = 用户评级;  
                userRatingCountForCurrentVersion = 1;  
                version = 版本号;  
                wrapperType = software;
          }  
        );  
    }  

    取得这些数据后关键的信息就是“ version”最新版本号和“ trackViewUrl”程序地址。然后与本地程序的版本比较即可。





    上面的build 对应info.plist文件里的“Bundle version”字段,供程序调试用,即内部调试版本号,不是显示在appstore上面的

    version 对应info.plist文件里的“Bundle versions string, short”字段,这才是真正的版本号,显示在appstore上的。由于之前学习的时候,上网查资料,有好多人老是把这两个给弄混了,我也纠结了一会, 特此说明一下,以备记忆。

    //获取appstore最新的版本号
    NSString *newVersion = [rightDic objectForKey:@"version"];
        
    //获取应用程序的地址        
     NSString *newURL = [rightDic objectForKey:@"trackViewUrl"];
             
    //取得本地程序的版本号    
    NSDictionary *localDic =[[NSBundle mainBundle] infoDictionary];
                 NSString *localVersion =[localDic objectForKey:@"CFBundleShortVersionString"];
                
                NSLog(@"appStore 版本号为:%@ 本地版本号为:%@",newVersion,localVersion);

    以下便是比较,这两个版本号是否一致来决定是否更新,简单,故略之。有需要的可以留言联系。

  • 相关阅读:
    进阶 | 手把手教你模拟键盘和鼠标操作ActionChains
    做web自动化时,定位元素常用方法有哪些?
    C# 自定义控件无法查看视图设计:文件中的类都不能进行设计,因此未能为该文件显示设计器
    Windows Server时间服务器配置方法
    MySQL 8.0主从(MasterSlave)配置
    VMware VSphere Client克隆虚拟机
    VMware vSphere Client给虚拟机增加硬盘
    nginx负载+mysql8.0双主实现
    Java
    关于awvs和nessus的api的说明
  • 原文地址:https://www.cnblogs.com/limicheng/p/4089494.html
Copyright © 2011-2022 走看看