所以我有一个应用程序已经两次被应用程序商店拒绝了,我真的可以使用一些帮助!
Watchdog计时器被拒绝,强制它在第一次打开时退出。但是我无法在我的任何设备上重现这一点。使用xcode时,构建设备需要很长时间(我知道当从xcode构建时,看门狗断开连接)。但是我有几个问题可以帮助我解决这个问题。
看门狗是否只考虑didFinishLaunchingWithOptions:
或是否是他们调用的其他方法?
程序使用的框架数量是否与它有关?如果是11个框架那么多呢?
将应用程序安装到设备后,我拔掉所说的设备重新启用了看门狗定时器?
可以添加到监视程序计时器的其他一些东西是什么?
Another possibility could be a missing entitlement.
有人可以解释一下这意味着什么,我之前没有看过这个我的其他应用程序,但想想也许这是新的东西?它是否必须安装在appstore的所有应用程序上?
第一秒的时间档案
答案 0 :(得分:4)
您阻止UI线程的时间过长。要解决这个问题,首先你需要弄清楚代码花了多长时间。配置您的应用可能是值得的。请注意,模拟器不会模拟设备,它只会模拟API。它可以比实际设备运行得更快,因为您的计算机比iPhone更强大。尝试点击并按住Xcode左上角的Run
,然后选择Profile
。选择Time Profiler
并运行几秒钟。停止探查器以分析函数调用中的计时。请注意,您可能需要深入挖掘,找到一些教程或书籍才能真正理解分析。
当你知道什么部件运行缓慢。你可以将它们放入一个线程中。简单的方法是使用Grand Central Dispatch。要开始使用,请访问this tutorial。您可以跳过上半部分并专注于实际的线程块。 API为dispatch_queue_create
,dispatch_async
和dispatch_release
。
这将取消阻止你的用户界面。
答案 1 :(得分:3)
你在
中做了很多处理吗?application:didFinishLaunchingWithOptions,
applicationDidBecomeActive,
applicationDidEnterBackground,
applicationWillResignActive or
applicationWillTerminate?
多文件访问,加载/保存数据,同步网络访问等操作可能会导致应用程序在启动时或用户退出时冻结,并可能导致监视程序终止您的应用程序。
这篇Apple技术说明表明看门狗只是关注启动,暂停,恢复和终止用户界面事件,所以我想你应该首先考虑这些事件,并且可能会回复一些关于你的应用所做的更多细节在上面列出的方法中。 http://developer.apple.com/library/ios/#qa/qa1693/_index.html
11个框架没问题。我在应用程序中使用了11没问题。
如果您通过点击主屏幕上的图标启动应用程序,那么看门狗计时器将处于活动状态并监控您的应用程序。如果您通过在Xcode中运行或调试来启动应用程序,那么看门狗将不会监视您的应用程序。