如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息。
当前运行版本信息可以通过info.plist文件中的bundle version中获取:
- NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
- CFShow(infoDic);
- NSString *appVersion = [infoDic objectForKey:@"CFBundleVersion"];
这样就获取到当前运行的app的版本了
要获取当前app store上的最新的版本,有两种方法,
一、在某特定的服务器上,发布和存储app最新的版本信息,需要的时候向该服务器请求查询。
二、从app store上查询,可以获取到app的作者,连接,版本等。官方相关文档
www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.htm
具体步骤如下:
1,用 POST 方式发送请求:
http://itunes.apple.com/search?term=你的应用程序名称&entity=software
更加精准的做法是根据 app 的 id 来查找:
http://itunes.apple.com/lookup?id=你的应用程序的ID
#define APP_URL http://itunes.apple.com/lookup?id=你的应用程序的ID
你的应用程序的ID 是 itunes connect里的 Apple ID
2,从获得的 response 数据中解析需要的数据。因为从 appstore 查询得到的信息是 JSON 格式的,所以需要经过解析。解析之后得到的原始数据就是如下这个样子的:
{
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;
}
);
}
然后从中取得 results 数组即可,具体代码如下所示:
NSDictionary *jsonData = [dataPayload JSONValue];
NSArray *infoArray = [jsonData objectForKey:@"results"];
NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
NSString *latestVersion = [releaseInfo objectForKey:@"version"];
NSString *trackViewUrl = [releaseInfo objectForKey:@"trackViewUrl"];
如果你拷贝 trackViewUrl 的实际地址,然后在浏览器中打开,就会打开你的应用程序在 appstore 中的介绍页面。当然我们也可以在代码中调用 safari 来打开它。
UIApplication *application = [UIApplication sharedApplication];
[application openURL:[NSURL URLWithString:trackViewUrl]];
代码如下:
-(void)onCheckVersion
{
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
//CFShow((__bridge CFTypeRef)(infoDic));
NSString *currentVersion = [infoDic objectForKey:@"CFBundleVersion"];
NSString *URL = @"http://itunes.apple.com/lookup?id=你的应用程序的ID";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:URL]];
[request setHTTPMethod:@"POST"];
NSHTTPURLResponse *urlResponse = nil;
NSError *error = nil;
NSData *recervedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponseerror:&error];
NSString *results = [[NSString alloc] initWithBytes:[recervedData bytes] length:[recervedData length]encoding:NSUTF8StringEncoding];
NSDictionary *dic = [results JSONValue];
NSArray *infoArray = [dic objectForKey:@"results"];
if ([infoArray count]) {
NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
NSString *lastVersion = [releaseInfo objectForKey:@"version"];
if (![lastVersion isEqualToString:currentVersion]) {
//trackViewURL = [releaseInfo objectForKey:@"trackVireUrl"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新" message:@"有新的版本更新,是否前往更新?" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"更新", nil];
alert.tag = 10000;
[alert show];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新" message:@"此版本为最新版本"delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
alert.tag = 10001;
[alert show];
}
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag==10000) {
if (buttonIndex==1) {
NSURL *url = [NSURL URLWithString:@"https://itunes.apple.com"];
[[UIApplication sharedApplication]openURL:url];
}
}
}
相关推荐
以下是一句代码实现App版本检测并跳转至App Store更新的示例: ```swift if let appUrl = URL(string: "itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=\(Bundle.main.appStore...
在iOS应用开发中,定期检测并提示用户进行App版本更新是一项重要的功能,它能确保用户始终使用最新、最稳定、最安全的软件版本。本文将详细介绍如何在iOS中实现App版本检测以及设置强制更新策略。 首先,我们需要...
总之,开发iOS app时,开发者需要掌握正确的方法来检测和提示用户更新,同时遵循苹果的指导原则,确保提供良好的用户体验。这包括利用App Store Connect、静默更新和推送通知等手段,同时避免直接提示“当前版本”。...
"ios跳转appstore评论,判断是否评论"这个主题涉及到的是如何在iOS应用内部实现一个功能,该功能不仅能够直接链接到App Store以便用户撰写评论,而且还能智能地检测用户上次提交评论的时间,确保不会过于频繁地打扰...
首先,我们需要知道iOS中的版本更新通常有两种方式:通过App Store自动更新和在应用内部提示用户手动更新。自动更新是系统级别的设置,用户可以在设备的设置中开启或关闭。而应用内更新则需要开发者在代码中实现,...
通过这个“检测app版本”的DEMO,开发者可以学习如何实现这个核心功能,并结合自身项目需求进行定制,为用户提供更好的更新体验。记得在实际应用中,要兼顾用户体验和更新效率,同时保证数据传输的安全性。
这是一个从AppStore检测最新版本的工具类。 无需设置appid,bundleid等信息,可自定义按钮标题,自动从appStore获取更新信息提示用户更新。考虑的比较全面了,如果有什么问题,欢迎在我博客下留言。 苹果方便...
可根据自己需求在版本更新时编辑将要显示的弹出框信息,提醒用户去appstore进行更新.有关于应用内跳转 AppStore 代码。在描述过长的时候支持滚动查看描述信息.有问题欢迎大家交流指正. /** * 检查版本...
AYCheckVersion是一个轻量级的iOS库,它允许开发者轻松地检查App Store中的应用最新版本,并向用户显示提示信息,引导他们进行升级。以下是一些关键知识点: 1. **App Store Connect API**:AYCheckVersion利用了...
1. **版本检测**:在iOS应用中,通常通过与Apple App Store通信来检查当前应用的最新版本。这一过程可以通过调用特定的API实现,例如,可以使用`SKStoreReviewController`类的`requestMetadata`方法获取应用的元数据...
### iOS判断AppStore商店是否可以升级代码解析 在iOS开发中,经常需要检查应用程序是否有新版本可供用户更新。本文将详细介绍一个示例代码段,它能够帮助开发者轻松地实现这一功能。 #### 代码概述 本段代码实现...
详细介绍参考我的框架整体介绍检测APP应用最新版本、获取应用更新内容、提示用户版本更新。请求评论视图,限制每日最多出现次数、限制每次出现概率、限制最大出现次数避免用户反感。前往App Store评价应用,给以星级...
在iOS平台上,非App应用检查更新通常指的是那些不通过App Store进行分发的应用(例如企业内部应用或越狱应用)如何实现更新检测功能。这里我们参考提供的教程链接(已失效,但我们可以根据常规做法进行解释),来...
开发者首先在App Store Connect中上传新版本的二进制文件,并更新版本号和元数据,如描述、屏幕截图和新功能列表。一旦苹果审核通过,新版本就可供用户下载。 当用户安装了带有自动更新功能的应用,iOS系统会定期...
但往往我们都是直接给推广图片加了一个下载链接(App Store中的)。所以咱们来模拟一下用户的操作步骤: 1、用户第一次访问宣传页面 a、点击Banner,进入到APP Store中对应的APP下载页 b、APP下载页中提示:安装;...
3. **提示用户更新**:当检测到有新版本时,可以向用户展示一个友好的提示,告知他们有新版本可用,并提供更新链接或引导用户到App Store进行升级。 4. **处理更新逻辑**:设计一个优雅的更新提示界面,确保用户...
以上就是iOS应用检测并自动更新版本的基本流程和关键知识点。实际开发中,还需要考虑各种边界情况和用户体验优化,例如在网络不佳时的处理、更新频率的控制等。这个"ios-检测程序的版本的自动更新.zip" 文件可能包含...
在iOS应用开发中,"仿AppStore动画效果"是一个常见的设计需求,旨在为用户提供与官方AppStore类似的用户体验。这种效果通常包括动态弹框列表、点击Cell后的交互以及下拉返回等特性。以下将详细讲解这些知识点: 1. ...
当App Store检测到某款应用有新的版本可用时,系统会自动向用户展示一个通知,标题可能就是“iOS版本更新”,描述部分可能会提及“当AppStore中有版本更新时,app会弹出提示‘发现新版本1.0.x’,可以选择‘下次再说...
对于开发者证书和发布证书需要分别创建,开发者证书用于真机调试,发布证书用于提交到App Store。 - 上传上一步骤创建的证书请求文件(CSR),提交后会生成一个有效期为一年的`.cer`证书文件。 - 下载并双击安装该...