【问题标题】:Mac App Rejected for having a blank windowMac App 因窗口空白而被拒绝
【发布时间】:2013-04-18 12:22:54
【问题描述】:

我最新的 Mac 应用程序被拒绝,原因如下: “当用户启动应用程序时,主应用程序窗口显示为空白。请参阅随附的屏幕截图。”

这是屏幕截图(基本上是一个空白的白色 mac 窗口): http://freecloud.com/dl/TPBlank.png

应用程序(使用 Cocos2D)在我的开发机器上运行良好。我什至将我提交给 Apple 的确切二进制文件作为 Mac 安装程序包导出,并将其安装在单独的 iMac 上,它运行良好。

我真的很茫然。由于我无法重现该问题,我不知道如何解决它..

是否有人对可能导致我的 Mac 应用程序显示为 Apple 审阅者但对我没有的空白窗口有任何想法?

【问题讨论】:

  • 发布您的 appdelegate.m 代码,也许还有您的第一个场景的初始化代码
  • 我在这里上传了我的 App Delegate:freecloud.com/dl/TPAddDelegate.html
  • 我在这里上传了我的主场景的init和FirstTime函数:freecloud.com/dl/TPMainScene.html
  • 您对窗口和状态栏的大小做了很多假设,这可能不适用于每个系统。例如,如果目标系统是 Retina Macbook,它还能工作吗?如果状态栏大于或小于 22 点(不确定该值是否永远不会改变)怎么办?如果由于某种原因将用户的显示分辨率设置为低于 1024x768 怎么办?
  • 我认为您应该弄清楚为什么会出现这种情况:“我们这样做的原因是,除非初始窗口大小为 1024x768,否则 nodeToWorldTransform 函数无法正确执行”。然后修复它并使用适当的 NSWindow/NSView 消息来设置窗口大小和位置。例如,您已经调用了窗口中心,但之后您仍然更改了窗口框架。这告诉我你在启动应用程序期间没有真正考虑过窗口的大小和位置发生了什么,这反过来又让你做出在其他系统上可能是错误的假设。

标签: macos cocos2d-iphone appstore-approval


【解决方案1】:

我以前见过几次这种情况,通常是在未正确设置 Mac 项目时。由于它通常可以正常工作,但显然不是在每个系统上都有效,因此我将重点关注可能导致初始化在某些情况下失败的事情。

当您在另一台机器上测试您的应用时,您应该验证的一件事是确保您创建的是存档版本,而不仅仅是常规的调试(或发布)版本。

如果您使用 ARC,请检查所有弱属性和 ivar,因为启用优化后它们的行为可能会有所不同,即分配给弱 ivar,然后将此 ivar 作为子级或数组添加将在 Debug 中工作,但 ivar释放时将为零,因为没有强引用保持对象。

如果您执行任何异常处理来简单地捕获所有异常,这也会导致窗口静默变白,而不是让应用程序崩溃(应该是这样)。

【讨论】:

    猜你喜欢
    • 2011-09-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    相关资源
    最近更新 更多