IOS 7.1,如果目标设备系列设置为iPad,则忽略通用故事板上的常规宽度限制
我在Xcode 6.1上启动了一个新的单视图项目IOS 7.1,如果目标设备系列设置为iPad,则忽略通用故事板上的常规宽度限制,ios,objective-c,storyboard,ios-universal-app,size-classes,Ios,Objective C,Storyboard,Ios Universal App,Size Classes,我在Xcode 6.1上启动了一个新的单视图项目 转到我的目标并将设备系列设置为通用和部署目标设置为7.1 在故事板中,我在尺寸等级常规宽度|任意高度 尺寸等级紧凑宽度|任意高度的蓝色标签 根据文档,我在ipad上运行时会看到红色标签,在iphone上运行时会看到蓝色标签, 到目前为止,这在模拟器和实际设备上都能正常工作 现在我回到目标,将设备系列设置为IPad,再次运行应用程序: 模拟器上的iPad2(7.1)-红色标签 iPad2(7.1)(真实设备)蓝色标签 IPad 2(8.1)(真
转到我的目标并将设备系列设置为通用和部署目标设置为7.1 在故事板中,我在尺寸等级
常规宽度|任意高度
尺寸等级紧凑宽度|任意高度的蓝色标签
根据文档,我在ipad上运行时会看到红色标签,在iphone上运行时会看到蓝色标签,
到目前为止,这在模拟器和实际设备上都能正常工作
现在我回到目标,将设备系列设置为IPad,再次运行应用程序:
紧凑宽度|任意高度
,一个iPad绝对不能使用的尺寸等级。这可能是触发此问题的配置的一个方面。也就是说,它仍然不应该发生。这个问题在Xcode 6.1中都会出现,在当前的6.2测试版中没有什么不同
当前配置的某个特定方面可能会触发此操作。特别是,自动布局和设备目标会受到启动屏幕的影响,这种影响有文档记录,但通常是开发人员意外的。(例如,在启动屏幕上使用故事板将使您的应用程序在静默状态下普遍可用,即使您已在目标系统中指定它应该是iPhone。)在其他情况下(请参阅),将启动映像迁移到不同配置解决了类似的问题。因此,这是值得尝试的。我尝试比较在xcode build文件夹中创建的中间文件,但据我所知,在测试设备中没有依赖性(这意味着只要我将部署目标设置为7.1,它最终将部署到哪个平台并不重要) 所以我倾向于认为这不是xcode或ios 7.1中的一个bug,但对于这个特定场景来说,它确实不向后兼容 我为苹果的技术支持提交了一个bug,但到目前为止还没有得到他们的重播。
在这一点上,解决办法似乎是将所有
常规宽度
约束设置为任何宽度
,并卸载压缩宽度
约束,一旦为IPhone发布应用程序,就撤消此更改 在重新运行之前,是否从实际设备中删除了应用程序?有时故事板文件不会被正确覆盖…是的,从设备中删除并进行了干净的构建如果您在iOS 7.1上使用Universal device Family运行项目,然后切换到iPad device Family,它将始终是正确的,但这并不能解决问题。使用通用故事板,只在项目部署设置中将目标设置为iPad是否有效?这样你就可以暂时避开这个可能的错误,而不必完全支持iPhone。我相信这正是我正在做的,我有一个通用的故事板,我将设备目标系列(在目标部署设置中,覆盖项目部署设置)设置为IPad。当目标设备系列为IPad时,无论是在目标“常规”选项卡还是“构建设置”选项卡中,我都会出现此问题。Duncan,我尝试按照您的建议迁移发布映像,但您共享的链接并未解决我的问题