推送通知启动时调试应用程序

时间:2009-08-06 13:50:19

标签: ios iphone push-notification

我目前正在开发一款接收推送通知的应用。我通过PHP页面100%全部工作。我的应用可以接收几种不同类型的推送通知。 PHP处理这个并向我的应用程序发送不同的信息包,这些信息都被收到了。

但是,当用户“查看”通知并启动我的应用时,我显然想采取与用户手动启动应用时不同的操作 - 最重要的是,根据推送的不同操作通知类型。我在结构上做得很好......

我的推送类型之一应该打开一个UIView,它与几个不同的服务器建立多个连接并来回协商数据。例如,当从主菜单触发时,此UIView工作正常 - 但是当我的推送通知触发此UIView出现时,套接字连接未按预期运行。

现在我的问题不是关于套接字,而是更多 - 如何调试这样的问题?从我所知道的(我相对较新)当应用程序从推送通知启动时,没有办法将该执行链接到调试器/控制台/等...我正在尝试使用调试代码进行调试时非常困难UIAlertViews,因为在各种服务器之间来回通信很多。

非常感谢您对我的任何建议。

6 个答案:

答案 0 :(得分:143)

在XCode< 4.0(对于XCode> = 4,请参阅下面的delirus答案),您现在可以配置Xcode以在启动后将调试器附加到应用程序,而不是通过调试器启动应用程序。这使您可以调试根据应用程序的启动状态而变化的内容,例如URL方案,粘贴板和推送通知。

  1. 在Xcode中查看源栏,在目标下面会有可执行文件。
  2. 在可执行文件中为您的应用启动检查员。
  3. 单击检查器中的“调试”选项卡选项卡。
  4. 取消选中“启动调试器后启动可执行文件”
  5. 选中“等待下次启动/推送通知”
  6. 现在,当您从Xcode单击调试而不是启动应用程序时,将显示一个窗口,告知它正在等待应用程序启动。然后,您可以在手机上正常启动应用程序,Xcode会附加到该应用程序

答案 1 :(得分:120)

对于Xcode 4,您必须:

  1. 通过编辑您的活动方案 “计划”下拉列表。 ( + <
  2. 选择你的产品 - '跑 MyApp.app'在左边。
  3. 选择右侧的“信息”标签。
  4. 最后选择“等待 MyApp.app启动“选项。
  5. “方案编辑器中的自定义可执行文件”部分中的更多here

    修改
    如果您错过了GDB中的日志,请参阅Louis Gerbarg的comment给他的答案。

答案 2 :(得分:106)

对于XCode 10,9,8,7& 6:

  1. 在工具栏上选择方案(在您正在调试的设备的左侧)
  2. 选择修改计划
  3. 在左侧面板中选择运行
  4. 对于启动选项,请选择等待启动可执行文件
  5. 关闭Scheme Editor并运行您的XCode项目
  6. 现在,您可以在从通知,自定义网址或触摸应用图标启动时进行调试。

答案 3 :(得分:3)

我不使用推送通知,所以我不知道推送通知的确切工作。但是,我尝试通过让程序的主方法假装在可能的情况下发布通知,或者在applicationDidFinishLaunching:方法中调用应用程序:didFinishLaunchingWithOptions:UIApplicationDelegate方法来模仿接收推送通知。

HTH - 干杯,大安

答案 4 :(得分:3)

在Xcode 6中:

  1. 通过USB将iPhone连接到Macbook
  2. 点击图标
  3. 在iPhone上启动应用
  4. 在Xcode菜单中,Debug> Attach to Process>选择你的应用

答案 5 :(得分:1)

对于XCode 11和10,您可以执行以下操作:

  1. 选择方案选项。
  2. 选择编辑方案。

  3. 从左侧面板中选择“运行”选项

  4. 在启动部分中,选择等待可执行文件启动,然后关闭对话框。

  5. 构建并运行项目。现在,您可以通过点击应用程序图标或点击通知消息来启动该应用程序。