检测app是否在iOS测试版上运行?

时间:2011-06-23 11:39:20

标签: iphone ios ipad iad

我在iOS应用商店中拥有一些支持iAd / AdMob的应用。我注意到每次iOS测试版发布时,广告请求都会直线下降。我假设这是由于许多人运行测试版操作系统,因此几乎总是得到一个iAd测试广告。我的代码是否有某种方式可以检测应用程序是否在Beta版操作系统上?这样我可以默认使用AdMob,这样我就可以获得一些收入。

2 个答案:

答案 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...
}