我正在实现新的iOS10扩展来使用丰富的通知。我试着在推送通知上测试它,但是不起作用,我只是收到一个简单的通知,没有经过扩展。
我在官方网站和其他地方做了所有指定的事情:
正如我所说,我收到通知,但从未通过分机。我看到了操作系统如何尝试加载扩展,但随后抛出一个没有相关描述的错误来识别问题:
Dec 31 21:00:00 iPhone SpringBoard(libextension.dylib)[51] <Notice>: calling plugIn beginUsing:
Dec 31 21:00:57 iPhone pkd[86] <Notice>: assigning plug-in com.test.app.NotificationWithAttachmentExtension(1.0) to plugin sandbox
Dec 31 21:03:57 iPhone pkd[86] <Notice>: enabling pid=51 for plug-in com.test.app.NotificationWithAttachmentExtension(1.0) 38BB5FF1-2597-42E0-B950-169DBFA80573 /private/var/containers/Bundle/Application/A8C47706-C0EC-4FB1-ABA7-0118372F6900/testapp.app/PlugIns/NotificationWithAttachmentExtension.appex
Dec 31 21:00:53 iPhone SpringBoard(PlugInKit)[51] <Notice>: plugin com.test.app.NotificationWithAttachmentExtension interrupted
Dec 31 21:03:56 iPhone SpringBoard(PlugInKit)[51] <Notice>: Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.test.app.NotificationWithAttachmentExtension" UserInfo={NSDebugDescription=connection to service named com.test.app.NotificationWithAttachmentExtension}
Jun 29 13:33:36 iPhone SpringBoard(libextension.dylib)[51] <Notice>: PlugInKit error in beginUsing:
Jun 17 23:33:04 iPhone SpringBoard(libextension.dylib)[51] <Notice>: killing invalid plugIn
Dec 31 21:00:00 iPhone SpringBoard(UserNotificationsServer)[51] <Error>: Extension error whilst trying to modify push notification F502-9B36: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.test.app.NotificationWithAttachmentExtension" UserInfo={NSDebugDescription=connection to service named com.test.app.NotificationWithAttachmentExtension}
Dec 31 21:00:00 iPhone SpringBoard(UserNotificationsServer)[51] <Notice>: [com.test.app] Saving notification F502-9B36
Dec 31 21:00:00 iPhone SpringBoard(libextension.dylib)[51] <Notice>: completed calling plugIn beginUsing: for pid: 0 相关扩展.plist:
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>UNNotificationExtensionCategory</key>
<string>attachmentCategory</string>
<key>UNNotificationExtensionInitialContentSizeRatio</key>
<real>1</real>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.usernotifications.service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).NotificationService</string>
</dict>有什么不对的吗?
发布于 2016-12-20 18:05:29
最后,我让它正常工作,这就是我从这个问题上所记得的。
1)不要使用带有iOS10 beta版本的设备,因为我遇到的问题之一是因为我使用的是beta版本。
2)只有应用程序请求app应享权利,这对于扩展所使用的优先级并不是必需的。
3)我使用了一个与扩展id匹配的配置文件(不是通配符),无论如何,我无法确定它是否适合通配符。
4) NSExtensionAttributes不需要,只需使用NSExtensionPointIdentifier和NSExtensionPrincipalClass作为扩展.plist。除非您正在使用您自己的布局
5)这甚至可以使用iOS 9令牌注册方法。
6)不要忘记推送通知中出现的有效负载中的可变内容值,这是服务器通过扩展所需的唯一强制值。
我想这涵盖了我所有的问题
发布于 2017-02-02 14:28:35
还可以做的是检查部署目标中的扩展。我的设备设置在10.2,而我正在测试的设备(仍然)使用10.1
在将部署目标更改为10.0之后,UNNotificationServiceExtension实例被完美地调用
发布于 2017-05-09 20:38:22
如果你做的一切都是正确的,别忘了把它附加到这个过程中。
运行包含扩展名的应用程序之后:
https://stackoverflow.com/questions/39663903
复制相似问题