由于Apple提供的以下原因,我的iPhone专享应用程序被拒绝了:
我们注意到,在运行iOS 9的iPad上进行审核时,您的应用无法以iPhone分辨率运行,这违反了App Store审核指南。
我现在明白iPad有自己的iPhone模拟器,可以运行iPhone应用程序。经过初步调试后,我注意到,在iPad Air(iOS 9.0)上进行测试时,我的iPhone 5故事板正在自己的iPhone模拟器中使用。
这就是它在iPhone 5上的正确显示方式:
http://i.stack.imgur.com/SMHyx.png
这就是它在iPad上的外观(错误):
http://i.stack.imgur.com/2PHG4.png
由于iPad正在使用我的iPhone 5故事板,为什么不正确缩放所有内容?我该如何解决这个问题?
***** EDIT *****
我发现我在调试时犯了一个错误,iPad的iPhone模拟器的显示高度为480,这是iPhone 4的大小。我的下面的代码导致我的iPhone 6+故事板显示:
CGSize result = [[UIScreen mainScreen] bounds].size;
//get the right storyboard for the device.
if(result.height == 568)
{
storyBoard = [UIStoryboard storyboardWithName:@"iPhone5" bundle:nil];
NSLog(@"IPHONE 5 STORYBOARD!");
}
else if(result.height == 667)
{
storyBoard = [UIStoryboard storyboardWithName:@"iPhone6" bundle:nil];
NSLog(@"IPHONE 6 STORYBOARD!");
}
else //iPhone 6+
{
storyBoard = [UIStoryboard storyboardWithName:@"iPhone6Plus" bundle:nil];
NSLog(@"IPHONE 6+ STORYBOARD!");
}
然而,我认为我只为iPhone 5及以上版本制作了应用程序,将其设置为iOS 8及更高版本,这意味着我没有iPhone 4故事板。我该如何解决这个问题?
答案 0 :(得分:2)
在iPad中运行iPhone应用程序时,iPad的视图大小始终等于iPhone 4S或更低。因此,请尝试更改您的应用,以使您的应用能够与iPhone 4模拟器或设备正常工作。
答案 1 :(得分:2)
否则,您无法基于每台设备限制您的应用。由于您的应用程序是iOS 8及更高版本,因此您必须支持iPhone 4S的分辨率。由于iPhone 4S也是iOS 9,你也必须在不久的将来支持它。
答案 2 :(得分:0)
您可以通过正确支持iPad(拥有iPhone + iPad应用程序)或提供3.5英寸的故事板来解决问题 - 或者,使用4英寸故事板,正确使用布局约束,以及调整某些属性。
选择正确的故事板的明显变化是改变:if(height< = 568).. else if(height< = 667)... else ...你的代码说的一切都不是&#39 ;高568或667像素高是6+,你可以看到这是无稽之谈。
你也可以支持iPad,并为iPad使用6+故事板。再次,正确使用布局约束。