在iOS6和iOS 7上测试应用程序-已更新

在iOS6和iOS 7上测试应用程序-已更新,ios6,ios7,Ios6,Ios7,我需要在iOS 6和iOS 7上测试我的应用程序。到目前为止,我已经完成了以下工作:我已经在iOS 7上开发了一个应用程序,但我也需要支持iOS 6 但是,由于我需要对ios6和ios7遵循稍微不同的布局,所以我将为这两个版本制作单独的xib。我已经在iOS 7上测试了这个应用程序,现在我需要在iOS 6上测试 我已经下载了iOS 6模拟器。请注意,我没有真正的ios6设备,我只有ios7设备。现在,请告诉我如何在iOS 6上测试它,以及如何通过编程检测我的手机运行的是哪个iOS版本 在代码中,

我需要在iOS 6和iOS 7上测试我的应用程序。到目前为止,我已经完成了以下工作:我已经在iOS 7上开发了一个应用程序,但我也需要支持iOS 6

但是,由于我需要对
ios6
ios7
遵循稍微不同的布局,所以我将为这两个版本制作单独的xib。我已经在iOS 7上测试了这个应用程序,现在我需要在iOS 6上测试

我已经下载了iOS 6模拟器。请注意,我没有真正的
ios6
设备,我只有
ios7
设备。现在,请告诉我如何在iOS 6上测试它,以及如何通过编程检测我的手机运行的是哪个iOS版本

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

这是我用来做这件事的代码

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

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

    else
    {
        NSLog(@"this is ios 6");
    }
我目前正在我的
iphone5
上测试它,它上面有
ios7

因此,我已经在
ios7
上测试了我的应用程序,但是当在
ios6
上测试它时(通过在
目标设置和
项目设置中选择
ios6
),我仍然在控制台上看到-
这是ios7

但是,键盘外观与iOS6类似。


为什么会发生这种情况??为什么我不能检查iOS版本?

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

基本上,您正在iOS 7模拟器上运行为iOS 6编译的应用程序。这就是为什么它报告了7的版本,并使用了iOS 6的风格

您需要在模拟iOS 6上运行应用程序,方法是从Xcode左上角的目标下拉列表中选择它:

(可能您还没有下载iOS 6的模拟器,请先检查Xcode首选项)

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


无论如何,如果您打算在iOS 7设备上使用本机iOS 7外观,请不要将部署目标降低到6。保持在7。

我已经下载了iOS 6模拟器。我不是在模拟器上运行应用程序,而是在iPhone5上运行。我没有iOS 6设备。那么你在iOS 7上运行,并且只为iOS 6编译了你的应用程序。难怪它会显示iOS 6键盘,这是苹果为实现向上兼容性而引入的预期行为。你需要做相反的事情:以iOS 7为部署目标编译你的应用程序,并在真正的iOS 6设备或模拟器上进行测试。似乎什么都不起作用。到目前为止,我已经完成了以下工作:我已经在iOS 7上开发了一个应用程序,但我也需要支持iOS 6。但由于iOS 6和iOS 7的布局略有不同,所以我将为这两个版本制作单独的XIB。我已经在iOS 7上测试了这个应用程序,现在我需要在iOS 6上测试。我已经下载了iOS 6模拟器。请注意,我没有真正的iOS 6设备,我只有iOS 7设备。现在,请告诉我如何在iOS 6上测试它,以及如何通过编程检测我的手机正在运行的iOS版本。@代码123如果您已将iOS部署目标设置为iOS 6.0,则您的应用程序支持的最低iOS为iOS 6.0。由于您没有安装iOS 6的设备,因此需要使用模拟器。如果您在iOS 7设备上运行应用程序,它将使用iOS 7外观运行,而如果您在iOS 6设备上运行应用程序,它将使用旧的iOS 6外观。如果您下载了仿真器,如您的评论所述,您应该能够选择设备和iOS,就像此答案图中所示。如果iOS 6没有出现在那里,你要么没有下载它,要么部署目标是错误的。如果你在iOS 7设备或模拟器上运行,当然它仍然会显示为iOS 7。开始使用iOS 6设备或模拟器。如果您使用iOS 7 SDK(Xcode 5)编译,那么您的应用程序将自动在iOS 7上安装类似iOS 7的键盘。但是键盘与if语句无关,这是正确的