Giter VIP home page Giter VIP logo

growingio / growingio-sdk-ios-autotracker Goto Github PK

View Code? Open in Web Editor NEW
87.0 12.0 33.0 6.71 MB

GrowingIO Analytics SDK for iOS/macOS/tvOS/watchOS/visionOS.

Home Page: https://www.growingio.com/

License: Apache License 2.0

Objective-C 88.12% HTML 1.13% Ruby 0.76% C 2.45% Shell 0.71% Swift 6.41% Objective-C++ 0.43%
analytics cocoapods data-analysis growingio ios macos marketing-automation sdk swift-package-manager

growingio-sdk-ios-autotracker's Introduction

GrowingIO Autotracker

GrowingIO
CI codecov License

GrowingIO简介

创立于 2015 年,GrowingIO 是国内领先的一站式数据增长引擎方案服务商,属 StartDT 奇点云集团旗下品牌。以数据智能分析为核心,GrowingIO 通过构建客户数据平台,打造增长营销闭环,帮助企业提升数据驱动能力,赋能商业决策、实现业务增长。
GrowingIO 专注于零售、电商、保险、酒旅航司、教育、内容社区等行业,成立以来,累计服务超过 1500 家企业级客户,获得 LVMH 集团、百事、达能、老佛爷百货、戴尔、lululemon、美素佳儿、宜家、乐高、美的、海尔、安踏、汉光百货、中原地产、上汽集团、广汽蔚来、理想汽车、招商仁和人寿、飞鹤、红星美凯龙、东方航空、滴滴、新东方、喜茶、每日优鲜、奈雪的茶、永辉超市等客户的青睐。

SDK 简介

GrowingIO Autotracker 具备自动采集基本的用户行为事件,比如访问和行为数据等。目前支持代码埋点、无埋点、可视化圈选、热图等功能。

集成文档

如何集成

License

Copyright (C) 2024 Beijing Yishu Technology Co., Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

growingio-sdk-ios-autotracker's People

Contributors

beyond-chao avatar caicaino avatar geeklee609 avatar gio-yanruixue avatar giosdk avatar littersun avatar lvyuqiang avatar styluo avatar testpersonal avatar tianhui12 avatar wennjiasheng avatar yolomao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

growingio-sdk-ios-autotracker's Issues

在 xcode14 beta6 版本代码报错

描述你的问题以及如何重现

error build: Undefined symbol: OBJC_CLASS$_GrowingTrackConfiguration

请提供您看到的异常或错误

error build: Undefined symbol: _OBJC_CLASS_$_GrowingTrackConfiguration

请提供您发现此错误的环境

error build: Undefined symbol: _OBJC_CLASS_$_GrowingTrackConfiguration

其他信息

error build: Undefined symbol: OBJC_CLASS$_GrowingTrackConfiguration

GrowingULSwizzler Bug

描述你的问题以及如何重现

GrowingULSwizzler 通过 OriginMethod 作为 Key 来存储并执行原实现和 Swizzle 实现;

这将导致,在 GrowingULSwizzler 之后,再使用较为常用的 Method Swizzling 方式继续 swizzle,class_getInstanceMethod(class, selector) 所获取到的 Method 就不再是 OriginMethod 了,因而找不到原实现和 Swizzle 实现

static void growingul_swizzledMethod_2(id self, SEL _cmd) {
    Method aMethod = class_getInstanceMethod([self class], _cmd);
    GrowingULSwizzleEntity *swizzle =
        (GrowingULSwizzleEntity *)[growingSwizzles objectForKey:GROWING_MAPTABLE_ID(aMethod)];
    if (swizzle) {
        ((void (*)(id, SEL))swizzle.originalMethod)(self, _cmd);

        NSEnumerator *blocks = [swizzle.blocks objectEnumerator];
        GrowingULSwizzleBlock block;
        while ((block = [blocks nextObject])) {
            block(self, _cmd);
        }
    }
}

请提供您看到的异常或错误

GrowingULSwizzler 代码异常

请提供您发现此错误的环境

使用如下代码复现:

#import "GrowingULSwizzle.h"
#import "GrowingULSwizzler.h"

@interface Foo : NSObject

@end

@implementation Foo

- (void)hello {
    NSLog(@"Hello - 原函数触发");
}

- (void)swizzle_hello {
    [self swizzle_hello];
    NSLog(@"Hello - 常用的swizzle触发");
}

