Debug Notification Extensions

余生颓废 提交于 2019-11-30 04:19:12

Change the target to run the extension

then select run and choose your app from the 'Choose an app to run:' window.

I have tried as per brendan's Answer but is not working for me at all!

I am getting below error in console

Program ended with exit code: 0

Then after searching on google i have checked this answer. however this also not worked for me for while!

Then i have tried same steps again as given in answer, After stopping my current running app. then follow same steps.For clarity i am writing this steps as below:

After running the app that contains the extension,

1) Set your breakpoint in the extension
2) Select Debug / Attach to Process by PID or name
3) Enter the name of the extension target
4) Trigger the push notification

Before step 2 make sure to stop your current running app.

This worked for me to stop at breakpoints in the extension and see the extension log:

  1. Choose the notification extension scheme, not the main app scheme
  2. Run the app and select the main app from the list Choose an app to run
  3. Stop the app in Xcode and terminate it manually on the device; not terminating it manually results in Message from debugger: Terminated due to signal 9 after step 6. [Update: Terminating the app manually on the device doesn't seem to be necessary, try either way if it doesn't work.]
  4. Select Menu Debug > Attach to Process by PID or Name
  5. Enter the correct extension name, not the main app name
  6. Send the push notification

Notification service extension (NSE) is not actually a part of your app but an extension that said it has a different process id (PID) from your app. You can have XCode listen to every process on your phone by going to the “Debug” tab, scroll down to “Attach to Process” and look to see if your NSE is listed under “Likely Targets”. If it's not there than try to sand another push notification to your device and attach to it when it appears.

Now in debug navigator you can see the NES process and you can successfully debug it.

In my case all methods above had some mistakes. Main point, that you need to send push one time, then connect through debugger, then send push to debug. So, full list:

  1. Launch app (not extension).

  2. Stop app from XCode.

  3. Send one push.

  4. Connect via "Attach to Process by PID or Name..." to your extension process.

  5. Send another push.

Not sure if this will be helpful, but we have multiple builds of the same app (alpha, beta, etc). Kept getting a "don't have permissions to attach" error when trying to debug. Opening up the processes list, I noticed that there were 2 processes named notification-extension so xcode must have been defaulting to the one of the other build. By manually selecting the right one, or deleting the other builds from my phone things started working again.

The only way that worked for me was to see logs. I use xcode 10.1. The logs were available from Window -> Devices and Simulators -> Choose your device -> click on 'Open Console'. This way i could see logs from extensions as well.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!