首页 > 解决方案 > Tapkey Mobile SDK 在 iOS 上崩溃 - java.lang.IllegalArgumentException

问题描述

我正在尝试将 Tap key Mobile SDK 集成到现有的 iOS 应用程序项目中。

每当我尝试调用TKMServiceFactoryBuilder().build()时,都会出现应用程序崩溃并出现此异常java.lang.IllegalArgumentException

tryCatchObjc添加堆栈跟踪。它没有解释,因为上面的方法调用似乎发生在 Mobile SDK 的私有实现中。

    0   CoreFoundation                      0x000000019cb9b270 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 1159792
    1   libobjc.A.dylib                     0x00000001b0930480 objc_exception_throw + 56
    2   LattisCore                          0x0000000108736300 +[GG_Gson_Preconditions __metadata] + 0
    3   LattisCore                          0x0000000108741d68 -[GGGsonBuilder registerTypeHierarchyAdapterWithIOSClass:withId:] + 136
    4   LattisCore                          0x00000001087adc14 NetTpkyMcRestGsonUtils_createGsonWithBoolean_ + 136
    5   LattisCore                          0x00000001087ade48 +[NetTpkyMcRestGsonUtils initialize] + 52
    6   libobjc.A.dylib                     0x00000001b090bd30 5A4C477A-8AB3-3703-A88E-3AF91D10189A + 7472
    7   libobjc.A.dylib                     0x00000001b0911c5c 5A4C477A-8AB3-3703-A88E-3AF91D10189A + 31836
    8   libobjc.A.dylib                     0x00000001b0912fb8 5A4C477A-8AB3-3703-A88E-3AF91D10189A + 36792
    9   libobjc.A.dylib                     0x00000001b0921234 5A4C477A-8AB3-3703-A88E-3AF91D10189A + 94772
    10  libobjc.A.dylib                     0x00000001b090c500 5A4C477A-8AB3-3703-A88E-3AF91D10189A + 9472
    11  libswiftCore.dylib                  0x00000001a082f994 swift_getInitializedObjCClass + 20
    12  LattisCore                          0x0000000108810b4c $s15TapkeyMobileLib20TkFileManagerDaoImplC6toJson33_524952B98DFA1635BB8A45B608126161LLySSypSgFTf4nd_n + 36
    13  LattisCore                          0x000000010880d190 $s15TapkeyMobileLib20TkFileManagerDaoImplC4save4withAE0J2IdySSSg_AGypSgtF + 88
    14  LattisCore                          0x000000010880d34c $s15TapkeyMobileLib20TkFileManagerDaoImplC4save4withAE0J2IdySSSg_AGypSgtFTo + 188
    15  LattisCore                          0x000000010881b364 $s15TapkeyMobileLib09TKMMobileC11DataContextC04initeF021dataMigrationListeneryAA07TKMDatafiJ0_pSg_tF + 1368
    16  LattisCore                          0x000000010882a1a8 $s15TapkeyMobileLib24TKMServiceFactoryBuilderC0a7ServiceE4ImplCyAeCc33_1ADD77A5E2214429E5597CBFBC4D153BLlfcTf4gn_n + 792
    17  LattisCore                          0x0000000108829720 $s15TapkeyMobileLib24TKMServiceFactoryBuilderC5buildAA0dE0_pyF + 60
    18  LattisCore                          0x0000000107c91b1c $s10LattisCore9AppRouterCACycfcyycfU_ + 56
    19  LattisCore                          0x000000010882d72c $s15TapkeyMobileLib12tryCatchObjcySo11NSExceptionCSgyycFyycfU_TA + 20
    20  LattisCore                          0x0000000107c4eba4 $sIeg_IeyB_TR + 52
    21  LattisCore                          0x00000001087e327c tryObjc + 52
    22  LattisCore                          0x000000010882d030 $s15TapkeyMobileLib12tryCatchObjcySo11NSExceptionCSgyycF + 264
    23  LattisCore                          0x0000000107c913b8 $s10LattisCore9AppRouterCACycfc + 3748
    24  LattisCore                          0x0000000107c91b50 $s10LattisCore9AppRouterCACycfcTo + 20
    25  LattisCore                          0x0000000107c8fb40 $s10LattisCore9AppRouterCACycfC + 28
    26  LattisCore                          0x0000000107c8fb0c $s10LattisCore9AppRouterC6shared_WZ + 32
    27  libdispatch.dylib                   0x000000010a84d32c _dispatch_client_callout + 16
    28  libdispatch.dylib                   0x000000010a84ec74 _dispatch_once_callout + 84
    29  libswiftCore.dylib                  0x00000001a08258d8 swift_once + 44
    30  LattisCore                          0x0000000107c8fb88 $s10LattisCore9AppRouterC6sharedACvau + 64
    31  Lattis Prod                         0x0000000102a6ef7c $s6Lattis11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0j6LaunchI3KeyaypGSgtF + 104
    32  Lattis Prod                         0x0000000102a6f3bc $s6Lattis11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0j6LaunchI3KeyaypGSgtFTo + 212
    33  UIKitCore                           0x000000019f43c7b0 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 11716528
    34  UIKitCore                           0x000000019f43e150 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 11723088
    35  UIKitCore                           0x000000019f443f24 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 11747108
    36  UIKitCore                           0x000000019eb168c0 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2123968
    37  UIKitCore                           0x000000019f03b2c8 _UIScenePerformActionsWithLifecycleActionMask + 96
    38  UIKitCore                           0x000000019eb173a8 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2126760
    39  UIKitCore                           0x000000019eb16eb0 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2125488
    40  UIKitCore                           0x000000019eb171d4 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2126292
    41  UIKitCore                           0x000000019eb16a90 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2124432
    42  UIKitCore                           0x000000019eb1e72c E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2156332
    43  UIKitCore                           0x000000019ef5538c E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 6574988
    44  UIKitCore                           0x000000019f053184 _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 248
    45  UIKitCore                           0x000000019eb1e420 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 2155552
    46  UIKitCore                           0x000000019e95dae4 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 318180
    47  UIKitCore                           0x000000019e95c590 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 312720
    48  UIKitCore                           0x000000019e95d730 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 317232
    49  UIKitCore                           0x000000019f4420fc E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 11739388
    50  UIKitCore                           0x000000019ef7ba84 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 6732420
    51  FrontBoardServices                  0x00000001ab675d00 C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 36096
    52  FrontBoardServices                  0x00000001ab69d4fc C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 197884
    53  FrontBoardServices                  0x00000001ab683420 C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 91168
    54  FrontBoardServices                  0x00000001ab69d214 C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 197140
    55  libdispatch.dylib                   0x000000010a84d32c _dispatch_client_callout + 16
    56  libdispatch.dylib                   0x000000010a8507e4 _dispatch_block_invoke_direct + 232
    57  FrontBoardServices                  0x00000001ab6c1e04 C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 347652
    58  FrontBoardServices                  0x00000001ab6c1acc C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 346828
    59  FrontBoardServices                  0x00000001ab6c1fa0 C97A2E0C-03AA-37C0-A55C-4854EAF0E8C3 + 348064
    60  CoreFoundation                      0x000000019cb1a8a8 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 633000
    61  CoreFoundation                      0x000000019cb1a7a8 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 632744
    62  CoreFoundation                      0x000000019cb19afc 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 629500
    63  CoreFoundation                      0x000000019cb14018 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 606232
    64  CoreFoundation                      0x000000019cb137d0 CFRunLoopRunSpecific + 572
    65  GraphicsServices                    0x00000001b3255570 GSEventRunModal + 160
    66  UIKitCore                           0x000000019f4402d0 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 11731664
    67  UIKitCore                           0x000000019f44584c UIApplicationMain + 164
    68  Lattis Prod                         0x0000000102a6fd68 main + 84
    69  libdyld.dylib                       0x000000019c7f2140 FFBE9840-BC5A-338D-8AE0-C6FFE5E834CC + 4416

标签: iossdktapkey

解决方案


[更新 01.12.2021]

Tapkey Mobile SDK for iOS 2.19.2.0 版本解决了这个问题。它现在可以根据自己的动态框架与 cocoapod 链接,而不会出现重复符号的问题。

[旧答案]

这个问题似乎与 cocoapod 相关: https ://github.com/CocoaPods/CocoaPods/issues/7155

Tapkey Mobile SDK 是并且使用静态库/框架。当 Tapkey Mobile SDK 与 cocoapods 和自己的动态框架一起使用时,cocoapods 配置项目,以便静态库/框架与目标应用程序和动态框架链接。这会导致在运行时出现重复的符号,从而导致此崩溃。

要解决此问题,必须从目标应用程序中删除链接标志。


推荐阅读