按下分享按钮后,我的iOS游戏崩溃。这个按钮可以让用户选择发送/发送预先写好的文本行和链接到应用程序到Twitter,FB,邮件,消息等。我能够在运行iOS 8.2的所有iPad模拟器上复制崩溃。仅在iPad上按Share(分享)按钮后iOS游戏崩溃
这里是symbolicated崩溃报告:https://www.dropbox.com/s/yyo4ouniegt6s0e/dotSports.crash?dl=0
除了:服用产生碰撞的行动时,这是在Xcode输出框。
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7a863100>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'
*** First throw call stack:
(
0 CoreFoundation 0x04980466 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x03caea97 objc_exception_throw + 44
2 UIKit 0x02564517 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086
3 UIKit 0x01e63f48 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666
4 UIKit 0x01e624eb __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 186
5 UIKit 0x01e9642b __40+[UIViewController _scheduleTransition:]_block_invoke + 18
6 UIKit 0x01d5b946 ___afterCACommitHandler_block_invoke + 15
7 UIKit 0x01d5b8f1 _applyBlockToCFArrayCopiedToStack + 415
8 UIKit 0x01d5b706 _afterCACommitHandler + 545
9 CoreFoundation 0x048a318e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
10 CoreFoundation 0x048a30d0 __CFRunLoopDoObservers + 400
11 CoreFoundation 0x04898b0a __CFRunLoopRun + 1226
12 CoreFoundation 0x0489837b CFRunLoopRunSpecific + 443
13 CoreFoundation 0x048981ab CFRunLoopRunInMode + 123
14 GraphicsServices 0x0524d2c1 GSEventRunModal + 192
15 GraphicsServices 0x0524d0fe GSEventRun + 104
16 UIKit 0x01d319b6 UIApplicationMain + 1526
17 Gem Dots copy 0x00213896 main + 134
18 libdyld.dylib 0x04365ac9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
下面是它崩溃的代码:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
[pool release];
return retVal;
}
下面是分享按钮代码:
-(void) displayShare:(NSString*)strText imageIdx:(int)nIdx URL:(NSString*)strURL
{
UIActivityViewController *activityView;
if(nIdx >= 0)
{
NSString* str = [NSString stringWithFormat:@"new-arc-%d-ipad.png", nIdx+1];
UIImage* image = [UIImage imageNamed:str];
activityView = [[UIActivityViewController alloc] initWithActivityItems:@[strText, image, [NSURL URLWithString:strURL]] applicationActivities:nil];
}
else
activityView = [[UIActivityViewController alloc] initWithActivityItems:@[strText, [NSURL URLWithString:strURL]] applicationActivities:nil];
activityView.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypePrint];
// [viewController presentViewController:activityView animated:YES completion:nil];
[window.rootViewController presentViewController:activityView animated:YES completion:nil];
[activityView setCompletionHandler:^(NSString *activityType, BOOL completed) {
NSLog(@"completed dialog - activity: %@ - finished flag: %d", activityType, completed);
if(completed)
{
if([activityType isEqualToString: @"com.apple.UIKit.activity.PostToFacebook"])
{
g_bArchiveMark[19] = true;
AppSettings::setArchieveInfo(19);
}
else if([activityType isEqualToString: @"com.apple.UIKit.activity.PostToTwitter"])
{
g_bArchiveMark[20] = true;
AppSettings::setArchieveInfo(20);
}
}
}];
}
任何想法,以什么可能会导致崩溃或如何弥补崩溃?
谢谢!
请更新您的问题,包括崩溃报告和任何相关的代码。 –
你有没有使用activityviewcontroller –