我们已经将BlackBerry Dynamics集成到我们的iOS应用程序中,该应用程序也使用Firebase。在运行iOS 12/13的设备上,一切正常,但是在运行iOS 14的设备上,应用程序在初始化Firebase时崩溃。
BlackBerry授权很好,一旦用户被授权,那么初始化Firebase的代码就会被执行,崩溃就会发生。
BlackBerry Dynamics版本为8.1.0.37,我们使用的是动态库而不是静态库。
BlackBerry Dynamics说:
SDK版本8.1是为了支持iOS 14上的应用程序而需要的。FirebaseCore与iOS 14上的SDK8.0或更低版本不兼容。如果应用程序不使用FirebaseCore,则应该删除FirebaseCore pod。
下面是调用堆栈:
#0 __exceptionPreprocess ()
#1 objc_exception_throw ()
#2 -[NSProxy methodSignatureForSelector:] ()
#3 ___forwarding___ ()
#4 _CF_forwarding_prep_0 ()
#5 +[ACSubclasser wrapObjectIntoSubclass:] ()
#6 +[NSURLSession(ACURLProtocol) ac_rawSessionWithConfiguration:delegate:delegateQueue:] ()
#7 +[NSURLSession(ACURLProtocol) miac_sessionWithConfiguration:delegate:delegateQueue:] ()
#8 ___lldb_unnamed_symbol9442$$BlackBerryDynamics ()
#9 ___lldb_unnamed_symbol9444$$BlackBerryDynamics ()
#10 -[FIRInstallationsAPIService initWithAPIKey:projectID:]
#11 -[FIRInstallationsIDController initWithGoogleAppID:appName:APIKey:projectID:GCMSenderID:accessGroup:]
#12 -[FIRInstallations initWitAppOptions:appName:]
#13 -[FIRInstallations initWithApp:]
#14 __40+[FIRInstallations componentsToRegister]_block_invoke
#15 -[FIRComponentContainer instantiateInstanceForProtocol:withBlock:]
#16 -[FIRComponentContainer instanceForProtocol:]
#17 +[FIRComponentType instanceForProtocol:inContainer:]
#18 +[FIRInstallations installationsWithApp:]
#19 +[FIRInstallations installations]
#20 +[FIRAnalytics updateFirebaseInstallationID] ()
#21 +[FIRAnalytics startWithConfiguration:options:] ()
#22 -[FIRApp configureCore]
#23 +[FIRApp addAppToAppDictionary:]
#24 +[FIRApp configureWithName:options:]
#25 +[FIRApp configureWithOptions:]
#26 +[FIRApp configure]
#27 -[MFAppDelegate finalizeApplicationLaunch]
#28 -[MFAppGDDelegate didAuthorize]
#29 -[MFAppGDDelegate onAuthorized:]
#30 -[MFAppGDDelegate handleEvent:]
#31 __NSThreadPerformPerform ()
#32 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#33 __CFRunLoopDoSource0 ()
#34 __CFRunLoopDoSources0 ()
#35 __CFRunLoopRun ()
#36 CFRunLoopRunSpecific ()
#37 GSEventRunModal ()
#38 -[UIApplication _run] ()
#39 UIApplicationMain ()
#40 main
#41 start ()下面是打印到控制台上的内容:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSProxy methodSignatureForSelector:] called!'
*** First throw call stack:
(0x1a619d114 0x1b99c3cb4 0x1a745f3f8 0x1a619f2e4 0x1a61a16cc 0x1103d3540 0x11036960c 0x110369320 0x1042370f8 0x104237680 0x100e83ed4 0x100e896e8 0x100e825d4 0x100e82428 0x100e82320 0x100e35a50 0x100e35cd8 0x100e36358 0x100e82dd0 0x100e82d08 0x1015c3f84 0x1015c3eb0 0x100e30e74 0x100e309d4 0x100e2fd54 0x100e2f778 0x100e2f6cc 0x10087eeec 0x100b5e7a8 0x100b5eaf0 0x100b5e6ac 0x1a747cda0 0x1a611d240 0x1a611d140 0x1a611c488 0x1a6116a40 0x1a6116200 0x1bc211598 0x1a89dc004 0x1a89e15d8 0x1008a228c 0x1a5df5598)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSProxy methodSignatureForSelector:] called!'
terminating with uncaught exception of type NSException有人知道有没有办法解决这个问题吗?
发布于 2020-10-07 05:00:02
我们发现,只有当MobileIron的AppConnect SDK也链接到应用程序时,才会发生崩溃。
因此,我们能够通过从应用程序的AppConnect动态版本中删除BlackBerry SDK来解决这个问题。
发布于 2020-09-29 02:05:55
在这种情况下,dylib和静态应该是相同的。建议与BlackBerry支持小组联系,以调查该问题是否仍然存在。
https://stackoverflow.com/questions/64064217
复制相似问题