提交一个 iOS 游戏,视口对于 App Store 评论员来说是完全错误的,但在我们所有的设备上都很好

Submitting an iOS game, viewport is completely wrong for App Store reviewer but fine on all of our devices

我有一款游戏正尝试在 iphone 和 ipad 的应用商店中发布,虽然它在我们所有的设备上运行良好(少数 iphones 和 ipads),当应用商店评论者尝试使用它时,他们看到的实际视口被高度裁剪和扭曲。

这是审阅者看到的示例选项屏幕:

这就是我们在等效方面看到的选项屏幕的样子 ratio/resolution:

如您所见,它只是一个偏心的小正方形,周围是黑色。但是我们已经在旧 iphone 5 到大 ipad 等设备上进行了测试,但从未见过这样的情况,游戏占据了全屏,宽高比正确且没有失真或拉伸。

一个重要的细节是这完全是一个 OpenGL 和 SDL 程序,根本没有使用任何 Apple UI 框架。渲染大小由 SDL_GetRendererOutputSize() 确定,然后在 glViewport() 中使用,并且 window 是使用 SDL_WINDOW_ALLOW_HIGHDPI 标志创建的。到目前为止,这似乎适用于视网膜和非视网膜物理设备。

而且他们给我们的所有屏幕截图看起来都一样,同样的小方形视口被黑色包围,所以我最初认为他们是故意裁剪它们以突出屏幕的特定组件,但这似乎是正是因为这个正方形在每个屏幕截图中都位于相同的位置,所以它看起来就是这样。我已经向他们询问有关他们设备的更多信息,但他们不告诉我。

我们也将程序设置为只使用横向,而不是纵向,但奇怪的是,我们的 UI 回流方式是让按钮看起来像它一样被压扁的唯一方法是否有如果游戏仍然以某种方式呈现在肖像中,正如我通过在非常高的肖像 window:

中强制它 运行 拍摄的示例拍摄

我什至不知道从哪里开始尝试弄清楚他们出了什么问题,因为正如我所说,在模拟器中 运行ning 时一切看起来都很好而且一切看起来都很好当我们 运行 在多个物理设备上使用它时。是否有一些构建或发布配置我可能会丢失?我应该检查一些 OpenGL 设置?我只是希望这个问题看起来与其他人之前遇到的问题相似。

如果您使用的是同等设备,那么另一个可能不同的地方是辅助功能设置。搜索显示放大设置。此外,在启动您的应用程序以尝试重现之前,请尝试将 iPad 锁定为纵向模式。

注意审稿人截图右下角的小双箭头图标。我不知道那是什么,但看起来它可能是某种屏幕缩放或辅助功能模式。也许他们可以回答它的作用,以及如何为自己启用它。

为了跟进对我有用的解决方案,我注意到在 Xcode 的项目常规设置中,在部署信息下,我只检查了 iPhone 而不是 iPad.我后来了解到,如果没有该复选框,一些 iPad 将不得不在仿真模式下 运行,这可能是我们问题的根源。部署一个新版本并选中(以及“需要全屏”),它在我们自己的 iPads 上呈现完全相同,但该应用程序随后获得批准,没有进一步的问题。我没有对程序进行任何其他更改,所以我的假设是该设置可能修复了它。