我在iOS应用商店中拥有一些支持iAd / AdMob的应用。我注意到每次iOS测试版发布时,广告请求都会直线下降。我假设这是由于许多人运行测试版操作系统,因此几乎总是得到一个iAd测试广告。我的代码是否有某种方式可以检测应用程序是否在Beta版操作系统上?这样我可以默认使用AdMob,这样我就可以获得一些收入。
答案 0 :(得分:7)
这不是一种特别漂亮的方式,但您可以阅读设备版本并将其与当前最新的已发布版本进行比较,如果设备版本较高,则还原为AdMob。
这将使设备版本成为字符串:
[[UIDevice currentDevice] systemVersion]
您可以将其转换为浮点值并将其与硬编码版本进行比较,但这意味着在新iOS发布后部署新版本:
if ([[[UIDevice currentDevice] systemVersion] floatValue] > 4.3)
{
// revert to AdMob...
}
作为一个更好的解决方案,您可以从网站请求当前最大的iOS发布版本...只需在您的网站上删除内容为“4.3”的iosversion.txt文件并使用它来控制交换机。
不幸的是,似乎没有[[UIDevice currentDevice] isBeta]
类型的方法。
答案 1 :(得分:-4)
根据传言,iOS版本8将于9月份推出。
所以,你可以使用:
NSDate *today = [NSDate date];
NSString *releaseDateString = @"2014-09-15 00:00:00";
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"yyyy-MM-DD HH:mm:ss"];
NSDate *release = [dateFormater dateFromString:releaseDateString ];
NSComparisonResult comp = [today compare:release];
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 && result == NSOrderedAscending) return @"Beta";
else return @"Release Version";
或获取网址:https://www.apple.com/ios/并检查iOS?
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
title = [title stringByReplacingOccurrencesOfString:@"Apple - iOS " withString:@""];
int version = [title intValue]; // 6, 7, 8...
}