@end
[GrowingULSwizzler growingul_swizzleSelector:@selector(hello) onClass:[Foo class] withBlock:^{
    NSLog(@"Hello - GrowingULSwizzler触发");
} named:@"hello"];
    
[Foo growingul_swizzleMethod:@selector(hello) withMethod:@selector(swizzle_hello) error:nil];

Foo *foo = [Foo new];
[foo hello];

执行结果:
仅打印日志:Hello - 常用的swizzle触发

期望结果:
打印:
Hello - 原函数触发
Hello - GrowingULSwizzler触发
Hello - 常用的swizzle触发

其他信息

延迟初始化情况下,VIEW_CLICK、VIEW_CHANGE 缺少 path、pageShowTimestamp 字段

描述你的问题以及如何重现

重现场景:

SDK 延迟初始化

问题来源:

GrowingPageManager 中,在当前 ViewController 生命周期 viewDidAppear 时机创建 GrowingPage 对象关联,并发送 PAGE 事件

- (void)viewControllerDidAppear:(UIViewController *)controller {
if (![self isPrivateViewControllerIgnored:controller]) {
[self createdViewControllerPage:controller];
[self addDidAppearController:controller];
}
}

如果采用延迟初始化,则初始化 SDK 之前已展示的 ViewController A,尚未创建 GrowingPage 对象,也不会发送 PAGE 事件(正常逻辑)

异常描述:

  • 尚未创建 GrowingPage 对象的当前 ViewController A 内部的 VIEW_CLICK、VIEW_CHANGE 事件,由于-[GrowingPageManager findPageByView:] 获取到的 GrowingPage 对象为 nil,导致缺少 path、pageShowTimestamp 字段值
    + (void)viewOnClick:(UIView *)view {
    if ([view growingNodeDonotTrack]) {
    GIOLogDebug(@"viewOnClick %@ is donotTrack",view);
    return;
    }
    GrowingPageGroup *page = [[GrowingPageManager sharedInstance] findPageByView:view];
    if (!page) {
    page = [[GrowingPageManager sharedInstance] currentPage];
    }
    GrowingViewNode *node = [GrowingNodeHelper getViewNode:view];
    [self sendClickEvent:page viewNode:node];
    }
  • 同样地,圈选时,也会由于-[GrowingPageManager findPageByView:] 获取到的 GrowingPage 对象为 nil,导致当前页面截图不上报
    if (self.isPageDontShow) {
    completion(nil);
    return;
    }

请提供您看到的异常或错误

No response

请提供您发现此错误的环境

SDK 全版本

其他信息

No response

GrowingPageGroup的childPages逻辑问题

目前代码只发现了childPages的添加逻辑,并未发现其删除逻辑。这样存在的问题是,如果当前现实的VC通过返回pop到父页面,当前VC会被回收,但是其Page对象仍然被父VC的page对象引用,会造成内存泄漏,多次push和pop会导致父vc的page的childPages不断增大。是否在vc disapperance时候从父vc的page中移除?

延迟初始化情况下,PAGE 事件漏发,且 page.path 不准确

描述你的问题以及如何重现

重现场景:

SDK 延迟初始化

问题来源:

GrowingPageManager 中,在当前 ViewController 生命周期 viewDidAppear 时机创建 GrowingPage 对象关联,并发送 PAGE 事件

- (void)viewControllerDidAppear:(UIViewController *)controller {
if (![self isPrivateViewControllerIgnored:controller]) {
[self createdViewControllerPage:controller];
[self addDidAppearController:controller];
}
}

同时,查找 parentVC,获取 parentVC 的 GrowingPage 对象,建立 pageTree
page.parent = [self findParentPage:viewController];
if (page.parent != nil) {
[page.parent addChildrenPage:page];
}

如果 parentVC 存在且此前没有创建过 GrowingPage 对象,则将当前 ViewController 加入 ignoredPrivateControllers 数组
- (GrowingPageGroup *)findParentPage:(UIViewController *)carrier {
UIViewController *parentVC = nil;
if ([carrier isKindOfClass:UIAlertController.class]) {
parentVC = [self currentViewController];
} else {
parentVC = carrier.parentViewController;
}
if (parentVC == nil) {
GIOLogError(@"%@ you want find parentVC is nil", carrier);
return nil;
} else {
GrowingPageGroup *page = [parentVC growingPageHelper_getPageObject];
if (page == nil) {
[self.ignoredPrivateControllers addObject:NSStringFromClass(carrier.class)];
GIOLogError(@"UIViewController: %@ associated page object is nil", carrier);
}
return page;
}
}

