前言:今天下午四点左右,APP更新了一个版本,且手动发布至AppStore
问题:
(1)大部分同事在20分钟后即可更新下载
(2)其余同事在更新时出现了问题:点击升级跳转至AppStore后,显示的是打开,而非更新,点击打开又会跳转至旧版应用,形成死循环结论:
(1)同事询问时,需要讲明缘由:苹果AppStore的CDN分发问题,是根据不同地区来分段更新缓存的,所以急不来,一般等一天就好了,也就是说代码什么的都是没有问题的
(2)尝试解决:点击AppStore切换底部tabbar来回切换几次,然后再去你自己的app界面查看可能会变为更新
【2018/02/28更新】
解决办法是:
(1)跳转至APPStore时发起网络请求进行强制更新APPStore,请求地址为:https://itunes.apple.com/cn/lookup?id=XXXXXXXX,其中id为该app在APPStore的唯一标识
(2)具体代码如下,其中NSDictionary返回的是APPStore中的app版本信息:
+ (NSDictionary *)getAppInfoFromAppstore{
__block NSDictionary * d = nil;
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); //创建信号量
NSURL *url = [NSURL URLWithString:@"https://itunes.apple.com/cn/lookup?id=1123427783"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setTimeoutInterval:10];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
d = dict;
dispatch_semaphore_signal(semaphore); //发送信号
}];
[task resume];
dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER); //等待
return d;
}