iOS 强制更新

article/2025/9/27 12:51:21

废话不多说,直接上代码

+ (void)getNewVersion
{NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=1036152564"]];NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {// 请求的数据转字典,必须判断数据有值才走里面,不然空的data会出现crashif (data.length > 0) {NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];NSString *newVersion = [result[@"results"] firstObject][@"version"];NSString *message = [result[@"results"] firstObject][@"releaseNotes"];NSString *trackViewUrl = [result[@"results"] firstObject][@"trackViewUrl"];//屏蔽苹果审核员看到此更新提示口(此版本每次提交前更新成目前线上版本号)if ([newVersion isEqualToString:@"2.5.0"])   return;// 获得当前打开软件的版本号NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];// 针对新下载用户如果是第一次下载 不会走里面代码。如果是老用户就会走里面代码if (![newVersion isEqualToString:currentVersion]) {UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"有新版本啦" message:message preferredStyle:UIAlertControllerStyleAlert];[alertVC addAction:[UIAlertAction actionWithTitle:@"马上尝鲜"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction * _Nonnull action) {[[UIApplication sharedApplication]openURL:[NSURL URLWithString:trackViewUrl]];}]];UIViewController *mainVc = [UIApplication sharedApplication].keyWindow.rootViewController;if (mainVc.presentedViewController) {mainVc = mainVc.presentedViewController;}[mainVc presentViewController:alertVC animated:YES completion:nil];}}}];[task resume];
}

这是我把强制更新做成一个继承NSObject工具类里面的代码,我的类是这样写的:
这里写图片描述

下面是调用方法(当然你一定要包含头文件)

这里写图片描述

我和苹果审核员对赌的游戏其实就一句话:

 //屏蔽苹果审核员看到此更新提示口(此版本号必须每次提交前更新成目前线上已上线版本号)if ([newVersion isEqualToString:@"2.5.0"])   return;

在上线之前一定要将此处的版本号改成你现在已经上线的版本号,我对赌的理由是,苹果审核员在审核我们的App的时候,他的手机或者pad上绝对没有安装我们之前的App,如果安装了的话,那他就会跟我们用户一样,会弹出更新提示框,这样我们的应用铁定是通过不了的,如果没安装,那他请求下来的version一定是跟我这里写死的是一样的,所以就会return掉,不会走后面的代码,事实证明,我赢了!但是这也不是绝对的,如果真有一天审核员心情好,一直留着你的App,那你就中奖了!

源码地址

转自:http://www.jianshu.com/p/b1196f50de82


http://chatgpt.dhexx.cn/article/gYqbO9wD.shtml

相关文章

uniapp APP端在线升级功能实现讲解——强制或可选升级,下载进度显示

文章目录 概要 需求分析 技术实现梳理 1.是否更新判断: 2.升级弹窗的展示 3.根据升级类型限制操作 4.下载APP监听下载进度 5.下载完自动安装 核心API讲解 1.plus.downloader.createDownload(url,options,completedCallback)(下载) 2.plus.r…

Windows如何一键永远禁止系统更新?

大家好,我是小寻,欢迎关注公众号:工具优选,免费领取优质项目源码和常用工具,还可以加入我的交流群! 一、工具介绍 想必大家也会与小编存在同样的困惑,为啥我电脑上的windows会频繁的强制系统升级?windows…

win10总强制更新?教你永久关闭

win10系统个人觉得还挺好用的,但是有一点非常烦人,就是隔三岔五强制自动更新! 相信也是大部分用户最不喜欢的一点。 更新后,系统可能还会出现一些bug,而且每次更新都要等上一段时间。对于每天工作繁忙的用户来说&…

解决Xshell/Xftp强制升级无法进入问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、首先创建一个Xshell.txt文件,用notepad打开 二、将以下代码复制入.txt文件 1.实例代码 2.保存文件,重命名 3.以管理员身份运行…

杰理强制升级工具4.0使用和原理解析

