Ios [\u LSDefaults sharedInstance]:发送到类0x20cbf3aa0的无法识别的选择器

Ios [\u LSDefaults sharedInstance]:发送到类0x20cbf3aa0的无法识别的选择器,ios,swift,iphone,cocoa-touch,nsexception,Ios,Swift,Iphone,Cocoa Touch,Nsexception,我最近将代码库升级到Xcode11.3,在没有详细日志的情况下在发布时出现了以下错误: 2019-12-18 15:18:40.461627+0530 XXXXX[2485:622148] +[_LSDefaults sharedInstance]: unrecognized selector sent to class 0x20cbf3aa0 2019-12-18 15:18:40.462868+0530 XXXXX[2485:622148] *** Terminating app due t

我最近将代码库升级到Xcode11.3,在没有详细日志的情况下在发布时出现了以下错误:

2019-12-18 15:18:40.461627+0530 XXXXX[2485:622148] +[_LSDefaults sharedInstance]: unrecognized selector sent to class 0x20cbf3aa0
2019-12-18 15:18:40.462868+0530 XXXXX[2485:622148] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[_LSDefaults sharedInstance]: unrecognized selector sent to class 0x20cbf3aa0'
*** First throw call stack:
(0x1c512498c 0x1c4e4d0a4 0x1c502ccc8 0x1c578f50c 0x1c53df908 0x1c512ad90 0x1c4ffabd0 0x10c717cf8 0x10c71abc0 0x10c7242e4 0x10c723e78 0x10c7239d0 0x10c71f55c 0x10c77b5e4 0x10c7740f0 0x10c7ed5cc 0x10c7740f0 0x10c7b2f78 0x10c7d69b4 0x10c7b9f48 0x10c776e5c 0x10c7433bc 0x1c4e411ec 0x1c4e44aec)
libc++abi.dylib: terminating with uncaught exception of type NSException
不确定这里出了什么问题,是否有任何方法可以在代码中获取此“0x20cbf3aa0”的实际类


注意:这只发生在运行iOS>13的物理设备上。我发现了根本原因:

添加了
NSSetUncaughtExceptionHandler
以查找以下堆栈跟踪

2019-12-18 16:37:55.892789+0530 XXXXX[2603:645006] Stack Trace: (   
0   CoreFoundation                      0x00000001c51249a0 DA838E75-6B30-360E-9661-C4800A7E1BF6 + 1227168   
1   libobjc.A.dylib                     0x00000001c4e4d0a4 objc_exception_throw + 56    
2   CoreFoundation                      0x00000001c502ccc8 DA838E75-6B30-360E-9661-C4800A7E1BF6 + 212168    
3   CoreServices                        0x00000001c578f50c 4631A29A-FFB2-3A9D-95FF-1037507BD066 + 840972    
4   Foundation                          0x00000001c53df908 0DF2911E-80CB-3289-8A1E-ED0913D55A12 + 43272 
5   CoreFoundation                      0x00000001c512ad90 DA838E75-6B30-360E-9661-C4800A7E1BF6 + 1252752   
6   CoreFoundation                      0x00000001c4ffabd0 DA838E75-6B30-360E-9661-C4800A7E1BF6 + 7120  
7   XXXXX                               0x00000001086d3cc0 - **[ONIMehtodId invokeWithTarget:Target:parameter:result:]** + 4372 
8   XXXXX                               0x00000001086d6b88 fdwPRGInHj7S + 140   
9   XXXXX                               0x00000001086e02ac fdioJuJ5X8sy + 60    
10  XXXXX                               0x00000001086dfe40 fdfAYA5Knk6m + 1180  
11  XXXXX                               0x00000001086df998 fderBiHVLVSO + 132   
12  XXXXX                               0x00000001086db524 fdpriAImFRX8 + 5820  
13  XXXXX                               0x00000001087375ac 10Qp8Dl9pVnp + 440   
14  XXXXX                               0x00000001087300b8 108jVd8JFekR + 232   
15  XXXXX                               0x00000001087a9594 10uqENVjb5qq + 244   
16  XXXXX                               0x00000001087300b8 108jVd8JFekR + 232   
17  XXXXX                               0x000000010876ef40 100iZEfbT6gW + 1608  
18  XXXXX                               0x000000010879297c 10QzlTW4v2Ir + 56    
19  XXXXX                               0x0000000108775f10 10yEsmvqVxay + 320   
20  XXXXX                               0x0000000108732e24 10mN8k4ha1CN + 496   
21  XXXXX                               0x00000001086ff384 10444cFtXXLs + 148   
22  libsystem_pthread.dylib             0x00000001c4e411ec _pthread_start + 124 
23  libsystem_pthread.dylib             0x00000001c4e44aec thread_start + 8)
观察第7行的崩溃日志表明它正在使用
ONIMethodId
的方法
invokeWithTarget

在我检查了所有第三方框架的符号(command-
nm frameworkBinary
)之后,我知道我的一个框架正在使用这个方法,这个方法最终调用了
\u LSDefaults
private方法。该方法已从iOS>=13.0 SDK中删除

我向我的第三方供应商提出了这个问题,他们将提供一个更新的框架


感谢大家的评论和关注,发布答案,以便将来能够帮助其他面临相同问题的人。

如果你发布代码,我可以帮助你,但其他人注意到,应该是一个no=n-apple电话。(Onimethodid不是苹果公司的成员)


请附上您在Xcode中使用的外部框架列表。

您可能调用的是类方法而不是实例方法。请发布更多关于该类的详细信息,以便进一步评论。或者您需要升级一些第三方依赖关系。您是否愿意共享此(或那些)第三方框架的名称?@guozqzzu-当然,由于合规性原因,我无法告诉您确切名称,但出于提示,这是支付宝的框架。