WCSession激活Session exc_bad_access崩溃



我的WCSession activateSession有问题。我在viewDidLoad方法中添加了这段代码,它在activateSession调用时崩溃了。sendMessage也崩溃了。

if ([WCSession isSupported]) {
    [WCSession defaultSession].delegate = self;
    [[WCSession defaultSession] activateSession];
}

我认为这个问题是线程的问题,但我在主线程上调试它和这些调用。

知道问题出在哪里吗?

这是崩溃日志:

线程#1:tid=0x10aa81,0x0000000110917817 libobjc。A.dylib objc_msgSend + 23, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x408f59958d3) frame #0: 0x0000000110917817 libobjc.A.dylib objc_msgSend+23帧#1:0x00000010be8fd1c myApp +[CRWCSessionDelegateProxy performSwizzledWCSessionActivateSession:] + 62 frame #2: 0x000000010be8f869 myApp+[CRCWCSessionDelegateProxy activateSessionForWCSession:dispatch:]+72帧#3:0x000000010be8ec64 myApp __72+[CRWCSessionDelegateProxy swizzleWCSessionActivateSessionWithDispatch:]_block_invoke + 37 * frame #4: 0x000000010bd6c4e4 myApp-[FPMAppDelegate application:didFinishLaunchingWithOptions:]帧#5:0x00000010e50d1f1 UIKit -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 272 frame #6: 0x000000010e50e397 UIKit-[UIApplication_callInitializationDelegatesForMainScene:transitionContext:]+3415帧#7:0x000000010e514cc6 UIKit -[UIApplication _runWithMainScene:transitionContext:completion:] + 1760 frame #8: 0x000000010e511e7b UIKit-[UIApplication workspaceDidEndTransaction:]+188帧#9:0x0000000113203754 FrontBoardServices -[FBSSerialQueue _performNext] + 192 frame #10: 0x0000000113203ac2 FrontBoardServices-[FBSSerialQueue _performNextFromRunLoopSource]+45帧#11:0x0000000110db4a31核心基础__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 frame #12: 0x0000000110daa95c CoreFoundation__CFRunLoopDoSources0+556帧#13:0x0000000110da9e13核心基础__CFRunLoopRun + 867 frame #14: 0x0000000110da9828 CoreFoundation CFRunLoopRunSpecific+488帧#15:0x000000010e5117cd UIKit -[UIApplication _run] + 402 frame #16: 0x000000010e516610 UIKit UIApplicationMain+171帧#17:0x000000010bcdc8cf myApp main(argc=1, argv=0x00007fff540ca3c0) + 111 at main.m:16 frame #18: 0x0000000111ab292d libdyld.dylib启动+1

我的应用程序中有Critterism框架。一旦我在我的应用程序委托方法中评论了这一行,一切都很好。

[Crittercism enableWithAppID:CRITTERCISM_APP_ID];

如果你在应用程序中使用Circtterism,请确保在Critterism之前写下这行[[WCSession defaultSession] activateSession]。似乎他们支持watch2.0,这就是冲突的原因。

您的代码必须在之前调用

[Crittercism enableWithAppID:].

最新更新