一个困扰了一个下午的系统Bug.
dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N10__cxxabiv116__shim_type_infoE, id, N10__cxxabiv117__pbase_type_infoE.
2020-02-13 10:35:41.998879+0800 Notebook[8187:1760657] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N10__cxxabiv116__shim_type_infoE, id, N10__cxxabiv117__pbase_type_infoE.
2020-02-13 10:35:42.039362+0800 Notebook[8187:1760657] [Bugly] Trapped uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UIScrollerImpContainerView because no class named _UIScrollerImpContainerView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)'
(
0 CoreFoundation 0x000000018b0c0980 DC2C95C6-B954-39E8-86A2-5E0AF8801E87 + 1255808
1 libobjc.A.dylib 0x000000018add9028 objc_exception_throw + 60
2 CoreFoundation 0x000000018afb014c DC2C95C6-B954-39E8-86A2-5E0AF8801E87 + 139596
3 UIFoundation 0x000000018e70810c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 446732
4 UIFoundation 0x000000018e708480 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 447616
5 UIFoundation 0x000000018e6a300c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 32780
6 UIKitCore 0x000000018f643488 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 15488136
7 UIKitCore 0x000000018f5e7264 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 15110756
8 UIKitCore 0x000000018e9e9ac4 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 2538180
9 UIFoundation 0x000000018e70824c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 447052
10 UIFoundation 0x000000018e6a300c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 32780
11 UIKitCore 0x000000018ee4d9f0 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 7141872
12 UIFoundation 0x000000018e70824c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 447052
13 UIFoundation 0x000000018e708480 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 447616
14 UIFoundation 0x000000018e6a300c 8BADFA0D-F517-39F9-AC82-CECDB0A4AC66 + 32780
15 UIKitCore 0x000000018ee488f0 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 7121136
16 UIKitCore 0x000000018ee4b528 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 7132456
17 UIKitCore 0x000000018eb7bc88 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 4185224
18 UIKitCore 0x000000018eb7c74c AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 4187980
19 UIKitCore 0x000000018eb7ca1c AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 4188700
20 UIKitCore 0x000000018eb7d104 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 4190468
21 UIKitCore 0x000000018eaf7c9c AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 3644572
22 UIKitCore 0x000000018ea9dfe0 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 3276768
23 UIKitCore 0x000000018ea9a114 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 3260692
24 UIKitCore 0x000000018eb8a640 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 4245056
25 UIKitCore 0x000000018f1cafcc AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 10801100
26 UIKitCore 0x000000018f1ba5f0 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 10733040
27 UIKitCore 0x000000018f1eb980 AAFEFEBE-C172-3346-8972-810EB8F2F2C6 + 10934656
28 CoreFoundation 0x000000018b03b524 DC2C95C6-B954-39E8-86A2-5E0AF8801E87 + 709924
29 CoreFoundation 0x000000018b0361c4 DC2C95C6-B954-39E8-86A2-5E0AF8801E87 + 688580
30 CoreFoundation 0x000000018b036774 DC2C95C6-B954-39E8-86A2-5E0AF8801E87 + 690036
31 CoreFoundation 0x000000018b035f40 CFRunLoopRunSpecific + 480
32 GraphicsServices 0x00000001952c6534 GSEventRunModal + 108
33 UIKitCore 0x000000018f1c1580 UIApplicationMain + 1940
34 Notebook 0x0000000104806128 main + 124
35 libdyld.dylib 0x000000018aeb4e18 9D122047-19B7-36A2-A892-27401F9E0E6C + 3608
)
2020-02-13 10:35:42.051911+0800 Notebook[8187:1760930] xtArchive : <CKServerChangeToken: 0x283c6cc00; data=AQAAAAAAAKm2f/////////8ijTyGXIlPnoa7mLOWM6O9>
success in path : /var/mobile/Containers/Data/Application/702B875C-A471-498C-9F81-2BCFCECBCB33/Library/kKeyForPreviousServerChangeToken
<---🏀🏀🏀🏀🏀
<URLProtocol.m : 35> +[URLProtocol canonicalRequestForRequest:]
2020-02-13 10:35:42.078841+0800 Notebook[8187:1760930] [https://ios.bugly.qq.com/rqd/sync?aid=A0F8575E-DD89-462B-B5A0-E0CE72F729C6](https://ios.bugly.qq.com/rqd/sync?aid=A0F8575E-DD89-462B-B5A0-E0CE72F729C6)
🏀🏀🏀🏀🏀--->
2020-02-13 10:35:44.056439+0800 Notebook[8187:1760657] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UIScrollerImpContainerView because no class named _UIScrollerImpContainerView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)'
*** First throw call stack:
(0x18b0c096c 0x18add9028 0x18afb014c 0x18e70810c 0x18e708480 0x18e6a300c 0x18f643488 0x18f5e7264 0x18e9e9ac4 0x18e70824c 0x18e6a300c 0x18ee4d9f0 0x18e70824c 0x18e708480 0x18e6a300c 0x18ee488f0 0x18ee4b528 0x18eb7bc88 0x18eb7c74c 0x18eb7ca1c 0x18eb7d104 0x18eaf7c9c 0x18ea9dfe0 0x18ea9a114 0x18eb8a640 0x18f1cafcc 0x18f1ba5f0 0x18f1eb980 0x18b03b524 0x18b0361c4 0x18b036774 0x18b035f40 0x1952c6534 0x18f1c1580 0x104806128 0x18aeb4e18)
libc++abi.dylib: terminating with uncaught exception of type NSException
在XCode11.3.1 11.3 11.2.1 均报错如下
Trapped uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UIScrollerImpContainerView because no class named _UIScrollerImpContainerView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)'
官网也没有解决方案. 近年Apple的开发一直被吐槽Bug太多. 顶不住了.
看上下文描述. 似乎是用到xib启动的时候出问题. 找不到_UIScrollerImpContainerView这个系统Class.
坑爹.
最后解决方案是下载老版本 Xcode 11.1 打包解决. 或等新版本Xcode解决后更新.