Tenho um problema relacionado ao token de dispositivo APNS. Antes de usar o Xcode 10.2 e o iOS 12.1. Neste momento, eu costumava obter o token do dispositivo no método delegado
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
Estou me registrando no APNS assim e estava funcionando bem.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if(!error){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
Agora, quando instalado o iOS 13 no meu dispositivo iPhone e usando o Xcode 11, o método delegate didRegisterForRemoteNotificationsWithDeviceToken não é chamado. Não foi possível entender esse problema. Eu já fiz uma pesquisa sobre isso, sei que existem algumas alterações na obtenção de token do método delegado, mas no meu caso, o método delegado nem é chamado. Mais uma vez, está funcionando bem para o iOS 12.
apple-push-notifications
ios13
xcode11
IOS Dev
fonte
fonte
Respostas:
Basta reiniciar o seu iPhone. É simples e, em 90% dos casos, resolverá o seu problema.
fonte
Faça logon em https://appleid.apple.com/ e abra o URL " https://developer.apple.com/account/ios/identifier/bundle " ou " https://developer.apple.com/account/resources / certificados / lista ".
Primeiro, crie dois novos certificados: (1) versões de desenvolvimento do Apple Development Sign dos seus aplicativos iOS, macOS, tvOS e watchOS. Para uso no Xcode 11 ou posterior. (2) Distribuição da Apple Assine seus aplicativos para envio à App Store ou para distribuição Ad Hoc. Para uso com o Xcode 11 ou posterior.
Em seguida, encontre o menu "Identificadores" via url " https://developer.apple.com/account/resources/identifiers/list ". Edite seus identificadores do aplicativo, verifique se o certificado SSL de desenvolvimento e o certificado SSL de produção foram adicionados às notificações por push.
Em seguida, abra o menu "Perfis" via url " https://developer.apple.com/account/resources/profiles/list ". Verifique se os Certificados como tipo de DistributionFor, que serão usados no Xcode 11 ou posterior, e salve
Por fim, baixe o arquivo Perfil de provisionamento e os arquivos de Certificados da CA criados no seu MAC, que serão adicionados ao XCode e ao aplicativo de cadeia de chaves clicando duas vezes nos arquivos separadamente.
Além disso, lembre-se de reiniciar o telefone celular e verifique se configurou a notificação remota corretamente.
fonte
Eu também enfrentei o mesmo problema. Eu tentei muitos cenários. Eu obtive sucesso depois de executar as etapas abaixo:
registerForRemoteNotifications
método no thread principal.No meu caso, eu estava recebendo um token de dispositivo, mas há um atraso na resposta (acho que devido ao registro de notificações remotas em um encadeamento em segundo plano). Mas depois de mover
[[UIApplication sharedApplication] registerForRemoteNotifications]
a linha principal, tudo funciona bem.Aqui está o meu código:
Espero que isso ajude.
fonte
Acabei de resolver esse problema desta maneira, seguindo as etapas abaixo.
Adicione alguma impressão no método didRegisterForRemoteNotificationsWithDeviceToken e mantenha os dispositivos conectados.
Então está funcionando bem.
Espero que isso ajude alguém.
fonte
Está relacionado ao DeviceSupport ausente na instalação do XCode, para a versão da plataforma usada pelo seu dispositivo de implantação.
No meu caso, a plataforma 13.1 estava faltando. Para resolver, basta adicionar o DeviceSupports na pasta
Você pode fazer o download do DeviceSupport ausente em: https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport
fonte
Tente isso.
Funcionou para mim.
fonte