异常描述:

以上逻辑在 SDK 延迟初始化情况下,会出现:

  • PAGE 事件漏发:因 ViewController (比如首页点击跳转的下一个页面) 的 parentVC (比如首页) 在延迟初始化下未创建 GrowingPage 对象,此时将会把当前 ViewController 加入 ignoredPrivateControllers 数组,导致 ViewController 在第 >1 次进入 viewDidAppear 生命周期时不再发 PAGE 事件
  • page.path 不准确:因 parentVC 未创建 GrowingPage 对象,pageTree 不完整,最终 page.path = page.path 而不是 page.path = parent.path.concat(page.path)
  • 当前 ViewController 内部的 VIEW_CLICK、VIEW_CHANGE 事件缺少 path、pageShowTimestamp 字段值:由于当前 ViewController 被加入 ignoredPrivateControllers 数组,导致 -[GrowingPageManager findPageByView:] 获取到的 GrowingPage 对象为 nil

请提供您发现此错误的环境

SDK 全版本

其他信息

No response

GrowingSwizzler Hook存在递归调用

GrowingSwizzler Hook方案是有缺陷的,它按照参数个数把所有函数集中到某一个函数集中处理,当子类和父类对象都被Hook了,且子类调用了super后,就会造成递归。所以如果两个VC存在继承关系且都实现tableViewdeletegate,且在子类调用了super,必定会造成递归。
demo如下:
@interface Parent:NSObject
@Property(copy,nonatomic) NSString *name;
-(void) showName;
@EnD
@implementation Parent
-(void) showName {
NSLog(@"showName: %@",_name);
}
@EnD

@interface Child : Parent

@EnD
@implementation Child

-(void) showName {
[super showName];
NSLog(@"this is chiled");
}

@EnD

-(void) hookTest {
[GrowingSwizzler growing_swizzleSelector:@selector(showName) onClass:[Parent class] withBlock:^(id name,SEL sel){
NSLog(@"hooked:%@",name);
} named:@"showName"];

[GrowingSwizzler growing_swizzleSelector:@selector(showName) onClass:[Child class] withBlock:^(id name,SEL sel){
    NSLog(@"hooked:%@",name);
} named:@"showName2"];

Parent * parent = [Parent new];
parent.name = @"father";
[parent showName];

Child *child = [Child new];
child.name = @"child";
[child showName];

}

Page路径追踪问题

目前页面路径的产生依赖于顶层UIViewController的viewDidAppear:,如果在路径中有一个或者几个类重写了VC的ViewDidAppear,并且没有调用super viewDidappear就会导致路径错误。这个地方是否参考mixpanel的基于VC的层级关系来产生页面路径会更合理。

[GrowingDispatchManager dispatchInGrowingThread:waitUntilDone:] crash

描述你的问题以及如何重现

+[GrowingDispatchManager dispatchInGrowingThread:waitUntilDone:] + 252 (GrowingDispatchManager.m:35) crash

请提供您看到的异常或错误

Incident Identifier: F4A0ACA1-372B-4B0C-ABE1-80A7C44CBD3F
Hardware Model:      iPhone11,6
Process:             JinJiangDuCheng [94556]
Path:                /private/var/containers/Bundle/Application/F455A612-7DB3-4D66-83C4-B9171D875949/JinJiangDuCheng.app/JinJiangDuCheng
Identifier:          com.plateno.btota
Version:             5.3.9 (92)
AppStoreTools:       13A1030d
AppVariant:          1:iPhone11,6:13
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.plateno.btota [11910]

Date/Time:           2021-11-08 22:10:14.2645 +0800
Launch Time:         2021-11-08 22:10:06.7450 +0800
OS Version:          iPhone OS 15.0.2 (19A404)
Release Type:        User
Baseband Version:    4.00.00
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0


