通过推送通知启动时debugging应用程序
我目前正在开发一个接收推送通知的应用程序。 我有这个所有的工作100%通过一个PHP页面。 我的应用可以接收几种不同types的推送通知。 PHP处理这个,并发送不同的信息包到我的应用程序,都收到了很好。
但是,当用户“查看”通知和我的应用程序启动时,我显然希望采取与用户刚刚手动启动应用程序的操作不同,并根据推送通知types采取不同的操作。 我有这个工作很好…在结构上。
我的一个推式types应该是打开一个UIView,它与几个不同的服务器进行多个连接并来回地协商数据。 这个UIView工作正常,例如,从主菜单触发 – 但是当我的推送通知触发此UIView出现时,套接字连接不按预期行事。
现在我的问题不是关于套接字,而是更多 – 你怎么debugging这样的问题? 从我可以告诉(我相对较新),当从推送通知启动的应用程序无法将该执行链接到debugging器/控制台/等等…我有一个非常困难的时间试图debugging代码UIAlertViews,因为在各种服务器之间有许多来回的通信线路。
任何build议你对我来说将不胜感激。
在XCode <4.0(对于XCode> = 4,请参阅下面的delirus的回答)中,现在可以configurationXcode在启动后将debugging器附加到应用程序,而不是通过debugging器启动应用程序。 这使您可以根据应用程序的启动状态debugging不同的事件,例如URLscheme,粘贴板和推送通知。
- 在Xcode中查看源代码栏,下面的目标将有可执行文件。
- 在可执行文件中为您的应用程序启动检查器。
- 单击检查器中的debugging选项卡选项卡。
- 取消选中“启动debugging器后启动可执行文件”
- 选中“等待下一次启动/推送通知”
现在,当你点击从Xcodedebugging,而不是启动应用程序时,窗口将显示告诉它正在等待应用程序启动。 然后,您通常在手机上启动应用程序,Xcode附加到它
对于Xcode 4,你必须:
- 通过“scheme”下拉列表编辑您的活动计划。 ( ⌘ + < )
- 比select你的产品 – '运行MyApp.app'在左边。
- select右侧的“信息”标签。
- 最后select“等待MyApp.app启动”选项。
在“在configuration编辑器中自定义可执行文件”部分的更多信息。
编辑:
如果您错过了GDB的日志,请参阅Louis Gerbarg对他的回答的评论 。
对于XCode 9,8,7和6:
- 在工具栏上selectScheme (您正在debugging的设备的左侧)
- select编辑计划
- 在左侧面板中select运行
- 对于启动选项,请select等待可执行文件启动
- closuresScheme编辑器并运行你的XCode项目
现在,您可以从通知,自定义url或通过触摸应用程序图标进行debugging。
我没有使用推送通知,所以我不知道推送通知的确切工作。 然而,我试着模仿接收推送通知,让你的程序的主要方法假装通知被发布,如果可能的话,或从applicationDidFinishLaunching:方法调用应用程序:didFinishLaunchingWithOptions:UIApplicationDelegate方法。
HTH – 干杯,大安
在Xcode 6中:
- 用USB将iPhone连接到Macbook
- 通过点击图标在iPhone上启动应用程序
- 在Xcode菜单中,
Debug
>Attach to Process
>select您的应用程序