iPhone 应用程序被拒绝:首次启动 iPad 上的屏幕变白

Posted

技术标签:

【中文标题】iPhone 应用程序被拒绝:首次启动 iPad 上的屏幕变白【英文标题】:iPhone App Rejected: first time launch the screen turns white on iPad 【发布时间】:2016-02-17 10:19:09 【问题描述】:

我唯一的 iPhone 应用被拒绝了,但是当 Apple 在 iPad x1/x2 上尝试它时,应用在启动屏幕后变成白色。我认为状态栏是问题所在,但我不确定。我在 plist 中有View controller-based status bar appearanceNO。然后在我的第一个 VC 中的 PageViewController 中使用UIApplication.sharedApplication().statusBarHidden = false

应用程序在从内存中删除并重新打开时会正常运行。

还有其他人遇到过同样的问题吗?

编辑

更多信息:在 LaunchScreen 之后,我的第一个 ViewController 是一个 PageViewController,在第一个 ViewController 中,我在下载一些 json 时打开了一个正在加载的 ViewController。这看起来/显示为启动屏幕的扩展,但带有 L​​aunchScreen 中使用的图像的动画,当下载 JSON 时,我将其删除并显示我的 PageViewController。

self.loadingViewController = LoadingiewController()
self.loadingViewController!.view.frame = self.view.bounds
self.navigationController?.view.addSubview(self.loadingViewController.view)

编辑2

所以我仍然有问题。它仅在 TestFlight 版本中。我正在将状态栏从 Light 转换为 Default,从隐藏到可见。

在 Xcode/Devices 实时日志下我得到这个:

<Warning>: Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x13e61d790 V:|-(20)-[UIInputSetContainerView:0x13e546f30]   (Names: '|':UITextEffectsWindow:0x13e544af0 )>",
    "<NSLayoutConstraint:0x13e632b30 'UIInputWindowController-top' V:|-(0)-[UIInputSetContainerView:0x13e546f30]   (Names: '|':UITextEffectsWindow:0x13e544af0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x13e61d790 V:|-(20)-[UIInputSetContainerView:0x13e546f30]   (Names: '|':UITextEffectsWindow:0x13e544af0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

编辑3

所以我才注意到。如果我从 TestFlight 弹出/警报窗口打开新安装的应用程序,则约束被破坏并且应用程序变白。但!如果我第一次从 SpringBoard 打开应用程序。这太奇怪了。

【问题讨论】:

您是否在 iPad 或 iPad 模拟器上测试了该应用程序? 你确定这个问题只出现在 iPad 而不是 iPhone 上,初始化应用程序时出现异常会导致白屏。检查您的应用委托一次。 它在所有模拟器上运行,奇怪的是它也在“我的”ItunesConnect TestFlight 帐户上运行,但不是我发布的帐户。是的,它只在 iPad 上。这也是拒绝中指定的内容。 Apple 是否提供了崩溃报告? 没有,没有崩溃。 【参考方案1】:

我们在didFinishLaunchingWithOptions 中有UIWindow.appearance().backgroundColor = UIColor.whiteColor()

删除这一行解决了它。

【讨论】:

你怎么能拒绝投票呢?这是导致白屏的原因,也是导致应用在 App Store 上被拒绝的原因。 我确认确实如此。我遇到了完全相同的问题,原因是 UIWindow 的 whiteColor

以上是关于iPhone 应用程序被拒绝:首次启动 iPad 上的屏幕变白的主要内容,如果未能解决你的问题,请参考以下文章

由于我无法重现的启动崩溃,通用 iPad 应用程序被拒绝

仅 iPhone 应用程序因未在 iPad 上运行而被拒绝

应用程序被拒绝,原因是“iPhone 应用程序也必须在 iPad 上未经修改、以 iPhone 分辨率和 2X iPhone 3GS 分辨率运行”

iPad应用程序被拒绝,“未能及时启动”崩溃

动态生成 iPhone/iPad 应用程序启动图像的好方法

在 iPad 上运行时无法启动我的 iPhone 应用程序的启动图像