ios 实现版本更新检查

Swift-App版本管理包括版本检测和强制更新 App版本管理,包括版本检测和强制更新 立即下载

注:这里网络请求用的是第三方框架:SVHTTPRequest

/*

  第一步: 根据应用名称搜索应用,然后根据应用绑定的ID在结果中筛选出我们要找的应用,并取出应用的AppID

*/ 

- (void)getAppID {

    processView  = [[UIProcessViewalloc]initWithFrame:self.view.framewithText:@"检测中..."];

    [processViewstartAnimating];

    [self.viewaddSubview:processView];

    [SVHTTPRequestPOST:@"http://itunes.apple.com/search"

             parameters:[[NSDictionaryalloc] initWithObjectsAndKeys:APP_NAME,@"term",@"software",@"entity",nil]

             completion:^(id response, NSHTTPURLResponse *urlResponse, NSError *error) {

                 

                 if (!error&&[urlResponse statusCode]==200) {

                     NSData *data = (NSData *)response;

                     id res = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableContainerserror:nil];

                     NSLog(@"res.class==%@",[res class]);

                     NSLog(@"res == %@",res);

                     NSLog(@"results class == %@",[[res objectForKey:@"results"]class]);

                     NSArray *arr = [res objectForKey:@"results"];

                     for (id config in arr)

                     {

                         NSString *bundle_id = [config valueForKey:@"bundleId"];

                         if ([bundle_id isEqualToString:APP_BUNDLE_IDENTIFIER]) {

                             [processView stopAnimating];

                             app_id  = [config valueForKey:@"trackId"];

                             updateURL = [config valueForKey:@"trackViewUrl"];

                             NSString *app_Name = [config valueForKey:@"trackName"];

                             NSString *version = [config valueForKey:@"version"];

                             NSLog(@"app_id == %@,app_Name == %@,version == %@",app_id,app_Name,version);

                             [self checkUpdate:version];

                         }

                     }

                 } else {

                     [processView stopAnimating];

                     [CTCommonUtilsshowAlertViewOnView:self.viewwithText:@"检测失败,当前无网络连接!"];

                 }

             }];

}

 

/*

  第二步:通过比较从App Store获取的应用版本与当前程序中设定的版本是否一致,然后判断版本是否有更新

*/

- (void)checkUpdate:(NSString *)versionFromAppStroe {

    NSDictionary *infoDict = [[NSBundlemainBundle] infoDictionary];

    NSString *nowVersion = [infoDict objectForKey:@"CFBundleVersion"];

    NSLog(@"nowVersion == %@",nowVersion);

    [processViewstopAnimating];

    //检查当前版本与appstore的版本是否一致

    if (![versionFromAppStroe isEqualToString:nowVersion])

    {

        UIAlertView *createUserResponseAlert = [[UIAlertView alloc] initWithTitle:@"提示" message: @"有新的版本可供下载" delegate:self cancelButtonTitle:@"下次再说" otherButtonTitles: @"去下载", nil];

        [createUserResponseAlert show];

    } else {

        [CTCommonUtilsshowAlertViewOnView:self.viewwithText:@"暂无新版本"];

    }

}

#pragma mark - AertView delegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex == 1) {

   //去appstore中更新

        //方法一:根据应用的id打开appstore,并跳转到应用下载页面

        //NSString *appStoreLink = [NSString stringWithFormat:@"http://itunes.apple.com/cn/app/id%@",app_id];

        //[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreLink]];

        

        //方法二:直接通过获取到的url打开应用在appstore,并跳转到应用下载页面

        [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:updateURL]];

 

    } else if (buttonIndex == 2) {

        //去itunes中更新

        [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"itms://itunes.apple.com/cn/app/guang-dian-bi-zhi/id511587202?mt=8"]];

    }

 

}

#pragma mark -

 

版本检查更新(ios) ios版本检查更新,不影响上线 立即下载

相关推荐

Ultrascale/Ultrascale+ FPGA GTH IP及结构详解(一)

FPGA GTH Transceiver

houzi6320的博客 1万+

