代码拉取完成,页面将自动刷新
最近开发项目有些功能需要上线才能打开(避免审核中的无效功能,被拒),临时写了一个管理类,AppStoreManager 来监控和区分线上的几种状态(未发布、更新、未更新),一句话来解决麻烦。
其实原理很简单获取本地版本号version,然后通过 itunes 的请求地址来获取当前AppStore上的状态,获取info.plist里面的 version 来进行判断,以下是 itunes 地址。 http://itunes.apple.com/lookup?id=%@
AFNetworking
#import "AppStoreManager.h"
[[AppStoreManager defaultManager] updateVersionWithAppID:@"这里写AppStore里的ID" complete:^(AppStoreType appStoreType ) {
switch (appStoreType) {
case appStoreTypeNot:
{
}
break;
case appStoreTypeUpdata:
{
}
break;
case appStoreTypeNormal:
{
}
break;
case appStoreTypeRequestError:
{
}
break;
default:
break;
}
}];
最近突然发现APP内给应用评分功能跳转到App Store之后提示“无法连接到App Store”,研究之后发现是iOS 11系统的适配问题,这里记录下解决方法。
if (@available(iOS 11.0, *)) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/idXXXXX?mt=8&action=write-review"]];
}else{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=XXXXX&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8"]];
}
#== AppStoreManager 2.0 ==
//比较版本的方法,在这里我用的是Version来比较的
+ (BOOL)compareVersionsFormAppStore:(NSString*)AppStoreVersion WithAppVersion:(NSString*)AppVersion;
//通过三个版本号来增加强更逻辑 (获取更新状态方法使用:0不提醒,1提醒更新,2强制更新)
+(NSString *)upDataTypeFormAppMaxVersion:(NSString *)maxVersion AppMinVersion:(NSString *)minVersion WithAppVersion:(NSString*)AppVersion;
//
// AppStoreManager.h
// emark
//
// Created by 巩小鹏 on 2018/7/30.
// Copyright © 2018年 neebel. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "AppStoreTool.h"
#import "UpdateView.h"
typedef NS_ENUM(NSInteger, AppStoreType){
appStoreTypeNormal = 0,//不更新
appStoreTypeNot = 1,//未上线
appStoreTypeUpdata = 2,//更新
appStoreTypeForceUpdata = 3,//强制更新
appStoreTypeRequestError = 4,//请求错误
};
@interface AppStoreManager : NSObject
+(instancetype)defaultManager;
/**
* @brief isOpenUI 是否使用默认 YES
*/
@property (nonatomic,assign) BOOL isOpenUI;
/**
* @brief appStoreUrl 跳转到appstore指定app更新的地址
*/
@property (nonatomic,copy) NSString * appStoreUrl;
/**
* @brief contentText 更新的内容 (必填)
*/
@property (nonatomic,copy) NSString * contentText;
/**
* @brief appVersion 当前版本号(可不填)
*/
@property (nonatomic,copy) NSString * appVersion;
/**
* @brief appVersion 最大版本号(必填)
*/
@property (nonatomic,copy) NSString * MaxVersion;
/**
* @brief appVersion 最小版本号(必填)
*/
@property (nonatomic,copy) NSString * MinVersion;
/**
* 初始化更新数据 (使用这个方法,以上数据可不填)
*
* @param MaxVersion 最大版本号
* @param MinVersion 最小版本号
* @param contentText 更新内容
*
* @param appStoreUrl 跳转到appstrore地址
* @param complete 返回AppStoreType状态
*
*/
-(void)initWithMaxVersion:(NSString *)MaxVersion
MinVersion:(NSString *)MinVersion
contentText:(NSString *)contentText
appStoreUrl:(NSString *)appStoreUrl
complete:(void (^)(AppStoreType appStoreType))complete;
/**
* @author Roger, 19-06-15 16:09:45
*
* @brief 网络获取appstore版本号进行比对是否更新
*
* @param appID appStoreID里创建的ID
* @param complete 返回AppStoreType状态
*/
- (void)updateVersionWithAppID:(NSString *)appID complete:(void (^)(AppStoreType appStoreType))complete;
/**
* @author Roger, 19-06-15 16:09:45
*
* @brief 版本号进行比对是否更新
*
* @param appVersion 更新版本号
* @param complete 返回AppStoreType状态
*/
- (void)updateAppVersion:(NSString *)appVersion complete:(void (^)(AppStoreType appStoreType))complete;
/**
* @author Roger, 19-06-15 16:09:45
*
* @brief 自定义更新状态.(配合 AppstoreTool 获取更新状态方法使用)
*
* @param versionType 设定的更新状态 例如:0不提醒,1提醒更新,2强制更新
* @param complete 返回AppStoreType状态
*/
- (void)updateAppVersionType:(NSString *)versionType complete:(void (^)(AppStoreType appStoreType))complete;
@end
//强更
// NSString * MaxVersion = @"1.0.2";
// NSString * MinVersion = @"1.0.1";
// NSString * Version = @"1.0.0";
//正常更新
// NSString * MaxVersion = @"1.0.2";
// NSString * MinVersion = @"1.0.1";
// NSString * Version = @"1.0.1";
//正常更新
NSString * MaxVersion = @"1.0.3";
NSString * MinVersion = @"1.0.1";
NSString * Version = @"1.0.2";
//强更
// NSString * MaxVersion = @"1.0.2";
// NSString * MinVersion = @"1.0.3";
// NSString * Version = @"1.0.1";
//不更新
// NSString * MaxVersion = @"1.0.2";
// NSString * MinVersion = @"1.0.2";
// NSString * Version = @"1.0.3";
[AppStoreManager defaultManager].appVersion = Version;
[[AppStoreManager defaultManager] initWithMaxVersion:MaxVersion MinVersion:MinVersion contentText:@"<br>1. 天气预报 -实时获取最新的天气预报,今天、后天、大后天 的天气情况,再也不怕出门没准备了。</br><br>2. 照相机 - 美颜滤镜,图片裁剪,以及自定义相册,快捷悬浮相机按钮 </br><br> 3. 图片编辑器 - 自定义添加贴图,文字,以及画板等功能</br><br>4. 日记 - 添加图文日记方式,可编辑图片和文字的方式写日志 ,记录生活的点点滴滴</br><br>5. 记账( 账单管理 ) - 记录每笔消费,还能以图形化的方式清晰的帮你分析消费方向</br><br>6. 节日提醒 - 记录生活中的那些特殊的日子,让准备做的更充足</br><br>7. 备忘录 - 动动手,记录下经常因为遗忘而想不起来的小东西的位置或方向,做好记忆储备。</br>" appStoreUrl:@"http://m.baidu.com" complete:nil];
正常的弹窗样式
强制更新的弹窗样式
#####Dome下载 (https://gitee.com/Gsohnago/AppStoreStatus.git)-码云 (https://github.com/Gongshaopeng/AppStoreStatus.git)-GItHub
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。