用那个有8个挡位的烧录工具(4.0工具)的话,默认是走USB的,不是走串口,工具的DP接芯片的DP,工具的DM接芯片的DM,工具的5V接芯片的VBAT(要保证能控制芯片供电通断才能从mask启动&#x…

无视Win11 TPM/英特尔芯片等配置,强制升级Win11

上次我写了一个DEV强制升级的文章,可是DEV版本的Windows11系统很不稳定,软件可能无法正常使用。这篇文以适用于任何电脑。建议看这篇文章哦! 1.下载映像 大家可以在网上找.iso映像,也可以点击此处。 在网站上找到[下载 Windows…

Android版本强制更新

目前的项目之中基本上都会存在版本更新的功能,分为强制更新和推荐更新,其实功能点都是一样的,推荐更新只是增加一个按钮让更新的弹框隐藏掉而已,这里仅记录强制更新的功能首先需要跟接口约定,需要判断是否弹出更新弹框…

强制更新客html页面,强制更新

强制更新 1. 什么是强制更新 当某个qp包希望用户快速下载到时,可以使用强制更新。 强制更新是为了解决出了故障或者希望某个版本(业务做活动)的QP 包能快速被更新到而设计的功能,使用起来也相当简单,只需要在发布QP 包的时候,选中…

微软将开启PC Win10 20H2正式版强制升级

本文转载自IT之家,IT之家3月4日消息 外媒 Windows Latest 报道,在未来几周或几个月内,微软表示将开始在运行过时版本操作系统的设备上安装 Windows 10 20H2 版本 “2020 年 10 月更新”。微软显然是在使用 “机器学习”来自动升级兼容硬件&am…

实战:去除未加固 Android App强制升级提醒

去除一个未加固APP的升级提示弹窗,我们先看看app 是否进行加壳,发现使用的是邦邦免费加壳 我们在测试机上安装这个APP,安装命令如下: adb installl C:\Users\Avenue\Desktop\AndroidFridaBeginnersBook-main\Chap05\com.hello.…

一步强制升级windows11

许多人想升级windows11,可是配置不允许啊 今天教大家一种方法绕过安全启动和TPM强制升级win11 首先,在微软官方网站下载正版win11镜像 https://www.microsoft.com/zh-cn/software-download/windows11/ 建议选择multi-edition版 这个版本是多版本混合…

OBS 实现强制升级功能

一,要实现的效果 版本更新后发布最新的OBS版本 到阿里云用户端打开OBS时,强制让用户从阿里云更新最新版本 二,OBS升级 底层逻辑 三,修改的地方 win-update.cpp //升级 线程 void AutoUpdateThread::run() try {long …

绕过限制,强制升级至Windows11

目录 以前…… 开始升级。 新界面预览 附:文档下载 注意:本教程使用Windows11 insider preview,可能会有系统崩溃等现象。如需安装普通版本,请参考此处。 以前…… 以前的强制升级是这样的: 点击此链接查看详情:http://www.pccppc.com/…

真我GT realme GT root权限 解锁BL 刷ROOT教程 免费 TWRP

realme GT root后变砖了 也可以联系技术远程救砖 http://www.aialbb.com/thread-1443-1-1.html 可以9008 刷机 开机 解决不开机问题 realme GT解锁及ROOT教程 刷机有风险 入门需谨慎 仅限GT 文件下载总链接查看链接 机型:realme真我GT 代号:RMX2202 地区:中国CN A.解锁BL锁 1…

谷歌系列手机刷机和面具ROOT教程

目录 一、环境介绍二、准备工具2.1 下载官方ROM2.2 下载Magisk文件2.3 下载TWRP文件 三、刷机四、安装面具五、总结 一、环境介绍 1.一台真机:本文使用的是pixel 1代 2.adb环境的配置:安装Android Stadio(AS)后,都会配置。 3.需要安装的镜像(…

Ubuntu的root

Ubuntu的root 介绍给root用户设置密码并使用引用 介绍 安装ubuntu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上 sudo。有的时候感觉很麻烦。 我们一般使用su命令来直接切换到…

一加6T手机Android10 root教程

一加六T手机Android10 root教程 刷机之前一定要备份!备份!备份! 第一步:准备文件第二步:准备工作第三步:解BL锁第四步:刷入第三方TWRP第五步:刷入Magisk 前言:一加6T手机…

root全攻略(root是什么 怎么root root能干什么)

首先讲什么是root 为了手机安全 我们是无法对手机系统进行修改 为的是防止用户的误操作比如直接把system删了 导致手机废掉 取得root就是取得android手机的最高控制权 很类似塞班的xx(破解) root好处 有了最高控制权 就可以修改手机所有地方 只要你有能力…

root手机教程

以前的root基本是su root,但是su不再维护更新之后,就有了现在的比su更好玩的root手机的工具→magisk。Magisk具备很强大的模块扩展,可以不修改system区的文件,达到修改system文件一样的效果,例如换字体,换主…

用安卓手机三步获取root权限教程

因为我有时候装一些软件需要手机的Root权限,而现在一些手机获取有非常的的麻烦,网上查怎样获取的时候各种广告各种坑,下载什么什么一件获得root权限的APP一般都是打广告的流氓软件,安装装后还给你装其它一大堆软件,也根…