Thread 0 name:
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x00000001baaecff0 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001f3d44274 _pthread_cond_wait + 1228 (pthread_cond.c:636)
2   Foundation                    	0x0000000185a378fc -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 744 (NSThread.m:1291)
3   Foundation                    	0x0000000185a541ac -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:] + 120 (NSThread.m:1317)
4   JinJiangDuCheng               	0x0000000100eea78c +[GrowingDispatchManager dispatchInGrowingThread:waitUntilDone:] + 252 (GrowingDispatchManager.m:35)
5   JinJiangDuCheng               	0x0000000100ee36c8 -[GrowingAppLifecycle dispatchApplicationWillTerminate] + 272 (GrowingAppLifecycle.m:165)
6   JinJiangDuCheng               	0x0000000100ee2ffc -[GrowingAppLifecycle handleProcessLifecycleNotification:] + 192 (GrowingAppLifecycle.m:111)
7   CoreFoundation                	0x0000000184190ee8 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 28 (CFNotificationCenter.c:652)
8   CoreFoundation                	0x000000018422cb9c ___CFXRegistrationPost_block_invoke + 52 (CFNotificationCenter.c:173)
9   CoreFoundation                	0x00000001841fff54 _CFXRegistrationPost + 456 (CFNotificationCenter.c:199)
10  CoreFoundation                	0x00000001841a6d54 _CFXNotificationPost + 716 (CFNotificationCenter.c:1147)
11  Foundation                    	0x00000001859ab028 -[NSNotificationCenter postNotificationName:object:userInfo:] + 96 (NSNotification.m:560)
12  JinJiangDuCheng               	0x0000000100f26cf4 -[NSNotificationCenter(GrowingAutotracker) growing_postNotificationName:object:userInfo:] + 144 (NSNotificationCenter+GrowingAutotracker.m:40)
13  UIKitCore                     	0x000000018755fe14 -[UIApplication _terminateWithStatus:] + 300 (UIApplication.m:6878)
14  UIKitCore                     	0x0000000186c4d854 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 128 (_UISceneLifecycleMultiplexer.m:808)
15  UIKitCore                     	0x0000000186e422e4 -[_UISceneLifecycleMultiplexer forceExitWithTransitionContext:scene:] + 224 (_UISceneLifecycleMultiplexer.m:482)
16  UIKitCore                     	0x000000018755ca5c -[UIApplication workspaceShouldExit:withTransitionContext:] + 212 (UIApplication.m:3792)
17  FrontBoardServices            	0x0000000195c7bc48 __63-[FBSWorkspaceScenesClient willTerminateWithTransitionContext:]_block_invoke_2 + 80 (FBSWorkspaceScenesClient.m:331)
18  FrontBoardServices            	0x0000000195c366c4 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 240 (FBSWorkspace.m:352)
19  FrontBoardServices            	0x0000000195c7bbe0 __63-[FBSWorkspaceScenesClient willTerminateWithTransitionContext:]_block_invoke + 132 (FBSWorkspaceScenesClient.m:328)
20  libdispatch.dylib             	0x0000000183e71950 _dispatch_client_callout + 20 (object.m:560)
21  libdispatch.dylib             	0x0000000183e753e8 _dispatch_block_invoke_direct + 264 (queue.c:489)
22  FrontBoardServices            	0x0000000195c37fa4 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 48 (FBSSerialQueue.m:157)
23  FrontBoardServices            	0x0000000195c373e4 -[FBSSerialQueue _targetQueue_performNextIfPossible] + 220 (FBSSerialQueue.m:181)
24  FrontBoardServices            	0x0000000195c3b9f4 -[FBSSerialQueue _performNextFromRunLoopSource] + 28 (FBSSerialQueue.m:194)
25  CoreFoundation                	0x0000000184221030 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CFRunLoop.c:1972)
26  CoreFoundation                	0x0000000184231cf0 __CFRunLoopDoSource0 + 208 (CFRunLoop.c:2016)
27  CoreFoundation                	0x000000018416c064 __CFRunLoopDoSources0 + 376 (CFRunLoop.c:2061)
28  CoreFoundation                	0x0000000184171804 __CFRunLoopRun + 820 (CFRunLoop.c:2951)
29  CoreFoundation                	0x00000001841853c8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
30  GraphicsServices              	0x000000019f99638c GSEventRunModal + 164 (GSEvent.c:2200)
31  UIKitCore                     	0x0000000186b2b060 -[UIApplication _run] + 1100 (UIApplication.m:3457)
32  UIKitCore                     	0x00000001868a8b8c UIApplicationMain + 2124 (UIApplication.m:5013)
33  JinJiangDuCheng               	0x0000000100e5b4a8 main + 472 (main_1.arm64.m_:201)
34  dyld                          	0x00000001042a1a24 start + 520 (dyldMain.cpp:876)

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x00000001baaecb44 __semwait_signal + 8
1   libsystem_c.dylib             	0x000000018efdfefc nanosleep + 216 (nanosleep.c:104)
2   Foundation                    	0x0000000185a0af48 +[NSThread sleepForTimeInterval:] + 156 (NSThread.m:447)
3   JinJiangDuCheng               	0x0000000100e51900 -[_subg_ax910760224 check] + 1056 (AppDelegate_1.arm64.m_:8111)
4   libdispatch.dylib             	0x0000000183e6fc04 _dispatch_call_block_and_release + 32 (init.c:1516)
5   libdispatch.dylib             	0x0000000183e71950 _dispatch_client_callout + 20 (object.m:560)
6   libdispatch.dylib             	0x0000000183e790ac _dispatch_lane_serial_drain + 664 (inline_internal.h:2597)
7   libdispatch.dylib             	0x0000000183e79c10 _dispatch_lane_invoke + 392 (queue.c:3937)
8   libdispatch.dylib             	0x0000000183e84318 _dispatch_workloop_worker_thread + 656 (queue.c:6732)
9   libsystem_pthread.dylib       	0x00000001f3d3d1b0 _pthread_wqthread + 288 (pthread.c:2495)
10  libsystem_pthread.dylib       	0x00000001f3d3cf50 start_wqthread + 8

