Implementiere PushKit und teste das Entwicklungsverhalten
Ich möchte den PushKit-Dienst in meiner App (Voip-App) implementieren, habe jedoch folgende Zweifel: Ich sehe, dass ich nur ein Produktions-Voip-Zertifikat generieren kann. Funktioniert dies, wenn ich versuche, den Voip-Push-Benachrichtigungsdienst auf dem Entwicklungsgerät zu testen?
Dies ist mein Implementierungstest:
Mit dieser 3 Codezeile kann ich beim didUpdatePushCredentials-Rückruf ein Push-Token erhalten, das ich zum Speichern auf meinem Server verwende.
PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
pushRegistry.delegate = self;
pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
Serverseitig generiere ich eine "normale" Payload-Push-Benachrichtigung mit nur Warnungstext und sende sie an das auf meinem Server gespeicherte Voip-Token.
Ich benutze den Rückruf mit Debug-Protokoll, aber sie werden nie aufgerufen!
- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(NSString *)type {
NSLog(@"didInvalidatePushTokenForType");
}
-(void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type {
NSLog(@"didReceiveIncomingPushWithPayload: %@", payload.description);
}
-(void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
if([credentials.token length] == 0) {
NSLog(@"voip token NULL");
return;
}
NSLog(@"didUpdatePushCredentials: %@ - Type: %@", credentials.token, type);
}
Wenn ich versuche, eine Push-Benachrichtigung von meinem Server an das zuvor hochgeladene Voip-Geräte-Token zu generieren, werde ich bei einem didReceiveIncomingPushWithPayload-Rückruf nie benachrichtigt, aber vom Server erhalte ich eine 200-OK-Nachricht (Nachricht wurde erfolgreich gesendet)