Tengo un problema relacionado con el token del dispositivo APNS. Antes estaba usando Xcode 10.2 e iOS 12.1. En este momento solía obtener el token del dispositivo en el método delegado
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
Me estoy registrando para APNS como este y estaba funcionando bien.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if(!error){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
Ahora, cuando instalo iOS 13 en mi dispositivo iPhone y uso Xcode 11, no se llama al método delegado didRegisterForRemoteNotificationsWithDeviceToken. Incapaz de entender este problema. Ya he investigado sobre esto, sé que hay algunos cambios en la obtención de tokens del método delegado, pero en mi caso ni siquiera se llama al método delegado. Nuevamente funciona bien para iOS 12.
apple-push-notifications
ios13
xcode11
IOS Dev
fuente
fuente
Respuestas:
Simplemente reinicie su iPhone. Es tan simple como eso y en el 90% de los casos resolverá su problema.
fuente
Inicie sesión en https://appleid.apple.com/ , luego abra la url " https://developer.apple.com/account/ios/identifier/bundle " o " https://developer.apple.com/account/resources / certificados / lista ".
Primero, cree dos nuevos certificados: (1) versiones de desarrollo de Apple Development Sign de sus aplicaciones iOS, macOS, tvOS y watchOS. Para usar en Xcode 11 o posterior. (2) Distribución de Apple Firme sus aplicaciones para enviarlas a la App Store o para su distribución Ad Hoc. Para usar con Xcode 11 o posterior.
Luego busque el menú "Identificadores" a través de la URL " https://developer.apple.com/account/resources/identifiers/list ". Edite los identificadores de su aplicación, asegúrese de que el certificado SSL de desarrollo y el certificado SSL de producción se agreguen a las notificaciones push.
A continuación, abra el menú "Perfiles" a través de la URL " https://developer.apple.com/account/resources/profiles/list ". Asegúrese de que los certificados como tipo de distribución para los que se utilizará en Xcode 11 o posterior, y guarde
Por último, descargue el archivo de perfil de aprovisionamiento y los archivos de certificados de CA creados en su MAC, que se agregarán a XCode y a la aplicación de cadena de claves haciendo doble clic en los archivos por separado.
Además, recuerde reiniciar su teléfono celular y asegúrese de haber configurado correctamente la notificación remota.
fuente
También enfrenté el mismo problema. Intenté muchos escenarios. Obtuve el éxito después de hacer los siguientes pasos:
registerForRemoteNotifications
método en el hilo principal.En mi caso, estaba obteniendo un token de dispositivo, pero hay un retraso en la respuesta (creo que debido al registro de notificaciones remotas en un hilo de fondo). Pero después de moverse
[[UIApplication sharedApplication] registerForRemoteNotifications]
en el hilo principal, todo funciona bien.Aquí está mi código:
Espero que esto ayude.
fuente
Acabo de resolver este problema de esta manera siguiendo los pasos a continuación.
Agregue un poco de impresión en el método didRegisterForRemoteNotificationsWithDeviceToken y mantenga los dispositivos conectados.
Entonces está funcionando bien.
Espero que esto ayude a alguien.
fuente
Está relacionado con la falta de DeviceSupport en su instalación de XCode, para la versión de plataforma utilizada por su dispositivo de implementación.
En mi caso, faltaba la plataforma 13.1. Para resolver, simplemente agregue DeviceSupports en la carpeta
Puede descargar DeviceSupport faltante desde: https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport
fuente
Prueba esto.
Funcionó para mi.
fuente