Descrição:
Estamos no processo de atualização do react-native-oneignal em um aplicativo - react-native é a versão 0.55.2. Resumindo, o problema é que tentamos atualizar o sdk react-native-onesignal (para 3.3.2 e 3.3.3) de acordo com o e-mail enviado em relação ao xcode 11 e iOS 13. No entanto, ao executar o aplicativo em um Dispositivo iOS 13.1 (iphone 7) (é construído e executado com xcode 11) o aplicativo é executado, ele recebe o pop-up pedindo permissão para enviar notificações push (e aceitamos), mas sempre obtemos o seguinte no console e o aplicativo venceu não se registre para notificações, pois o dispositivo não aparece no painel do Onesignal:
(Não sei como formatar o código, desculpe)
2019-09-13 14:30:11.707798+0200 app_name[3842:145178] { userSubscriptionEnabled: true,
subscriptionEnabled: false,
pushToken: '{length=32,bytes=0x0586c0fd0e74336ba3129ece2d44e089...8a9649cae8640ed7}',
emailAddress: null,
userId: null,
hasPrompted: true,
notificationsEnabled: false,
emailUserId: null,
emailSubscribed: false }
.....
2019-09-13 14:30:26.742281+0200 app_name[3842:145201] VERBOSE: HTTP Request (OSRequestRegisterUser) with URL: https://onesignal.com/api/v1/players, with parameters: {
"app_id" : "app_id",
"net_type" : 0,
"test_type" : 1,
"ios_bundle" : "dat1.videoplatform.ios.babyapp",
"tags" : {
"lang" : "da"
},
"device_type" : 0,
"sdk_type" : "react",
"sdk" : "020904",
"identifier" : "{length=32,bytes=0x0586c0fd0e74336ba3129ece2d44e089...8a9649cae8640ed7}",
"language" : "da-DK",
"device_os" : "13.1",
"game_version" : "38",
"timezone" : 7200,
"ad_id" : "3A2693A5-32F0-474C-B4BD-5CC5F40B511A",
"notification_types" : 31,
"device_model" : "iPhone9,3",
"carrier" : "Telenor DK"
}
2019-09-13 14:30:26.960947+0200 app_name[3842:145202] VERBOSE: network response (OSRequestRegisterUser): {
errors = (
"[\"Identifier invalid format.\"]"
);
success = 0;
}
2019-09-13 14:30:26.961717+0200 app_name[3842:144941] ERROR: Encountered error during push registration with OneSignal: Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={
errors = (
"[\"Identifier invalid format.\"]"
);
success = 0;
}}
Ambiente
Etapas para reproduzir o problema:
Algo mais:
Tentamos rodar em dispositivos iOS 12.4 com react-native-onesignal 3.2.4 (pré-atualização), 3.3.2 e 3.3.3, todos os quais funcionam lá. Ele usa o formato de identificador antigo conforme o esperado. Executamos a versão Live do aplicativo em um iOS 13.1 iphone 7 que funciona (pensamos que não deveria funcionar). Executamos o aplicativo atualizado com 3.3.2 e 3.3.3 que são executados no emulador perfeitamente. Ele consegue se conectar, mas não recebe o pop-up solicitando permissões de push conforme o esperado.
Vamos tentar ver se podemos pegar um dispositivo rodando iOS 13.0 e testar lá, já que o emulador é 13.0 e pode haver uma diferença daí para o 13.1.
Por enquanto, não podemos ir mais longe por conta própria e já passamos dias correndo em círculos.
Agradeço a ajuda!
Enfrentando o mesmo problema, estamos no reagente nativo 0.59.10
Olá,
Acabamos de lançar a versão 3.4.1 que deve corrigir esse problema. Saúde!
Vou tentar e voltar com os resultados :)
@DanielMerbt Você fez isso funcionar no iOS 13.1? Você pode nos avisar. Obrigado!
Atualizamos para o SDK 3.4.1 e tentamos executar no simulador e no dispositivo ios 13.1 e recebemos um erro de compilação, portanto, não conseguimos ver se o problema original foi resolvido. Também mudamos para a versão do Xcode GM, mas o beta que usamos antes resultou exatamente no mesmo erro de compilação.
O novo erro que ocorre ao tentar executar no sim / dispositivo é:
Símbolos indefinidos para arquitetura x86_64:
"_OBJC_CLASS _ $ _ WKWebView", referenciado de:
objc-class-ref em libRCTOneSignal.a (OneSignal-x86_64-master.o)
"_OBJC_CLASS _ $ _ WKWebViewConfiguration", referenciado de:
objc-class-ref em libRCTOneSignal.a (OneSignal-x86_64-master.o)
ld: símbolo (s) não encontrado (s) para arquitetura x86_64
clang: erro: o comando do linker falhou com o código de saída 1 (use -v para ver a chamada)
Estou me perguntando o que mais foi alterado na atualização 3.4.1, já que não mudamos absolutamente nada, exceto a versão do SDK react-native-onesignal.
Estou tendo esse mesmo problema ao tentar construir com o SDK versão 3.4.1.
Adicionamos duas novas estruturas que o XCode está tendo problemas para encontrar. Você pode tentar executar pod deintegrate && pod install
do seu diretório ios?
@rgomezp Eu os executei e tentei construir novamente, e agora estou vendo a mesma saída acima.
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_WKWebViewConfiguration", referenced from:
objc-class-ref in libRCTOneSignal.a(OneSignal-arm64-master.o)
"_OBJC_CLASS_$_WKWebView", referenced from:
objc-class-ref in libRCTOneSignal.a(OneSignal-arm64-master.o)
"_CGAffineTransformIdentity", referenced from:
___49-[OSInAppMessageViewController animateAppearance]_block_invoke in libRCTOneSignal.a(OneSignal-arm64-master.o)
"_CGAffineTransformMakeScale", referenced from:
-[OSInAppMessageViewController addConstraintsForMessage] in libRCTOneSignal.a(OneSignal-arm64-master.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Você pode tentar seguir estas instruções?
https://documentation.onesignal.com/docs/react-native-sdk-setup#section -manually-updates-ios-onesignalnativesdk
repositório nativo iOS: https://github.com/OneSignal/OneSignal-iOS-SDK
EDITAR: o pessoal resolveu isso adicionando as estruturas ausentes diretamente ao projeto (não cocoapods): https://github.com/geektimecoil/react-native-onesignal/issues/861
@rgomezp Consegui fazer isso funcionar adicionando CoreGraphics.framework
e WebKit.framework
ao meu projeto OneSignalNotificationServiceExtension
no XCode, conforme sugerido em # 861. Obrigado pela ajuda!
Corrigido o problema adicionando o Webkit.framework manualmente. O aplicativo é executado e o sinal único funciona :)
Bom ouvir
Comentários muito úteis
@rgomezp Consegui fazer isso funcionar adicionando
CoreGraphics.framework
eWebKit.framework
ao meu projetoOneSignalNotificationServiceExtension
no XCode, conforme sugerido em # 861. Obrigado pela ajuda!