uni-app中ios调用BDASignalSDK方法导致闪退
uni-app中ios调用BDASignalSDK方法导致闪退
uts 引入巨量归因BDASignalSDK它依赖Protobuf
打包之后,调用sdk的方法闪退,日志如下
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Incident Identifier: ADAFFE5E-36E1-4B72-8EBB-8673C6E07018
CrashReporter Key: C2315A0A-767E-DD9D-D816-AE46F847627B
Hardware Model: MacBookPro16,1
Process: HBuilder [12219]
Path: /Users/USER/Library/Developer/CoreSimulator/Devices/9915CB8B-45D0-43A8-ACF7-2794E8A18ED6/data/Containers/Bundle/Application/F6E729A9-3162-4717-9E2B-E2E4A02A7408/Pandora_simulator_debug.app/HBuilder
Identifier: com.zhengda.qpzjz.ios
Version: 1.1.0 (110)
Code Type: X86-64 (Native)
Role: Foreground
Parent Process: launchd_sim [12062]
Coalition: com.apple.CoreSimulator.SimDevice.9915CB8B-45D0-43A8-ACF7-2794E8A18ED6 [8670]
Responsible Process: SimulatorTrampoline [952]
Date/Time: 2023-12-23 15:21:02.1636 0800
Launch Time: 2023-12-23 15:20:28.7712 0800
OS Version: macOS 14.1.2 (23B92)
Release Type: User
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Triggered by Thread: 5
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x7ff836116a6e mach_msg2_trap 10
1 libsystem_kernel.dylib 0x7ff836124e7a mach_msg2_internal 84
2 libsystem_kernel.dylib 0x7ff83611db92 mach_msg_overwrite 653
3 libsystem_kernel.dylib 0x7ff836116d5f mach_msg 19
4 CoreFoundation 0x7ff80038788e __CFRunLoopServiceMachPort 145
5 CoreFoundation 0x7ff800381fdf __CFRunLoopRun 1371
6 CoreFoundation 0x7ff8003816a7 CFRunLoopRunSpecific 560
7 GraphicsServices 0x7ff809cb128a GSEventRunModal 139
8 UIKitCore 0x110204ad3 -[UIApplication _run] 994
9 UIKitCore 0x1102099ef UIApplicationMain 123
10 HBuilder 0x1009559c3 main 99
11 dyld_sim 0x1015032bf start_sim 10
12 dyld 0x1036413a6 start 1942
Thread 1:
0 libsystem_pthread.dylib 0x7ff836172b88 start_wqthread 0
Thread 2:: Dispatch queue: com.apple.CFNetwork.Connection
0 libcorecrypto.dylib 0x7ff800206870 AccelerateCrypto_AES_encrypt_aesni 0
1 libcorecrypto.dylib 0x7ff8001fe820 ecb_wrapper_aesni 58
2 libcorecrypto.dylib 0x7ff8001d8eff ccaes_vng_ctr_crypt 193
3 libcorecrypto.dylib 0x7ff8001de8bb generate 383
4 libcorecrypto.dylib 0x7ff8001df16d ccrng_crypto_generate 287
5 libcorecrypto.dylib 0x7ff8001c2ddc generate 17
6 libsystem_c.dylib 0x7ff8000c5ea8 uuid_generate_random 61
7 Network 0x7ff805807faa -[NWConcrete_nw_connection initWithEndpoint:parameters:identifier:] 474
8 Network 0x7ff80581eac5 nw_connection_create_with_id 197
9 Network 0x7ff805811063 nw_connection_create 83
10 CFNetwork 0x7ff804284d08 0x7ff8041df000 679176
11 CFNetwork 0x7ff804300b51 0x7ff8041df000 1186641
12 CFNetwork 0x7ff80427786a 0x7ff8041df000 624746
13 CFNetwork 0x7ff8042ffd8c 0x7ff8041df000 1183116
14 CFNetwork 0x7ff8043037c1 0x7ff8041df000 1198017
15 CFNetwork 0x7ff804303a4a 0x7ff8041df000 1198666
16 libdispatch.dylib 0x7ff80013b7fb _dispatch_call_block_and_release 12
17 libdispatch.dylib 0x7ff80013ca3a _dispatch_client_callout 8
18 libdispatch.dylib 0x7ff800144346 _dispatch_lane_serial_drain 949
19 libdispatch.dylib 0x7ff80014501a _dispatch_lane_invoke 455
20 libdispatch.dylib 0x7ff80014658c _dispatch_workloop_invoke 2447
21 libdispatch.dylib 0x7ff800151b46 _dispatch_workloop_worker_thread 870
22 libsystem_pthread.dylib 0x7ff836173c47 _pthread_wqthread 327
23 libsystem_pthread.dylib 0x7ff836172b97 start_wqthread 15
Thread 3:: com.apple.uikit.eventfetch-thread
0 libsystem_kernel.dylib 0x7ff836116a6e mach_msg2_trap 10
1 libsystem_kernel.dylib 0x7ff836124e7a mach_msg2_internal 84
2 libsystem_kernel.dylib 0x7ff83611db92 mach_msg_overwrite 653
3 libsystem_kernel.dylib 0x7ff836116d5f mach_msg 19
4 CoreFoundation 0x7ff80038788e __CFRunLoopServiceMachPort 145
5 CoreFoundation 0x7ff800381fdf __CFRunLoopRun 1371
6 CoreFoundation 0x7ff8003816a7 CFRunLoopRunSpecific 560
7 Foundation 0x7ff800c568b4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 213
8 Foundation 0x7ff800c56b2d -[NSRunLoop(NSRunLoop) runUntilDate:] 72
9 UIKitCore 0x1102da286 -[UIEventFetcher threadMain] 535
10 Foundation 0x7ff800c8011b __NSThread__start__ 1009
11 libsystem_pthread.dylib 0x7ff836177202 _pthread_start 99
12 libsystem_pthread.dylib 0x7ff836172bab thread_start 15
Thread 4:
0 libsystem_pthread.dylib 0x7ff836172b88 start_wqthread 0
Thread 5 Crashed:: com.taobao.weex.bridge
0 WebKit 0x107a7bfb3 WTFCrashWithInfo(int, char const*, char const*, int) 19
1 WebKit 0x107e41da5 WebKit::captivePortalModeObservers() 60
2 WebKit 0x107e42041 WebKit::addCaptivePortalModeObserver(WebKit::CaptivePortalModeObserver
1 回复
在 uni-app
中调用 BDASignalSDK
方法导致 iOS 应用闪退,可能是由于以下几个原因引起的。以下是一些常见的排查和解决方法:
1. SDK 版本兼容性问题
- 确保使用的
BDASignalSDK
版本与当前uni-app
和 iOS 系统版本兼容。 - 检查 SDK 的官方文档,确认是否支持当前环境。
2. 未正确配置 iOS 权限
BDASignalSDK
可能需要访问某些系统权限(如网络、定位等),如果未在Info.plist
中配置相关权限,可能会导致闪退。- 在
manifest.json
或Info.plist
中添加必要的权限声明。例如:<key>NSLocationWhenInUseUsageDescription</key> <string>需要访问您的位置信息</string> <key>NSLocationAlwaysUsageDescription</key> <string>需要访问您的位置信息</string>
3. 未正确初始化 SDK
- 确保在调用
BDASignalSDK
方法之前,已经正确初始化 SDK。 - 检查初始化代码,确保传入的参数正确无误。
4. Native 插件问题
- 如果
BDASignalSDK
是通过原生插件集成到uni-app
中的,可能是插件本身存在问题。 - 检查插件的实现代码,确保没有内存泄漏、空指针等问题。
- 如果是第三方插件,尝试联系插件作者或查看插件的 issue 列表。
5. iOS 真机调试
- 在 iOS 真机上调试,查看控制台日志,获取具体的崩溃信息。
- 使用 Xcode 打开项目,查看崩溃日志和堆栈信息,定位问题。
6. SDK 依赖库缺失
- 确保
BDASignalSDK
所需的所有依赖库都已正确添加到项目中。 - 在 Xcode 中检查
Linked Frameworks and Libraries
,确保没有缺失的库。
7. uni-app 版本问题
- 确保使用的
uni-app
版本是最新的,或者与BDASignalSDK
兼容的版本。 - 尝试升级或降级
uni-app
版本,看是否能解决问题。
8. 代码逻辑问题
- 检查调用
BDASignalSDK
方法的代码逻辑,确保没有空值、越界等问题。 - 例如,确保传入的参数不为空,且符合 SDK 的要求。
9. 联系 SDK 官方支持
- 如果以上方法都无法解决问题,可以联系
BDASignalSDK
的官方技术支持,提供详细的崩溃日志和复现步骤,寻求帮助。
示例代码(仅供参考)
假设 BDASignalSDK
的初始化方法如下:
// 在 uni-app 中调用原生方法
uni.requireNativePlugin('BDASignalSDK').init({
appKey: 'your_app_key',
// 其他配置参数
});