[_LSDefaults sharedInstance]:无法识别的选择器发送到 class 0x20cbf3aa0
[_LSDefaults sharedInstance]: unrecognized selector sent to class 0x20cbf3aa0
我最近将代码库升级到 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”获得实际的 class?
注意:这仅发生在物理设备上 运行 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
之后我检查了我所有第 3 方框架的符号(命令 - nm frameworkBinary
),我知道我的一个框架正在使用这种最终调用 _LSDefaults
私有方法的方法。并且该方法已从 iOS >= 13.0 SDK 中删除。
我向我的第 3 方供应商提出了这个问题,他们会为此提供一个更新的框架。
感谢大家的评论和观看问题,发布答案,以便它可以帮助以后遇到同样问题的其他人。
如果你 post 代码,我可以帮助你,但其他人注意到,应该是一个 no=n-apple 调用。 (ONIMehtodId 不是来自苹果)
请附上您在 Xcode 中使用的外部框架列表。
我最近将代码库升级到 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”获得实际的 class?
注意:这仅发生在物理设备上 运行 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
之后我检查了我所有第 3 方框架的符号(命令 - nm frameworkBinary
),我知道我的一个框架正在使用这种最终调用 _LSDefaults
私有方法的方法。并且该方法已从 iOS >= 13.0 SDK 中删除。
我向我的第 3 方供应商提出了这个问题,他们会为此提供一个更新的框架。
感谢大家的评论和观看问题,发布答案,以便它可以帮助以后遇到同样问题的其他人。
如果你 post 代码,我可以帮助你,但其他人注意到,应该是一个 no=n-apple 调用。 (ONIMehtodId 不是来自苹果)
请附上您在 Xcode 中使用的外部框架列表。