While signing up a new userin QuickBlox from ios applicaqtion with login and Password credentials, the app got crashed and the NSLog console shows the error as below,
Terminating app due to uncaught exception 'BaseServiceException', reason: 'You have missed the authorization call. Please insert following code inside your application [QBRequest createSessionWithSuccessBlock:errorBlock:]; Before any other code, that uses our service, but after setup credentials.
First throw call stack:(
0 CoreFoundation 0x038365e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x02ca48b6 objc_exception_throw + 44
2 VideoChat 0x00028e2f -[QBHTTPConnection generateRequestOperation:forPath:usingMethod:] + 1231
3 VideoChat 0x00028092 -[QBConnection executeRequest:forPath:usingMethod:] + 162
4 VideoChat 0x0001b049 +[QBRequest(QBAuth) signUp:successBlock:errorBlock:] + 825
5 VideoChat 0x0000457d -[AppDelegate application:didFinishLaunchingWithOptions:] + 2077
6 UIKit 0x017ff355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
7 UIKit 0x017ffb95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
8 UIKit 0x018043a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
9 UIKit 0x0181887c -[UIApplication handleEvent:withNewEvent:] + 3447
10 UIKit 0x01818de9 -[UIApplication sendEvent:] + 85
11 UIKit 0x01806025 _UIApplicationHandleEvent + 736
12 GraphicsServices 0x03d6b2f6 _PurpleEventCallback + 776
13 GraphicsServices 0x03d6ae01 PurpleEventCallback + 46
14 CoreFoundation 0x037b1d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
15 CoreFoundation 0x037b1a9b __CFRunLoopDoSource1 + 523
16 CoreFoundation 0x037dc77c __CFRunLoopRun + 2156
17 CoreFoundation 0x037dbac3 CFRunLoopRunSpecific + 467
18 CoreFoundation 0x037db8db CFRunLoopRunInMode + 123
19 UIKit 0x01803add -[UIApplication _run] + 840
20 UIKit 0x01805d3b UIApplicationMain + 1225
21 VideoChat 0x00004cbd main + 141
22 libdyld.dylib 0x033dc725 start + 0)
I'm using the below code to create a new user,
[QBRequest createSessionWithSuccessBlock:^(QBResponse *response, QBASession *session) {
// session created
} errorBlock:^(QBResponse *response) {
// handle errors
NSLog(@"%@", response.error);
}];
QBUUser *user = [QBUUser user];
user.password = @"azhhdsf";
user.login = @"dsfgsgf";
// Registration/sign up of User
[QBRequest signUp:user successBlock:^(QBResponse *response, QBUUser *user) {
// Sign up was successful
} errorBlock:^(QBResponse *response) {
// Handle error here
NSLog(@"error while signing up with QB");
}];
I saw an answer here on SO, but it throws an error, that delegate:self
was deprecated and need to use the above method signUp: successBlock:
.
Did anyone face this issue? How to fix this? Any suggestions would be greatly appreciated.
All these requests are asynchronous and you can't use it this way.
The right way is to wait until session will be created and then sign up a user: