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 appearance
NO
。然后在我的第一个 VC 中的 PageViewController 中使用UIApplication.sharedApplication().statusBarHidden = false
。
应用程序在从内存中删除并重新打开时会正常运行。
还有其他人遇到过同样的问题吗?
编辑:
更多信息:在 LaunchScreen 之后,我的第一个 ViewController 是一个 PageViewController,在第一个 ViewController 中,我在下载一些 json 时打开了一个正在加载的 ViewController。这看起来/显示为启动屏幕的扩展,但带有 LaunchScreen 中使用的图像的动画,当下载 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 上的屏幕变白的主要内容,如果未能解决你的问题,请参考以下文章
应用程序被拒绝,原因是“iPhone 应用程序也必须在 iPad 上未经修改、以 iPhone 分辨率和 2X iPhone 3GS 分辨率运行”