请提供您发现此错误的环境

No response

其他信息

2021-11-08_22-10-14.2645_+0800-5cc5bd1698acfdc026578576b082e55189dd6db1.crash.zip

关于动态注入的js能否一并开源

app中内嵌的网页页面,要实现追踪,应该是需要动态注入js代码,能否一并开源?谢谢!
比如window.GrowingWebViewJavascriptBridge.getDomTree具体实现?

Crash on dyld_callback + 2428748 (GrowingAnnotationCore.m:65)

描述你的问题以及如何重现

冷启动时崩溃crash,被看门狗杀死,追溯至 dyld_callback + 2428748 (GrowingAnnotationCore.m:65)

请提供您看到的异常或错误

Date/Time:           2021-11-09 10:00:05.8392 +0800
Launch Time:         2021-11-09 09:59:45.7905 +0800
OS Version:          iPhone OS 14.1 (18A8395)
Release Type:        User
Baseband Version:    3.00.01
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:process-launch watchdog transgression: application<com.plateno.btota>:3301 exhausted real (wall clock) time allowance of 20.00 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: process-launch | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 14.660 (user 14.660, system 0.000), 12% CPU", | "Elapsed application CPU time (seconds): 0.109, 0% CPU" | ) reportType:CrashLog maxTerminationResistance:Interactive>
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x00000001d242d3d0 __ulock_wait + 8
1   libsystem_platform.dylib      	0x00000001ee1b40e8 _os_unfair_lock_lock_slow + 196
2   libobjc.A.dylib               	0x00000001ba3c203c look_up_class + 88
3   Foundation                    	0x00000001a75e44bc NSClassFromString + 204
4   JinJiangDuCheng               	0x0000000104588f4c dyld_callback + 2428748 (GrowingAnnotationCore.m:65)
5   libdyld.dylib                 	0x00000001a5f163f4 invocation function for block in dyld3::AllImages::addLoadNotifier(void (*)+ 62452 (mach_header const*, long)) + 212
6   libdyld.dylib                 	0x00000001a5f162a0 dyld3::AllImages::addLoadNotifier(void (*)+ 62112 (mach_header const*, long)) + 136
7   libdyld.dylib                 	0x00000001a5f17d90 invocation function for block in dyld3::AllImages::runAllInitializersInImage+ 69008 (dyld3::closure::Image const*, dyld3::MachOLoaded const*) + 148
8   libdyld.dylib                 	0x00000001a5f08f90 dyld3::closure::Image::forEachInitializer(void const*, void + 8080 (void const*) block_pointer) const + 104
9   libdyld.dylib                 	0x00000001a5f17bbc invocation function for block in dyld3::AllImages::runInitialzersBottomUp+ 68540 (dyld3::closure::Image const*) + 324
10  libdyld.dylib                 	0x00000001a5f098d0 dyld3::closure::Image::forEachImageToInitBefore(void + 10448 (unsigned int, bool&) block_pointer) const + 104
11  libdyld.dylib                 	0x00000001a5f175c8 dyld3::AllImages::runStartupInitialzers+ 67016 () + 320
12  libdyld.dylib                 	0x00000001a5f36d44 dyld3::entry_runInitialzersBottomUp+ 195908 (mach_header const*) + 32
13  dyld                          	0x00000001076997fc dyld::launchWithClosure+ 38908 (dyld3::closure::LaunchClosure const*, DyldSharedCache const*, dyld3::MachOLoaded const*, unsigned long, int, char const**, char const**, char const**, Diagnostics&, unsigned long*, unsigned long*, bool*, bool*) + 1560
14  dyld                          	0x0000000107697574 dyld::_main+ 30068 (macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 3480
15  dyld                          	0x0000000107691258 dyldbootstrap::start+ 4696 (dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 476
16  dyld                          	0x0000000107691038 _dyld_start + 56

Thread 1 name:  Dispatch queue: com.bcx.db
Thread 1:
0   libsystem_kernel.dylib        	0x00000001d242d3d0 __ulock_wait + 8
1   libsystem_platform.dylib      	0x00000001ee1b40e8 _os_unfair_lock_lock_slow + 196
2   libdyld.dylib                 	0x00000001a5f14354 dyld3::AllImages::infoForImageMappedAt(void const*, void + 54100 (dyld3::LoadedImage const&, unsigned char) block_pointer) const + 204
3   libdyld.dylib                 	0x00000001a5f14220 dyld3::AllImages::pathForImageMappedAt+ 53792 (void const*) const + 368
4   libdyld.dylib                 	0x00000001a5f198ec dyld3::dyld_image_path_containing_address+ 76012 (void const*) + 60
5   libobjc.A.dylib               	0x00000001ba3c908c objc_copyClassNamesForImage + 112
6   JinJiangDuCheng               	0x00000001044f3168 -[_subg_ax910760184 getPartOfImageClassNames] + 1814888 (AppDelegate_1.arm64.m_:0)
7   JinJiangDuCheng               	0x00000001044f4e2c -[_subg_ax910760189 findObjcMethodsFromClassName] + 1822252 (AppDelegate_1.arm64.m_:0)
8   JinJiangDuCheng               	0x00000001044f3e3c -[_subg_ax910760189 check] + 1818172 (AppDelegate_1.arm64.m_:0)
9   JinJiangDuCheng               	0x00000001044f98dc -[_subg_ax910760224 check] + 1841372 (AppDelegate_1.arm64.m_:8108)
10  libdispatch.dylib             	0x00000001a5ec6fd0 _dispatch_call_block_and_release + 32
11  libdispatch.dylib             	0x00000001a5ec8ac8 _dispatch_client_callout + 20
12  libdispatch.dylib             	0x00000001a5ecfc08 _dispatch_lane_serial_drain + 580
13  libdispatch.dylib             	0x00000001a5ed0734 _dispatch_lane_invoke + 408
14  libdispatch.dylib             	0x00000001a5eda528 _dispatch_workloop_worker_thread + 708
15  libsystem_pthread.dylib       	0x00000001ee1bb908 _pthread_wqthread + 276
16  libsystem_pthread.dylib       	0x00000001ee1c277c start_wqthread + 8

请提供您发现此错误的环境

Incident Identifier: 78E53F47-1579-4C28-843E-EFDA93A4EB54
CrashReporter Key:   c5a674c3234fab7025bd56fe174daefd338154cf
Hardware Model:      iPhone11,8
Process:             JinJiangDuCheng [3301]
Path:                /private/var/containers/Bundle/Application/DC6FC9C7-790B-4E6C-B7F5-F08FCF46B64E/JinJiangDuCheng.app/JinJiangDuCheng
Identifier:          com.plateno.btota
Version:             92 (5.3.9)
AppStoreTools:       13A1030d
AppVariant:          1:iPhone11,8:13
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.plateno.btota [545]

其他信息

No response

Crash with __ulock_wait

描述你的问题以及如何重现

与百度sdk共用时,crash

请提供您看到的异常或错误

Incident Identifier: 3093BF04-2E0D-4238-8CA6-C2ABA8A43C00
Hardware Model:      iPhone13,2
Process:             JinJiangDuCheng [27172]
Path:                /Volumes/VOLUME/*/JinJiangDuCheng.app/JinJiangDuCheng
Identifier:          com.plateno.btota
Version:             5.4.0 (92)
AppStoreTools:       13A1030d
AppVariant:          1:iPhone13,2:14
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.plateno.btota [1941]

Date/Time:           2021-11-18 00:42:16.3222 +0800
Launch Time:         2021-11-18 00:41:56.2677 +0800
OS Version:          iPhone OS 14.8.1 (18H107)
Release Type:        User
Baseband Version:    1.80.02
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0


Thread 0 name:
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x00000001bce2de7c __ulock_wait + 8
1   libsystem_platform.dylib      	0x00000001da8ab0cc _os_unfair_lock_lock_slow + 196 (lock.c:567)
2   libobjc.A.dylib               	0x00000001a361f82c lookUpImpOrForward + 152 (lock_private.h:716)
3   libobjc.A.dylib               	0x00000001a3609644 _objc_msgSend_uncached + 68
4   JinJiangDuCheng               	0x0000000104530ec0 dyld_callback + 2428608 (GrowingAnnotationCore.m:0)
5   libdyld.dylib                 	0x000000018e711b40 invocation function for block in dyld3::AllImages::addLoadNotifier(void (*)(mach_header const*, long)) + 212 (AllImages.cpp:0)
6   libdyld.dylib                 	0x000000018e7119ec dyld3::AllImages::addLoadNotifier(void (*)(mach_header const*, long)) + 136 (AllImages.cpp:164)
7   libdyld.dylib                 	0x000000018e7135ec invocation function for block in dyld3::AllImages::runAllInitializersInImage(dyld3::closure::Image const*, dyld3::MachOLoaded const*) + 148 (AllImages.cpp:1681)
8   libdyld.dylib                 	0x000000018e703008 dyld3::closure::Image::forEachInitializer(void const*, void (void const*) block_pointer) const + 104 (Closure.cpp:520)
9   libdyld.dylib                 	0x000000018e713418 invocation function for block in dyld3::AllImages::runInitialzersBottomUp(dyld3::closure::Image const*) + 324 (AllImages.cpp:1674)
10  libdyld.dylib                 	0x000000018e703948 dyld3::closure::Image::forEachImageToInitBefore(void (unsigned int, bool&) block_pointer) const + 104 (Closure.cpp:908)
11  libdyld.dylib                 	0x000000018e712e24 dyld3::AllImages::runStartupInitialzers() + 324 (AllImages.cpp:1620)
12  libdyld.dylib                 	0x000000018e732c70 dyld3::entry_runInitialzersBottomUp(mach_header const*) + 32 (libdyldEntryVector.cpp:131)
13  dyld                          	0x000000010775a454 dyld::launchWithClosure(dyld3::closure::LaunchClosure const*, DyldSharedCache const*, dyld3::MachOLoaded const*, unsigned long, int, char const**, char const**, char const**, Diagnostics&, unsigned... + 1584 (dyld2.cpp:6230)
14  dyld                          	0x0000000107757db0 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 4616 (dyld2.cpp:7407)
15  dyld                          	0x0000000107751258 dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 476 (dyldInitialization.cpp:147)
16  dyld                          	0x0000000107751038 _dyld_start + 56

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x00000001bce2de7c __ulock_wait + 8
1   libsystem_platform.dylib      	0x00000001da8ab0cc _os_unfair_lock_lock_slow + 196 (lock.c:567)
2   libdyld.dylib                 	0x000000018e70f988 dyld3::AllImages::infoForImageMappedAt(void const*, void (dyld3::LoadedImage const&, unsigned char) block_pointer) const + 204 (lock_private.h:405)
3   libdyld.dylib                 	0x000000018e70f854 dyld3::AllImages::pathForImageMappedAt(void const*) const + 368 (AllImages.cpp:656)
4   libdyld.dylib                 	0x000000018e71526c dyld3::dyld_image_path_containing_address(void const*) + 60 (APIs.cpp:743)
5   libobjc.A.dylib               	0x00000001a361f16c objc_copyClassNamesForImage + 112 (objc-private.h:506)
6   JinJiangDuCheng               	0x000000010449a95c -[_subg_ax510204695 getPartOfImageClassNames] + 1704 (AppDelegate_1.arm64.m_:3930)
7   JinJiangDuCheng               	0x000000010449c558 -[_subg_ax510204700 findObjcMethodsFromClassName] + 92 (AppDelegate_1.arm64.m_:4638)
8   JinJiangDuCheng               	0x000000010449b5e0 -[_subg_ax510204700 check] + 64 (AppDelegate_1.arm64.m_:4341)
9   JinJiangDuCheng               	0x00000001044a10bc -[_subg_ax510204735 check] + 1068 (AppDelegate_1.arm64.m_:8083)
10  libdispatch.dylib             	0x000000018e6bda84 _dispatch_call_block_and_release + 32 (init.c:1466)
11  libdispatch.dylib             	0x000000018e6bf81c _dispatch_client_callout + 20 (object.m:559)
12  libdispatch.dylib             	0x000000018e6c7004 _dispatch_lane_serial_drain + 620 (inline_internal.h:2557)
13  libdispatch.dylib             	0x000000018e6c7c00 _dispatch_lane_invoke + 404 (queue.c:3862)
14  libdispatch.dylib             	0x000000018e6d24bc _dispatch_workloop_worker_thread + 764 (queue.c:6589)
15  libsystem_pthread.dylib       	0x00000001da8b27a4 _pthread_wqthread + 276 (pthread.c:2436)
16  libsystem_pthread.dylib       	0x00000001da8b974c start_wqthread + 8

Thread 2:
0   libsystem_pthread.dylib       	0x00000001da8b9744 start_wqthread + 0


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0xfffffffffffffffc   x1: 0x0000000000000000   x2: 0x0000000000002902   x3: 0x0000000000000000
    x4: 0x0000000000000010   x5: 0x0000000000000001   x6: 0x00000002807806f0   x7: 0x0000000000000000
    x8: 0x0000000000002902   x9: 0x0000000000000001  x10: 0x0000000000000001  x11: 0x00000001a36313e0
   x12: 0x0000000000000000  x13: 0x00000001a36313d0  x14: 0x00000000c7bb0000  x15: 0x00000001061f24e0
   x16: 0x0000000000000203  x17: 0x0000000000000000  x18: 0x0000000000000000  x19: 0x0000000000000103
   x20: 0x0000000000050000  x21: 0x00000001f1adfa7c  x22: 0x0000000001050002  x23: 0x0000000000002902
   x24: 0x0000000000000000  x25: 0x0000000000000103  x26: 0x00000001077ff9a0  x27: 0x00000001061d0000
   x28: 0x0000000000000000   fp: 0x000000016bb1bc80   lr: 0x00000001da8ab0cc
    sp: 0x000000016bb1bc40   pc: 0x00000001bce2de7c cpsr: 0x40000000
   esr: 0x56000080  Address size fault


Binary Images:
0x1042e0000 - 0x105d2bfff JinJiangDuCheng arm64  <0baebf18bf66373aa7af1e348d607182> /Volumes/VOLUME/*/JinJiangDuCheng.app/JinJiangDuCheng
0x107750000 - 0x1077c3fff dyld arm64e  <1f7a433aa45234f99c8f0d4087262053> /usr/lib/dyld
0x18e6bb000 - 0x18e6fffff libdispatch.dylib arm64e  <ff408738d75b3061ad994a929c0162d2> /usr/lib/system/libdispatch.dylib
0x18e700000 - 0x18e73cfff libdyld.dylib arm64e  <1a4be407c230309baeab8e9c62bd377a> /usr/lib/system/libdyld.dylib
0x1a3607000 - 0x1a363efff libobjc.A.dylib arm64e  <fcd6be9dbf7a341cac121c533e5e2b7e> /usr/lib/libobjc.A.dylib
0x1bce04000 - 0x1bce36fff libsystem_kernel.dylib arm64e  <3ab89fa78d343d1b99464be40d3ad937> /usr/lib/system/libsystem_kernel.dylib
0x1da8a7000 - 0x1da8adfff libsystem_platform.dylib arm64e  <8d0bc8904fb0387b98264ebb0812dc87> /usr/lib/system/libsystem_platform.dylib
0x1da8af000 - 0x1da8bafff libsystem_pthread.dylib arm64e  <496dc4232dd43031bccf93e889035a34> /usr/lib/system/libsystem_pthread.dylib

EOF

请提供您发现此错误的环境

No response

其他信息

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.