Closed Maks273 closed 1 year ago
Yep I have found this issue in inverse too π
I got success here
let deviceIdentifier = UIDevice.current.identifierForVendor?.uuidString
let subscription = QBMSubscription()
subscription.notificationChannel = chanel
subscription.deviceUDID = deviceIdentifier
subscription.deviceToken = token
QBRequest.createSubscription(subscription, successBlock: { _, _ in
completion(true)
}) { errorResponse in
Crashlytics.crashlytics().log("ERROR createSubscription = \( errorResponse.error?.error?.localizedDescription ?? "")")
completion(false)
}
ΠΡΠΈΠ²ΡΡ, @Maks273!
Π‘Π»Π°Π²Π° Π£ΠΊΡΠ°ΡΠ½Ρ!
Π¦Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° Π²ΠΊΠ°Π·ΡΡ Π½Π° ΡΠ΅, ΡΠΎ ΠΊΠΎΡΠΈΡΡΡΠ²Π°Ρ, ΡΠΊΠΎΠΌΡ ΠΉΠ΄Π΅ Π΄Π·Π²ΡΠ½ΠΎΠΊ, Π½Π΅ ΠΌΠ°Ρ ΠΏΡΠ΄ΠΏΠΈΡΠΊΠΈ Π½Π° voip push-ΡΠΏΠΎΠ²ΡΡΠ΅Π½Π½Ρ.
Π£ ΡΠ²ΠΎΡΠΌΡ Π²ΠΈΠΏΠ°Π΄ΠΊΡ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ ΠΊΡΠ»ΡΠΊΠ° ΠΏΡΠΈΡΠΈΠ½ ΡΠ°ΠΊΠΎΡ ΠΏΠΎΠ²Π΅Π΄ΡΠ½ΠΊΠΈ. ΠΠΌΠΎΠ²ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΠΎΠ²'ΡΠ·Π°Π½ΠΎ Π· ΡΡΠ·Π½ΠΈΠΌΠΈ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°ΠΌΠΈ (environments): ΡΠ΅ΡΡΠΎΠ²ΠΈΠΌ (test) ΡΠΈ ΠΆΠΈΠ²ΠΈΠΌ (live). Π¦Π΅ ΠΌΠΎΠΆΠ΅ Π·Π°Π»Π΅ΠΆΠ°ΡΠΈ Π²ΡΠ΄ Π·Π±ΡΡΠΊΠΈ Π±ΡΠ»Π΄Π° (develop Π°Π±ΠΎ production). Π’Π°ΠΊΠΈΠΌ ΡΠΈΠ½ΠΎΠΌ, Ρ ΡΠ΅Π±Π΅ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ ΡΠΈΡΡΠ°ΡΡΡ, ΠΊΠΎΠ»ΠΈ "develop to develop" ΡΠΈ "prod to prod" Π΄Π·Π²ΡΠ½ΠΊΠΈ ΠΏΡΠ°ΡΡΡΡΡ, Π°Π»Π΅ "develop to prod" - Π½Ρ.
Π‘ΠΏΠΎΡΠ°ΡΠΊΡ ΡΠ°Π΄ΠΆΡ ΠΏΠ΅ΡΠ΅Π²ΡΡΠΈΡΠΈ, ΡΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡΡΡ Π±ΡΠ»Π΄ΠΈ, ΠΏΡΠ΄ΠΏΠΈΡΠ°Π½Ρ ΡΡΠ·Π½ΠΈΠΌΠΈ ΡΠ΅ΡΡΠΈΡΡΠΊΠ°ΡΠ°ΠΌΠΈ.
Hello @djmckee!
This error indicates that the user receiving the call does not have a subscription for voip push notifications.
In your case, there could be several reasons for this behavior, most likely due to different environments (test or live). It directly depends on the build (develop or production). So, you may have a situation where "develop to develop" or "prod to prod" calls work, but "develop to prod" does not. First and foremost, I recommend checking if you are using builds signed with different certificates.
ΠΠ΅ΡΠΎΡΠΌ Π‘Π»Π°Π²Π°! @IlliaChemolosov
Π’Π°ΠΊ, ΠΏΡΠΈΡΠΈΠ½Π° Π· ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°ΠΌΠΈ Ρ! ΠΠ»Π΅ ΠΏΠΎΠΌΡΡΠΈΠ², ΠΊΠΎΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΡΠ²Π°Π² Π· dev to prod, ΡΠΎ ΡΠ΅ΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π²ΠΈΠ΄Π°Ρ ΡΠ°ΠΊΡ ΡΠ°ΠΌΡ ΠΏΠΎΠΌΠΈΠ»ΠΊΡ ΠΊΠΎΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΡΡ Π· dev => dev
Π’Π΅ΠΏΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡΠ²Π°Π² 2 Π°ΠΊΠΊ Π½Π° Π΄Π΅Π²Ρ Ρ Π²ΡΠ΅ ΠΏΡΠ°ΡΡΡ, Π°Π»Π΅ Π½Π° test flight Π½Ρ :( ΠΎΡΡΠΈΠΌΡΡ 422 error
@IlliaChemolosov so the issue is when I testing on test flight. Any tips to check what's causing the issue?
Hello @Maks273! Maybe you're currently using a sandbox certificate. I recommend creating a universal certificate and updating it within the QuickBlox admin panel.
@IlliaChemolosov could you send a link to that article pls?
@IlliaChemolosov do I need to generate aspn cer or it can be voip one?
@Maks273 It varies based on your app's requirements, especially if you need to receive regular pushes, such as when the app is in the background and notifications arrive. Typically, I create a universal certificate that supports both calls and regular messages (voip and apns). However, you can create individual certificates and add them depending on your requirements, our admin panel supports up to 3 certificates.
I'm calling from Ukraine to UK and get next. It's working well when calling in Ukraine. Could you help me to figure about what's wrong pls?
Error reasons:{ errors = { base = ( "No recipients. At least one user should be subscribed for 'apnsvoip' (through SDK or REST API)" ); }; }
Request failed: client error (422)