如何规避苹果审查,实现app store上的app版本强制更新

原创 2016年08月30日 17:38:31

要想规避苹果审查,我们需要通过调用数据接口来控制调用app 版本强制更新功能:当苹果在审查的时候,我们可以通过后台数据控制关闭版本强制更新功能,等苹果审核通过以后我通过后台控制打开版本强制更新功能。下面是app 版本强制更新功能实现的代码:


AppDelegate.h文件

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate,UIAlertViewDelegate>

@property (strong, nonatomic) UIWindow *window;


@end


AppDelegate.m文件

#import "AppDelegate.h"

#import "ViewController.h"
@interface AppDelegate ()
{
    ViewController *vc;
}
@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    

    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
    
    self.window.backgroundColor = [UIColor whiteColor];
    
    vc = [[ViewController alloc]init];
    
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
    
    self.window.rootViewController = nav;
   
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {

    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    
    [vc checkVersion];

    
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {

    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    

    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end




ViewController.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

-(void)checkVersion;
@end


ViewController.m文件


#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    self.title = @"版本检测更新";
    
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    
    [self checkVersion];   //检测升级

    
    
}


-(void)checkVersion
{
    NSString *newVersion;
    NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=1139094792"];//1137865162
    NSString *jsonResponseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
//    NSLog(@"通过appStore获取的数据信息:%@",jsonResponseString);
    
    NSData *data = [jsonResponseString dataUsingEncoding:NSUTF8StringEncoding];
    id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    
    NSArray *array = json[@"results"];
    
    for (NSDictionary *dic in array) {
        
        
        newVersion = [dic valueForKey:@"version"];
        
    }
    
//    NSLog(@"通过appStore获取的版本号是:%@",newVersion);
    //    解析json数据
    //获取本地软件的版本号
    NSString *localVersion = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleVersion"];
    
    NSString *msg = [NSString stringWithFormat:@"你当前的版本是V%@,发现新版本V%@,请更新新版本哦!",localVersion,newVersion];
    
    //对比发现的新版本和本地的版本
    if ([newVersion floatValue] > [localVersion floatValue])
    {
        
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"升级提示"message:msg preferredStyle:UIAlertControllerStyleAlert];
        
        [self presentViewController:alert animated:YES completion:nil];
        
        

        
        [alert addAction:[UIAlertAction actionWithTitle:@"现在升级" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/yi-ka-tongbic-ban/id1139094792?l=en&mt=8"]];//1137865162
//            NSLog(@"点击现在升级按钮");
        }]];
       
        
    }
}




- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

相关文章推荐

iOS --------- 强制提示用户版本升级

// //  LoginAnRegisterViewController.m //  HengTaiXinGolf // //  Created by ouyangrong o...

IOS APP弹框检查更新 避免审核被拒

一.前言 1.第一次写博客,可以说网上资源的总结一下,雷同多有担待。 2.随着15年3月起app上架AppStore官方审核不允许提示更新升级的字样。可规则是死的 ,人是活的 。还是有空可钻的。 二...
  • csdnwwg
  • csdnwwg
  • 2016年05月19日 12:25
  • 7424

app版本更新的四种实现方式

版本更新大致分为四大类:app负责单版本检测测与更新(自己实现版本更新),通过苹果商店的自动更新机制进行自动更新和通过第三方平台实现版本检测与更新(如:友盟的版本检测与更新),app和服务器联合实现多...
  • jia12216
  • jia12216
  • 2015年11月06日 10:04
  • 13258

iOS开发中,应用内直接跳转到Appstore(适合版本强制升级和跳转appstore评分)

iOS开发中,应用内直接跳转到Appstore 1.进入appstore中指定的应用 NSString *str = [NSString stringWithFormat:  ...

iOS 加急审核流程以及从审核中移除构建版本

加急审核:对于已经上线的app如果发生账号安全漏洞,支付安全,闪退,等比较严重的问题,苹果为开发者提供了加急这个选择(试想,如果按照正常的审核流程一周左右,对于账号出现漏洞的app简直就是灾难);一般...

iOS跳转到AppStore,AppStore检查版本更新(上线会被拒),跳转到设置界面

1、现在的应用升级问题,苹果已经帮我们解决了,就是在我们应用中不需要提示升级问题,手机系统会自动给升级到最新版本(首先允许升级),但是还是有一些应用添加提示升级需求,这样的话,用户就能够自己去升级, ...

iOS 怎么在app里提示版本更新

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (vo...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)

在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求。之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦...
  • reylen
  • reylen
  • 2014年11月17日 14:20
  • 135879

苹果App Store审核条款

  • 2017年11月04日 17:40
  • 640KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何规避苹果审查,实现app store上的app版本强制更新
举报原因:
原因补充:

(最多只允许输入30个字)