2012-06-19 294 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