2014-01-16 29 views
1

我需要在iOS 6iOS 7上测试我的应用程序。以下是我迄今为止所做的:我已经在iOS 7上开发了一个应用程序,但我也需要支持iOS 6。在iOS6和iOS 7上测试应用程序 - 更新

但是,因为我需要按照iOS 6iOS 7稍微不同的布局,我为两者制作单独的xib。我已经测试了iOS 7的应用程序,现在我需要为iOS 6做。

我已经下载了iOS 6 simulator已经。请注意,我没有真正的iOS 6设备,我只有iOS 7设备。现在请告诉我如何在iOS 6上测试它,以及如何以编程方式检测我的手机正在运行哪个iOS version

在代码中,我需要检查设备正在使用的iOS的版本,然后相应地加载xibs

这是我用来做到这一点的代码。

float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue]; 

    if (sysVer >= 7.0) 
    { 
     NSLog(@"this is ios 7"); 
    } 

    else 
    { 
     NSLog(@"this is ios 6"); 
    } 

我目前正在测试它在我的iPhone 5在其上有iOS 7

所以,我测试了iOS 7我的应用程序,但iOS 6测试它时(通过选择“deployment target”作为target settingsiOS 6project settings),我依然在控制台上看到 - this is ios 7

但是,键盘的外观是iOS6-like .. !!

这是怎么发生的?为什么我无法检查iOS版本?

+0

那么,如果你正在使用iOS 7的设备或模拟器上运行当然它仍然会显示为iOS7。开始使用iOS 6设备或模拟器。 – Popeye

+0

如果您使用iOS7 SDK(Xcode 5)进行编译,那么您的应用将自动拥有和iOS7类似的iOS7键盘。 但键盘哈哈无关你的if语句,这是正确的 – Laszlo

回答

1

部署目标和系统版本不一样。

基本上,您正在iOS 7模拟器上运行针对iOS 6编译的应用程序。这就是为什么它报告的一个版本7,并通过在Xcode中左上方从目标下拉菜单中选择它使用的iOS 6的你需要在模拟的iOS 6上运行你的应用程序的风格

enter image description here

(也许你还没有下载iOS 6的模拟器,首先检查Xcode首选项)。

或者更好的是,在实际的iOS 6设备上。

无论如何,如果你打算使用机iOS 7的样子在iOS 7的设备,从来没有降低部署目标为6保持在7

+0

我已经下载了iOS 6模拟器。我没有在模拟器上运行应用程序,我在iPhone 5上运行它。我没有iOS 6设备。 – Shradha

+0

然后你在iOS 7上运行,并且只编译你的应用程序到iOS 6。难怪它显示了iOS 6键盘,这是苹果为了向上兼容而推出的预期行为。您需要做相反的事情:使用iOS 7的部署目标编译您的应用程序,并在真实的iOS 6设备或模拟器上对其进行测试。 – Cyrille

+0

好吧..我会试试这个,然后回复你.. – Shradha

相关问题