2017-10-25 10 views
0

이 질문에 대한 과거의 질문을 보았지만이 답변은 이미 내 프로젝트에 적용되었지만 pushRegistry() 대리자 메서드가 호출되지 않습니다. pushRegistry : didUpdate : pushCredentials가 호출되지 않음

import UIKit 
import PushKit 
import UserNotifications 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate{ 

    var window: UIWindow? 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     let notificationSettings = UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil) 
     application.registerUserNotificationSettings(notificationSettings) 

     UNUserNotificationCenter.current().delegate = self 
     UIApplication.shared.registerForRemoteNotifications() 

     let voipRegistry = PKPushRegistry(queue: DispatchQueue.main) 
     voipRegistry.desiredPushTypes = Set([PKPushType.voIP]) 
     voipRegistry.delegate = self; 

     return true 
    } 
... 
} 

extension AppDelegate: PKPushRegistryDelegate { 
    func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) { 
     NSLog("voip token: \(pushCredentials.token)") 
    } 

다음 응용 프로그램 기능

이 활성화되었습니다 : 여기

우선 코드의 - 푸시 알림 - 원격 알림

내가 엑스 코드 9.1을 사용하고 있습니다 - 배경 을 가져 오기 - 이 배경 모드 Beta는 더 이상 Voip을 명시 적 기능으로 사용하지 않으므로 더 이상 필요하지 않으며 PushKit을 가져 오기 만하면 충분합니다.

프로비저닝 포털에서는 앱 ID에 대해 푸시 알림을 사용할 수 있습니다.

답변

1

은 분명히이가 더 이상 필요 및 가져 오기 PushKit이 충분해야 (A 무효 푸시 인증서는 아직 푸시를 보내려면이를 사용할 수 없습니다 분명히 생성되었지만).

나는이 게시물을 읽었지만 그 내용은 정확하지 않습니다. 일을 제대로하려면 info.plist를 수동으로 편집하여 voip을 백그라운드 모드 목록에 추가해야했습니다.

<string>voip</string> 

Apple은 무엇을하고 있습니까? Xcode에서이 기능을 여전히 제거해야하는 이유는 무엇입니까?