我目前正在开发的是接收推送通知的应用程序。 我有这一切都通过一个PHP页面的工作100%。 有几种不同类型的推送通知我的应用程序可以接受的。 PHP的处理这一点,不同的信息报文发送到我的应用程序,它都收到就好了。
但是,当用户“意见”的通知,我的应用程序的推出,我当然希望采取不同的行动比我会,如果用户只是手动启动的应用程序 - 以及最重要的是,根据不同的推送通知类型不同的动作。 我有这个工作的罚款...结构。
我的一个推类型应该打开一个UIView,使几个连接到几个不同的服务器,并协商数据来回。 这UIView的正常工作时,例如,从主菜单中触发 - 然而,当我推通知被触发这个UIView的出现,插座连接不作为的预期。
现在的问题是不是插座,但更多的 - 你怎么调试这样的问题? 从我可以告诉(我是比较新)当从一个推送通知推出的应用程序是没有办法到执行链接到调试器/控制台/等等......我有一个非常困难的时期尝试使用调试代码UIAlertViews,因为有通信的许多线来回各种服务器之间。
你对我有任何意见,将不胜感激。
在Xcode <4.0(对了XCode> = 4,请参阅下面delirus答案),你现在可以配置Xcode中的调试器附加到应用程序,你启动它,而不是通过调试启动应用后。 这可让您调试变化基于应用程序的启动状态的东西,比如URL方案,pasteboards,和推送通知。
- 在Xcode中查看源酒吧和低于目标会有可执行文件。
- 调出督察可执行文件中您的应用程序。
- 单击检查调试选项卡标签。
- 取消“开始调试开始后执行”
- 选中“等待下一次发射/推送通知”
现在,当你在Xcode,而不是启动应用程序将显示一个窗口,告诉它正在等待应用启动的点击调试。 然后,您可以正常启动手机上的应用程序和Xcode的重视它
对于Xcode中4,你必须:
- 通过“方案”下拉列表编辑您的活动方案。 (⌘+ <)
- 不是选择你的产品 - “运行MyApp.app”在左边。
- 选择“信息”右侧标签。
- 最后选择“等待MyApp.app启动”选项。
更多此在“自定义方案编辑器中的可执行文件”一节。
编辑:
如果您在GDB错过日志,看到路易斯Gerbarg的评论对他的回答。
对于的XCode 10,9,8,7和6:
- 选择工具栏上的计划 (刚出你与调试设备)
- 选择编辑计划
- 选择左侧面板中运行
- 对于启动选项,选择等待可执行上马
- 关闭方案编辑器和运行您的XCode项目
现在,你可以从一个通知,自定义网址或通过触摸应用程序图标启动时进行调试。
我不会和推送通知的工作,所以我不知道推送通知的具体工作。 不过,我会尝试让你的程序的主要方法假装通知模仿收到一个推送通知的张贴如果可能的话,或调用应用程序中:didFinishLaunchingWithOptions:UIApplicationDelegate方法从在applicationDidFinishLaunching内:方法。
HTH - 干杯,大安