2012-06-19 238 views
0

我刚刚在iTunes Connect中出现了一个崩溃报告,所以我已经将它加载到Xcode中,它为我提供了象征。ShareKit导致iOS应用程序崩溃?

有关部分是:

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 
Crashed Thread: 0 

Last Exception Backtrace: 
0 CoreFoundation     0x323e188f __exceptionPreprocess + 163 
1 libobjc.A.dylib     0x34437259 objc_exception_throw + 33 
2 CoreFoundation     0x323e1789 +[NSException raise:format:] + 1 
3 CoreFoundation     0x323e17ab +[NSException raise:format:] + 35 
4 Bitrate Tester     0x00048435 0x0001a435 
5 Bitrate Tester     0x00031473 -[FirstViewController viewDidLoad] (FirstViewController.m:27) 

FirstViewController,是,这并不奇怪,第一视图控制器我的应用程序显示的,这意味着[FirstViewController viewDidLoad]基本上称为我的应用程序的第一实际方法。因此,以前称之为错误的可能性不大。

现在,这是怎么viewDidLoad如下:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    DefaultSHKConfigurator *configurator = [[MySHKConfigurator alloc] init]; 
    [SHKConfiguration sharedInstanceWithConfigurator:configurator]; 
    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKFacebook",@"SHKTwitter",@"SHKMail",nil] forType:SHKShareTypeText]; 
} 

第27行是

[SHKConfiguration sharedInstanceWithConfigurator:configurator]; 

那么,是ShareKit导致我的应用程序崩溃?请注意,我无法在任何设备上重现问题(我在iOS模拟器,iOS 5.1.1上的iPhone 4,iOS 5.1.1上的iPad 2以及iOS 5.1上的iPhone 3GS上进行了测试。 1)。有什么想法吗?

+0

绝对看起来像一个共享套件的问题。可以以某种方式与[此问题]相关(https://github.com/ShareKit/ShareKit/issues/321)。看起来有报道,但由于难以复制,从未修复过。 – Dima

回答

1

我认为在你的应用程序中调用的第一个方法是applicationDidFinishLaunchingWithOptions:在你的应用程序委托中,而不是viewDidLoad。

它有时可能会发生,您的视图被卸载(例如由于内存不足),然后再次加载。这次配置器可能会加载两次,这是不好的。

因此,解决方案可能是将ShareKit配置移动到applicationDidFinishLaunchingWithOptions,如configuration wiki中所述。这种方法保证只被调用一次。

+0

我可以看出这是有道理的,我会尝试移动它并查看崩溃是否持续...在此期间向您+1。 – houbysoft