2014-09-22 62 views
2

在调查为什么我无法从广告网络中获得的广告,我偶然发现了一个奇怪的问题,的WebView的User-Agent:iPhone模拟器在Xcode6发送的OS版本,我的Mac

User Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_10 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

而因为我在竞选iOS8上,它更应该是:

User Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

Ofcourse没有iPhone上运行的版本10.10至今,所以Xcode6以某种方式从Mac OS X拿起版本对于iOS 7.1模拟器,它工作得很好。

回答

0

就我所知,情况总是如此。

当我使用下面的代码,以确定什么操作系统我运行的,什么硬件,它总是返回的OSX主机信息,而不是模拟iOS的信息:

NSString *systemVersion = [[UIDevice currentDevice] systemVersion]; 
... 
sysctlbyname("kern.version", buffer, &len, NULL, 0); 
... 
sysctlbyname("hw.model", buffer, &len, NULL, 0); 

WebKit的显然是在利用相似技巧填写客户浏览器信息时。但是,它不应该引起问题。

+0

有趣的.. 在iOS 7及更低版本上,记录的值与预期值相同,但是在iOS8上,我看到systemVersion记录为8.0,而WebKit仍在用户代理字符串中附加10_10。 想知道这是否是WebKit与OS 8.0中的错误? – rishabh 2014-09-22 13:00:40