检测版本更新

本篇文章完美的阐述了应用启动和手动版本的检测原理!#import "HYBVersionManager.h" #import "UIAlertView+Blocks.h" #define kRequestTimeOut 60.0 @interface HYBVersionManager () { int _type; UIAlertView *_alertView; }

骁驰的技术和产品专栏 771

CanMV K230实战:用MicroPython玩转AI视觉识别(附完整代码)

本文详细介绍了如何使用MicroPython在CanMV K230开发板上实现AI视觉识别,包括环境搭建、摄像头配置、模型部署及优化技巧。通过实战案例(如智能门禁和工业分拣机器人),展示如何快速开发低门槛的嵌入式AI应用,特别适合初学者和嵌入式开发者。

x8y9z0的博客 1142

IOS 怎样实现APP版本更新

1.Apple官方(iTunes.apple.COM/lookup?id= 664863479) 第一次上线无id需要后台处理 2.后台 代码如下: 当前运行版本信息可以通过info.plist文件中的bundle version中获取: [cpp] view plaincopy     NSDictionary *infoDic = [[NSBun

yulong_du的专栏 559

使用MLP解决OCR问题(OpenCV)(下)

分类模型:        分类模型涉及的一个比较关键的问题就是输出的10维向量是如何与具体的类别挂钩的。实际上:10维向量的每一位都代表一类,在对于训练集的表达中,如果输入数据是0,则10维向量的第一位赋值为1,其余均为0。即0对应[1,0,0,0,0,0,0,0,0,0]。MLP模型训练完成后,就需要对用户输入的数据所属类别进行判定。这时得到的输出数据基本不可能是正好的所属类为1,其他位置为0

qq_18515405的专栏 1906

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和LWIP搞定RMII以太网(附复位与PHY地址避坑指南)

本文详细解析了STM32F407与LAN8720通过RMII接口实现以太网通信的完整流程,重点解决了网口不通的常见问题。从硬件连接到CubeMX配置,再到LWIP网络参数设置,提供了复位时序、PHY地址配置等关键细节的避坑指南,帮助开发者快速排查和解决以太网通信故障。

weixin_33695082的博客 419

iOS检查版本更新

在我们使用应用时,一打开应用,如果此应用有新的版本,常常能在应用中给出提示,是否要更新此应用。所以,我们就来看看,版本更新是如何实现的。 应用 苹果给了我们一个接口,能根据应用id请求一些关于应用的信息。我们可以根据返回的信息,来判断版本是否和应用的版本一致,如果不一致,那么就出现新的版本了。这时,就需要向用户提醒有新的版本,需要更新。具体步骤如下: ?...

whuizhou的专栏 948

第7.1章:StarRocks性能调优——查询分析

第7.1章:StarRocks性能调优——查询分析

爱吃辣条的博客 6476

Swift 自动检测版本更新,并弹窗提示

1、获取Apple Id 要监测 App Store 上的版本,需要获取该 App 的 AppleId 登录 App Store Connect 后,在 App 信息中,获取AppleId 2、监测对比App Store的版本 通过如下代码获取当前安装的应用版本和App Store上的最新版本,并做对比 let appId = "****" 这里的 **** 就是刚刚获取的Apple ID //MARK: - 检查更新 let appId = "****" fun...

weixin_41454168的博客 3533

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1129

YOLOv8改进 | 主干网络 | 增加网络结构增强小目标检测能力【独家创新——附结构图】

YOLOv8改进,小目标检测,yolov8

kay_545 6019

终极指南:如何使用Siren实现iOS应用自动版本检查与更新提示

Siren是一款强大的iOS开源库,能够自动检测App Store上的应用新版本并向用户显示更新提示。本文将详细介绍如何利用Siren的现代Swift并发架构,轻松实现专业的应用版本管理功能,提升用户体验和应用留存率。 ## 为什么选择Siren进行版本检查? 在竞争激烈的App Store生态中,及时推送应用更新对保持用户活跃度至关重要。Siren通过简洁的API和灵活的配置选项,让开发者能

gitblog_00895的博客 321

43_AI短片实战第十六弹:AIGC补充特写镜头——首尾帧衔接与多图抽卡技巧

本文介绍了使用Templa AI平台生成"怪兽爬车"特写镜头并衔接"甩尾摔下"动作的完整流程。首先通过AI生成4张怪兽趴在车顶的特写画面,重点选择展示怪兽与车顶关系的构图(16:9比例)。然后将选定的首帧图与已有尾帧图输入AI,生成7秒左右的过渡视频,实现从"稳定趴车"到"开始摔落"的自然衔接。整个过程展示了单图抽卡策略、首尾帧选择标准,以及如何利用AI生成时间进行其他剪辑任务的并行处理方法。最终产出包括特写首帧图、过渡视频文件和更新后的剪辑项目。

Open 76

iOS开发之获取App Store的上架信息(包括版本号)并实现检查更新

由于iOS app不允许检查更新,凡是app在上架审核时出现“检查更新”字样的都有可能被打回,而检查更新功能是产品经理最念念不忘的重要功能(内心一万个草泥马。。。),作为攻城狮的我们自然要想方设法实现这一功能。 既然ios在审核时不允许检查更新,那我们何不抓住审核漏洞,也即在审核时不出现检查更新而在实际使用时出现呢。答案就是获取当前app在App Store上的版本信息,并将此版本号与提交审核的a...

weixin_34024034的博客 946

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ios开发之应用程序检查更新功能的实现

#pragma mark - 检查更新 - (void)checkUpdateWithAPPID:(NSString *)APPID { //获取当前应用版本号 NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [appInfo obje

smile全政的专栏 2086

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iOS开发-检查版本更新与强制更新控制

iOS开发-检查版本更新与强制更新控制。在开发中经常遇到需要检查版本,检查版本及请求appstoreLookUrl查看版本号与当前的版本号进行比对,看是否需要更新。强制更新控制,是将获取到当前版本号传给服务端,服务端判断当前的版本是否需要强制升级。

一名开发者 1457

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ios 关于如何在app里面设置版本更新功能

代码示例如下: #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad];               self.title = @"版本检测更新";

cxiao_11的博客 4048

iOS 如何实现实时版本更新

转载请注明出处!!! 虽然苹果禁止应用内更新,但是有时候仍需要弹出更新提示。但是iOS审核需要时间,如何实时获取信息判断是否更新呢。我们可以获取App Store中app的信息来判断。代码如下: - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 1.直接...

weixin_30279751的博客 93

iOS 版本更新提示

在#import "AppDelegate.h" 文件中的application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中调用检测结果  获得发布版本的Version 比较

MyHaloJ 605

H5 App实现热更新,不需要重新安装app

直接上代码吧,你竟然搜到了我的文章就应该知道了,为什么要热更新 //app热更新下载 //假定字符串的每节数都在5位以下 function toNum(a) { //也可以这样写 var c=a.split(/\./); var c = a.split('.'); var num_place = ["", "0", "00", "000", "0000"], r = num_plac...

ASP.NET 1099

iOS检查更新的方法

iOS检查更新的方法 一些应用要检查更新,基本思路是获取当前版本号,然后解析url里面的版本号,并讲2者进行对比判断。代码如下: - (IBAction)button:(id)sender { NSString * string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@”http://itunes.apple.

LY_iOS的博客 954

iOS开发之检查APP版本更新

现在的AppStore商店中,很多APP都具备提示用户更新版本的功能,而在我刚开始做iOS开发的时候,无法绕开iOS审核的机制,所以曾经令我很困扰。 今天刚刚开通优快云博客,就把这个分享给还没有了解这方法的同学们。 下面是我自己的注释代码,大家可以看一下,有问题的同学随时交流。 /// @brief 获取到得最新版本号 @property (nonatomic ,copy)

WJP19930121的博客 564
上一篇: IOS 开发,调用打电话,发短信,打开网址
下一篇: IOS键盘的相关设置(UITextfield)
iOS-董彬
博客等级 码龄13年 29粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值