ios inapp purchases - getting exception because product is not recognized - ios

I am getting this exception:
2013-08-06 21:48:05.046 entrepreneur[13200:11f03] Not purchased: 1
2013-08-06 21:48:09.075 entrepreneur[13200:11f03] Buying (null)...
2013-08-06 21:48:09.077 entrepreneur[13200:11f03] Buying (null)...
2013-08-06 21:48:09.079 entrepreneur[13200:11f03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid product identifier: (null)'
*** First throw call stack:
(0x1691012 0x1123e7e 0x1690deb 0x3c7dc 0x18d5f 0x1a4be 0x1137705 0x6e920 0x6e8b8 0x12f671 0x12fbcf 0x12ed38 0x9e33f 0x9e552 0x7c3aa 0x6dcf8 0x14dbdf9 0x14dbad0 0x1606bf5 0x1606962 0x1637bb6 0x1636f44 0x1636e1b 0x14da7e3 0x14da668 0x6b65c 0x2a1d 0x2945)
libc++abi.dylib: terminate called throwing an exception
Because the product seems to be nil. Here is how I put the product object together:
This is the method which is called when the "subscribe" button is called:
- (IBAction)subscribe:(id)sender
{
UIButton *buyButton = (UIButton *)sender;
SKProduct *product = _products[buyButton.tag];
NSLog(#"Buying %#...", product.productIdentifier);
[[RageIAPHelper sharedInstance] buyProduct:product];
}
I am working from this tutorial:
http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial
And I don't really understand how they can be creating the product object which seems like it would be empty. But when it is empty, it gives an exception down the line.
Is there something I am not doing quite right here?
Thanks!

Related

Application crash when try to make video call using QBVideoChat

I am developing an application for video call, but when try to make call application crash with following error
2014-12-30 00:00:50.866 closeChat[28683:3791106] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString xmlChar]: unrecognized selector sent to instance 0x19b4a8'
*** First throw call stack:
(0x29e5949f 0x3764fc8b 0x29e5e8b9 0x29e5c7d7 0x29d8e058 0xf2bc5 0xee3a9 0x89923 0x89d89 0x29e1627b 0x88c05 0x889af 0x371b3 0x2d34c9fb 0x2d34c9a1 0x2d337613 0x2d34c40d 0x2d3111ad 0x29e1fd95 0x29e1d453 0x29e1d85b 0x29d6b3c1 0x29d6b1d3 0x311690a9 0x2d37afa1 0x67189 0x37bcfaaf)
libc++abi.dylib: terminating with uncaught exception of type NSException
I used the following code:
self.videoChat = [[QBChat instance] createAndRegisterVideoChatInstance];
self.videoChat.viewToRenderOpponentVideoStream = self.imgOppenentViewView;
self.videoChat.viewToRenderOwnVideoStream = self.imgOwnVideoView;
self.videoChat.useHeadphone = 1;
self.videoChat.useBackCamera = 1;
NSMutableDictionary *videoChatConfiguration = [[QBSettings videoChatConfiguration] mutableCopy];
//
[videoChatConfiguration setObject:AVCaptureSessionPresetLow forKey:kQBVideoChatFrameQualityPreset];
[videoChatConfiguration setObject:#10 forKey:kQBVideoChatVideoFramesPerSecond];
//
[QBSettings setVideoChatConfiguration:videoChatConfiguration];
[QBChat instance].delegate = self;
[self.videoChat callUser:[self.opponentID intValue] conferenceType:QBVideoChatConferenceTypeAudioAndVideo];
I've tested video sample Quickblox with your settings and video call works as expected.
Please try to setup Quickblox with CocoaPods and see if error happens again
http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework#CocoaPods
And there is a new WebRTC sample you can test. It has more features and preferred to use.

keychain error while fetching device id

I am working on a project which requires integration with cocoalibspotify. I have some unit test cases for the classes that import CocoaLibSpotify.h. Those test cases have failed with the following stack trace:
Assertion failure in NSString* base::deviceIdFromKeychain()(), /Users/spotify-buildagent/buildAgent/work/1e0ce8a77adfb2dc/client/base/_apple/_ios/os_ios.mm:287
2013-10-20 11:14:03.505 * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Keychain error when fetching device ID, nonrecoverable'
* First throw call stack:
(0x30f0cf53 0x3b2366af 0x30f0ce2d 0x318b41df 0x2d142f 0x2d1a09 0x2ce6db 0x17b1b5 0x1798b3 0x30ed81b9 0x30ed753b 0x30ed5e45 0x30e40ce7 0x30e84803 0x179b1d 0x318efe27 0x3b85dc1d 0x3b85db8f 0x3b85bc90)
libc++abi.dylib: terminating with uncaught exception of type NSException
The method at which the exception is thrown is in the SPSession.m class: CFRunLoopRun();
+(void)runBackgroundRunloop:(dispatch_block_t)runLoopReadyBlock {
#autoreleasepool {
[NSThread currentThread].name = #"com.spotify.CocoaLibSpotify";
[runloopReadyLock lock];
libspotify_runloop = CFRunLoopGetCurrent();
sleep(1);
libspotifyThread = [NSThread currentThread];
// Use a custom, no-op run loop source to keep the loop alive and fast.
CFRunLoopSourceContext libspotify_source_context;
memset(&libspotify_source_context, 0, sizeof(CFRunLoopSourceContext));
libspotify_runloop_source = CFRunLoopSourceCreate(NULL, 0, &libspotify_source_context);
CFRunLoopAddSource(libspotify_runloop, libspotify_runloop_source, kCFRunLoopDefaultMode);
[runloopReadyLock unlockWithCondition:1];
CFRunLoopRun();
CFRelease(libspotify_runloop_source);
CFRelease(libspotify_runloop);
libspotify_runloop_source = NULL;
libspotify_runloop = NULL;
libspotifyThread = nil;
}
}
I have no clue what causes the error or how to fix it. Does anyone have any idea about this?
Thanks,
Make sure you're using the latest version of CocoaLibSpotify (2.4.5).
Also, how are the unit tests run? Does your app run correctly? Does CocoaLibSpotify's own unit test suite run? It's worth noting that the Keychain is unaccessible to CocoaLibSpotify before the device has been unlocked.

ios iframe issues with webview

I have a problem with UIWebView. If a iframe is loading some content and for some reason I change the source or I remove the element, I get the following exception:
MyApp[5812:11303] shouldStartLoadWithRequest
2013-03-14 18:48:45.899 MyApp[5812:11303] shouldStartLoadWithRequest
2013-03-14 18:48:45.900 MyApp[5812:11303] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> *** setObjectForKey: key cannot be nil
2013-03-14 18:48:45.901 MyApp[5812:13603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
*** First throw call stack:
(0x1c94012 0x10d1e7e 0x1d170de 0x26e35ce 0x26e5693 0x26d44b5 0x2bf8747 0x2bf5610 0x2ec841a 0x2ec6c49 0xb0108ef 0x6619e11 0x6572fc3 0x2dd9d34 0x2eacd15 0x2b31eac 0x2b31c76 0x317bce9 0x2b176d5 0x2b184a5 0x316ade9 0x2b1772e 0x317cc6d 0x2b1e3f4 0x2b1f97b 0x2b2382f 0x26f1f7b 0x356182c 0x3561795 0x3564b2f 0x35648bb 0x356bffb 0x356487c 0x1e50f4 0x356bffb 0x1e4deb 0x1e5787 0x356c548 0x1c17f3f 0x1c17a39 0x1c3a734 0x1c39f44 0x1c39e1b 0x356bc50 0x97efced9 0x97f006de)
libc++abi.dylib: terminate called throwing an exception
(lldb)
Is there something that I need to add to my code the deal with this scenario ?
In my case it was because I call my method scrollToId in viewWillAppear, before webWiew is loaded
- (void)scrolToID
{
NSString *jsCall = [NSString stringWithFormat:#"window.location.hash='#%#'", currentID];
[self.webView stringByEvaluatingJavaScriptFromString:jsCall];
}
It should be call in webViewDidFinishLoad

Not informative exception info on xCode 4.6

If my application crashes I take the information on All Output window like this:
Uncaught exception: * -[NSPlaceholderMutableString initWithString:]:
nil argument 2013-02-28 04:09:15.209 Cpp[948:907] Terminating app
due to uncaught exception 'NSInvalidArgumentException', reason: '
-[NSPlaceholderMutableString initWithString:]: nil argument'
* First throw call stack: (0x3336b3e7 0x3b05c963 0x3336b307 0x33bf0eb5 0x33c0ab8b 0xd16ed 0xd0a63 0xc3e79 0xc5cfd 0x3336ead4
0x332c628f 0x332c5de3 0x39be081b 0x3336d737 0x332c5208 0x3336ead4
0x332c628f 0x3930bc5b 0x39348ce1 0x333408f7 0x3334015d 0x3333ef2f
0x332b223d 0x332b20c9 0x36e9033b 0x351ce2b9 0xc0109 0xc00a0)
libc++abi.dylib: terminate called throwing an exception (lldb)
And the call stack like this:
Where is there something helpful to fix the issue? Where is there my method on call stack? Where is there my line of code? What's wrong with xCode and how to fix this problem?
Here's something I do to get the stack trace.
In your AppDelegate.m file:
void uncaughtExceptionHandler(NSException *exception) {
NSLog(#"Call Stack: %#", exception.callStackSymbols);
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
// The rest of your method here...
}

SIGABRT - App trying to find a deleted item

I deleted a textfield called BLANK as it was not required. But now I get a SIGABRT in the line below:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
and this message:-
2012-04-26 15:37:24.208 SOA[2822:f803] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Engine_Editor 0x6b528c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key BLANK.'
*** First throw call stack:
(0x13d9022 0x156acd6 0x13d8ee1 0x9d1022 0x942f6b 0x942edb 0x95dd50 0x24571a 0x13dadea 0x13447f1 0x24426e 0xea1fc 0xea779 0xea99b 0xf39bc 0xee818 0x30a565 0xf1857 0xf19bc 0xf19fc 0x459f4a 0x44e4d0 0x13dae99 0x2614e 0x264a0e 0x13dae99 0x2614e 0x260e6 0xccade 0xccfa7 0xcc266 0x4b3c0 0x4b5e6 0x31dc4 0x25634 0x12c3ef5 0x13ad195 0x1311ff2 0x13108da 0x130fd84 0x130fc9b 0x12c27d8 0x12c288a 0x23626 0x2a0d 0x2975)
terminate called throwing an exception(lldb)
How do I remove the error?
I am new so please keep any answers simmple - thanks

Resources