iOS10 UNNotificationServiceExtension pas appelé
Im mise en œuvre de nouvelles iOS10 extension à utiliser riche notifications. Im essayant de le tester sur les notifications push, mais ne fonctionne pas, je viens de recevoir une notification simple et ne va pas à travers l'extension.
J'ai fait tout ce qu'il est spécifié dans les sites officiels et quelques autres endroits:
- J'ai mon app et fonctionne avec les notifications push, et le droit de profil de configuration
- J'ai ajouté un nouvel objectif pour mon application, un Service de Notification d'Extension
- Mis en œuvre mon propre code (il n'importe pas vraiment, car n'est pas même d'entrer à la nouvelle classe)
- Aussi, j'ai eu à définir un profil de configuration pour cette extension, je viens d'utiliser un avec un caractère générique, je ne vois pas de documentation spécifiant si l'objectif d'extension a pour activer les notifications push capacité, dans ce cas j'aurais besoin d'un provisionnement pour celui-là, à l'instant je viens d'utiliser un joker de prov, de toute façon il correspond à (il doit correspondre) le profil que j'ai utiliser dans l'application cible, et les notifications push, la fonctionnalité est activée pour l'application cible.
- J'ai ajouté UNNotificationExtensionCategory et NSExtensionPointIdentifier. Aussi Im envoi de la catégorie en tant que partie de la poussée de la charge utile à partir du serveur.
Comme je l'ai dit, je reçois la notification, mais ne passe jamais par le biais de l'extension. Je vois comment le système d'exploitation tente de charger l'extension, mais puis lève une erreur avec aucune description pour identifier le problème:
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
Extension concernée .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>
Ce qui est erroné ou manquant?
Merci d'avance
Essayez d'ajouter ceci: <key>UNNotificationExtensionDefaultContenthidden</key> <vrai/>
Avez-vous jamais trouver une solution? Si oui, pourriez-vous nous le décrire ou partager un lien que nous sommes confronté à un problème similaire...
enfin j'ai ce travail correctement, et c'est ce que je me souviens de cette émission:
de commentaire ci-dessous en réponse, il était trop long pour le mettre comme commentaire...
Un peu hors-sujet, mais comment voulez-vous obtenir le tremplin journal? 31-déc-21:00:00 iPhone SpringBoard
NSExtensionAttributes
Avez-vous jamais trouver une solution? Si oui, pourriez-vous nous le décrire ou partager un lien que nous sommes confronté à un problème similaire...
enfin j'ai ce travail correctement, et c'est ce que je me souviens de cette émission:
de commentaire ci-dessous en réponse, il était trop long pour le mettre comme commentaire...
Un peu hors-sujet, mais comment voulez-vous obtenir le tremplin journal? 31-déc-21:00:00 iPhone SpringBoard
OriginalL'auteur Rodrigo.C | 2016-09-23
Vous devez vous connecter pour publier un commentaire.
Que pourrait également faire l'astuce est de vérifier votre cible de déploiement de l'extension. Le mien a été fixé à
10.2
alors que le dispositif était en essais a été (encore) à l'aide de 10.1Après la modification de la cible de déploiement pour
10.0
laUNNotificationServiceExtension
instance a été appelé parfaitementOh mon Dieu! C'est vraiment sympa et simple de la solution. Je n'ai même pas pensé à vérifier.
Fonctionne pour moi, merci
Merci!!!! MERCI BEAUCOUP @basvk j'ai intégré une poussée de la bibliothèque pour une des cibles, et d'avoir ensuite à les réintégrer pour la deuxième cible au cours de la même semaine. Les DEUX FOIS j'ai perdu beaucoup de temps avec ne vérifiant pas la cible et fini vers le haut de votre réponse
Merci beaucoup cela m'a beaucoup aidé. J'ai été en utilisant 10.1 appareil lors de l'extension de déploiement cible était de 10,3
OriginalL'auteur basvk
Et si vous avez tout fait correctement, n'oubliez pas de joindre à ce processus.
Après l'exécution de l'application qui contient l'extension:
NotificationService classe n'apparaît pas là!!
essayez de l'ajouter manuellement, lorsque vous commencez à taper le nom qui doit apparaître @Basir Alam
OriginalL'auteur Wojtek Dmyszewicz
Enfin j'ai ce travail correctement, et c'est ce que je me souviens de cette question.
1) Ne pas utiliser des appareils avec iOS10 version bêta, parce que l'un des problèmes que j'ai eu était parce que j'étais à l'aide d'une version bêta.
2) que l'application requres APNS droits, ce n'est pas nécessaire pour le privisoning utilisé pour l'extension.
3) j'ai été en utilisant un profil de configuration qui correspond à l'id de l'extension (pas de joker), de toute façon je ne peux pas confirmer si cela fonctionne bien ou non avec des caractères génériques.
4) NSExtensionAttributes ne sont pas tenus, il suffit d'utiliser NSExtensionPointIdentifier et NSExtensionPrincipalClass pour l'extension .plist. Sauf si vous utilisez votre propre mise en page
5) C'est le travail même de l'utilisation d'iOS 9 jeton de méthodes d'enregistrement.
6) ne pas oublier mutable-valeur du contenu de la charge utile à venir dans la notification push, c'est le seul obligatoire valeur dont vous avez besoin à partir du serveur de passer par la prolongation.
Je pense que cela couvre tous les problèmes que j'ai eus
Ipa est requis pour l'application de l'extension, ou bien il ne compile PAS.
OriginalL'auteur Rodrigo.C
Est venu ici pour la deuxième fois. La première fois, cette réponse m'a aidé, la deuxième fois, il n'a pas. Après beaucoup de (internes) prestation de serment, j'ai découvert que j'avais en quelque sorte accidentellement supprimé l'extension à partir d'Embedded Binaires dans mon application principale cible. Quand j'ai ajouté l'extension arrière, mon extension serait appelé à nouveau.
Afin de vérifier ceci:
OriginalL'auteur Jonny
Il semble que votre plist est un mélange de 2 plists.
Il y a 2 extensions en jeu:
Voici le plist pour
Notification Content Extension
cible:Voici le plist pour
Notification Service Extension
cible:le lien est cassé. on vous envoi
mutable-content: 1
dans l'aps charge utile?oui, en fait l'erreur que je vois dans les journaux de périphérique si lorsque le système d'exploitation déjà trouvé mon extension mais ne pas exécuter le code. Donc mutable-le contenu a été validé à ce moment déjà (sans que cela ne sera pas à même de vérifier pour la notif extensions)
avez-vous pensé à elle ?
U ne trouvé aucune solution pour cela?
OriginalL'auteur Or Arbel
Si vous utilisez Firebase, puis essayez de modifier la charge utile:
La mutable_content des cartes sur le terrain de la mutable-champ contenu sur les APNs.
Pour plus de détails, allez à travers ce lien.
OriginalL'auteur AnitaAgrawal
La
public func didReceiveNotificationRequest(request: UNNotificationRequest, withContentHandler contentHandler: (UNNotificationContent) -> Void)
méthode dansUNNotificationServiceExtension
a changé entre swift versions.Certains des exemples en ligne ne sont pas à jour.
Assurez-vous que la méthode de remplacement dans la sous-classe personnalisée de
UNNotificationServiceExtension
J'ai eu:
func didReceive(request: UNNotificationRequest, withContentHandler contentHandler:(UNNotificationContent) -> Void)
qui n'a pas fonctionné jusqu'à ce que j'ai changé:
func didReceiveNotificationRequest(request: UNNotificationRequest, withContentHandler contentHandler: (UNNotificationContent) -> Void)
L'a obtenu. Êtes-vous l'envoi de "catégorie" dans la poussée de la charge utile (côté serveur) ?
probablement non, nous avons eu la fonctionnalité de base de notre APN serveur, et nous avons ajouté que apple a suggéré seulement (mutable-contenu et de toute information supplémentaire, nous voulons lire sur le client).
J'ai essayé la définition de cette catégorie d'apple suivant les spécifications (plist config et côté serveur d'une valeur trop), mais toujours pas de travail. Je vois apple spécifications mention "NSExtensionAttribute" mais beaucoup d'exemples de codes à l'aide de "NSExtensionAttributes" (au pluriel), j'ai essayé les deux, juste au cas où, mais j'ai toujours exactement le même résultat. il est très frustrant d'avoir cette erreur avec pas de description de ce qui est mal, un simple message expliquant ce qu'Apple tente de valide serait suffisant pour identifier le problème...
C'est certainement
NSExtensionAttributes
vous pouvez poster vous pertinents plist ?OriginalL'auteur Or Arbel
Assurez-vous que vous avez "Aucun" jeu de configuration. Regardez la capture d'écran. Avec d'autres paramètres
didReceive
ne fonctionne pas.Configuration
OriginalL'auteur Dmytro Bohachevskyy
Après avoir essayé beaucoup de solutions possibles déjà donné, sans succès, il m'est apparu qu'un cadre a été malencontreusement ajouté à notre objectif d'extension plutôt que le test de l'unité cible.
De retirer le cadre et le ciblage 10.2 permis à mon poste pour être appelé une fois de plus.
Si vous êtes curieux de savoir quel cadre pour quelque raison que ce soit, vous pouvez le trouver ici: https://github.com/plu/JPSimulatorHacks
OriginalL'auteur Jon Whitmore
Ma question était deux fois. Le premier était probablement que j'avais mis de la
Info.plist
propriété NSExtensionPrincipalClass àbundle.identifier.NotificationService
au lieu deProductModuleName.NotificationService
. Nom du Module par défaut, mais j'ai eu tort changé à l'identifiant lors du débogage de certains autres choses liées à différents systèmes et différentes cibles.Le deuxième problème est que j'ai testé en exécutant le service de notification de la cible. Pour moi, il a travaillé beaucoup mieux lors de l'exécution de l'application cible. J'ai vu d'autres gens de recommander à utiliser le service de notification de la cible pour activer le débogage. Mais qui fonctionne très bien lors de l'exécution de l'application cible. Vous devez attacher le débogueur à votre service de notification manuellement.
La façon dont j'ai découvert le ci-dessus a été de créer un projet de test avec un minimum de code. Avec le recul, je recommande vraiment cette approche, au lieu d'essayer toutes les différentes solutions trouvées sur stackoverflow etc
OriginalL'auteur Simon Bengtsson