pendo-io / pendo-mobile-sdk

Pendo captures product usage data, gathers user feedback, and lets you communicate in-app to onboard, educate, and guide users to value
https://www.pendo.io
Other
57 stars 2 forks source link

💥 Crash on `+[PNDRAHelper setAccessibilityHint:identifier:label:object:]` #137

Closed msrutek-paylocity closed 1 month ago

msrutek-paylocity commented 2 months ago

Platform + Version

iOS 17.4.1

SDK Version

3.1.5

Framework

Native SwiftUI

Describe the bug

Crash. As there aren't any notes on crash fixes on 3.2.0, we also suppose these will be present in the version 3.2.0.

To Reproduce

Exact steps unknown, but this occurred during visiting a screen that has dynamically loaded content with (possibly) infinite scrolling.

Expected behavior

No crash

Logs

Not applicable. Added stack trace below.

Stack Trace

Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x3ea8 objc_msgSendSuper2 + 8
1  MapKitFramework                0x934c -[UIButtonAccessibility__MapKit__UIKit accessibilityLabel]
2  PhotosUIFramework              0x3ee0 -[UIButtonAccessibility__PhotosUI__UIKit accessibilityLabel]
3  AnnotationKit                  0x6678 -[UIButtonAccessibility__AnnotationKit__UIKit accessibilityLabel]
4  SocialFramework                0x1c44 -[UIButtonAccessibility__Social__UIKit accessibilityLabel]
5  Pendo                          0x1e86c +[PNDRAHelper setAccessibilityHint:identifier:label:object:] + 132
6  Pendo                          0x1e7b0 +[PNDRAHelper extractAccessibilityTextFromView:into:] + 668
7  Pendo                          0x1dc2c +[PNDRAHelper extractTextFrom:into:] + 72
8  Pendo                          0x1df28 +[PNDRAHelper extractFirstChildTextForClickableElement:into:] + 448
9  Pendo                          0x1db88 +[PNDRAHelper extractTextsFromView:into:isClickable:] + 140
10 Pendo                          0x1daa8 +[PNDRAHelper retroElementForView:flow:] + 168
11 Pendo                          0x8ed20 -[UIView(PNDViewTree) setNodeRetroData:] + 136
12 Pendo                          0x8e900 -[UIView(PNDViewTree) makeNode:parentId:ancestorVC:depth:options:] + 224
13 Pendo                          0xa9818 -[PNDViewTree makeNode:parentId:assignedId:depth:parentVCAncestor:nodeOptions:] + 176
14 Pendo                          0xa94f0 -[PNDViewTree recursiveSubTreeDFS:parentId:depth:parentVCAncestor:] + 152
15 Pendo                          0xa9604 -[PNDViewTree recursiveSubTreeDFS:parentId:depth:parentVCAncestor:] + 428
16 Pendo                          0xa9604 -[PNDViewTree recursiveSubTreeDFS:parentId:depth:parentVCAncestor:] + 428
17 Pendo                          0xa9604 -[PNDViewTree recursiveSubTreeDFS:parentId:depth:parentVCAncestor:] + 428
18 Pendo                          0xa9604 -[PNDViewTree recursiveSubTreeDFS:parentId:depth:parentVCAncestor:] + 428
19 Pendo                          0xa9398 -[PNDViewTree viewTree] + 424
20 Pendo                          0xa813c +[PNDViewTree treeWithRoot:options:] + 268
21 Pendo                          0x11adc0 -[PNDScreenManager retroTreeArrayFor:] + 24
22 Pendo                          0x11ad3c -[PNDScreenManager textsScreenData:dict:] + 112
23 Pendo                          0x11aa48 -[PNDScreenManager screenDataFor:] + 252
24 Pendo                          0x11a744 -[PNDScreenManager screenChanged] + 56
25 Pendo                          0x11a120 __44-[PNDScreenManager triggerScreenScanOfType:]_block_invoke.48 + 508
26 Pendo                          0x10cc10 -[PNDDebouncer fireNow] + 36
27 Foundation                     0x751ce0 __NSFireTimer + 96
28 CoreFoundation                 0xad6e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
29 CoreFoundation                 0xad388 __CFRunLoopDoTimer + 1004
30 CoreFoundation                 0x37184 __CFRunLoopDoTimers + 288
31 CoreFoundation                 0x3418c __CFRunLoopRun + 1856
32 CoreFoundation                 0x33968 CFRunLoopRunSpecific + 608
33 GraphicsServices               0x34e0 GSEventRunModal + 164
34 UIKitCore                      0x22aedc -[UIApplication _run] + 888
35 UIKitCore                      0x22a518 UIApplicationMain + 340
36 RETRACTED                       0x5890 main + 9 (AppDelegate.swift:9)
37 ???                            0x1c2f96d84 (Missing)
0xkuj commented 2 months ago

can you provide some details about Social Framework? it seems to crash because we are doing something it doesnt like, we would like to try that ourselves

msrutek-paylocity commented 2 months ago

@0xkuj We're not doing anything particular with the Social Framework.

Is it possible that the Pendo SDK is doing some kind of dynamic scanning for accessibilityLabel? 🤔

0xkuj commented 2 months ago

@msrutek-paylocity yes, its possible, we extract things from element such as accessibility label when needed.

msrutek-paylocity commented 2 months ago

@0xkuj can the scanning of the mentioned framework(s) be therefore removed?

0xkuj commented 2 months ago

we will work on skipping those selectors for objects if they do not exists. can you share apple crash logs? do we know if the crash reason is related to unrecognized selector or something else inside this frameworks?

MikePendo commented 1 month ago

@msrutek-paylocity The issue should be resolved in 3.2.2