appelium / appeliumfeedback Goto Github PK
View Code? Open in Web Editor NEWSDK for seamless bug reporting and user steps recording for iOS apps
License: Other
SDK for seamless bug reporting and user steps recording for iOS apps
License: Other
We have a problem with AppeliumFeedback 2.4.3 in which if we get the following crash when using GoogleMaps:
2020-12-02 17:44:48.465049+0100 homegate.ch[32932:1941756] *** Terminating app due to uncaught exception 'GMSThreadException', reason: 'The API method must be called from the main thread'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff2041daf2 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007fff20177e78 objc_exception_throw + 48
2 CoreFoundation 0x00007fff2041d9d0 -[NSException initWithCoder:] + 0
3 homegate.ch 0x000000010c437f04 +[GMSServices sharedServicesIfActive] + 64
4 homegate.ch 0x000000010c42070e -[GMSMapLayer renderInContext:] + 45
5 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
6 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
7 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
8 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
9 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
10 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
11 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
12 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
13 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
14 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
15 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
16 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
17 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
18 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
19 QuartzCore 0x00007fff27a75111 -[CALayer _renderSublayersInContext:] + 564
20 QuartzCore 0x00007fff27a7308e -[CALayer renderInContext:] + 1727
21 AppeliumFeedback 0x000000010e2d7813 $s16AppeliumFeedback26UIScreenScreenshotProviderC16videoPixelBuffer5scaleSo11CVBufferRefa12CoreGraphics7CGFloatV_tFTf4nd_n + 851
22 AppeliumFeedback 0x000000010e2cbc9b $s16AppeliumFeedback14ScreenRecorderC17captureScreenshot33_E90AD91E4C426473BF4C4B96E1882D1FLLyyFyycfU_ + 139
23 AppeliumFeedback 0x000000010e2d78fe $sIeg_IeyB_TR + 14
24 libdispatch.dylib 0x000000010fb027ec _dispatch_call_block_and_release + 12
25 libdispatch.dylib 0x000000010fb039c8 _dispatch_client_callout + 8
26 libdispatch.dylib 0x000000010fb0a296 _dispatch_lane_serial_drain + 796
27 libdispatch.dylib 0x000000010fb0af67 _dispatch_lane_invoke + 439
28 libdispatch.dylib 0x000000010fb16de2 _dispatch_workloop_worker_thread + 882
29 libsystem_pthread.dylib 0x00007fff5e73d499 _pthread_wqthread + 314
30 libsystem_pthread.dylib 0x00007fff5e73c467 start_wqthread + 15
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
It is easy to reproduce: just use Appelium with any of the sample projects from GoogleMapUtils SDK:
https://github.com/googlemaps/google-maps-ios-utils
With 2.4.0 of this library, we see on the console the following warning: [Unknown process name] CGImageCreate: invalid image alphaInfo: kCGImageAlphaNone. It should be kCGImageAlphaNoneSkipLast
Also CPU and WindowServer starts spiking and it is impossible to use XCode
When adding AppeliumFeedback SDK to the project lldb can't compile the project anymore which resulting an error when executing the PO command during debugging:
po self
-> should output debug information for the shared object.
po self
-> Gives an error about missing all-product-headers.yaml for AppeliumFeedbackKit (see screenshot)
This is happening due to https://bugs.swift.org/browse/SR-12783.
LLDB could clearly do a better job of surfacing the error โ I had to dig it out of the types log:
SwiftASTContext("Instabug")::GetASTContext() โ failed to initialize ClangImporter: error: virtual filesystem overlay file '/Users/khaledElMorabea/Library/Developer/Xcode/DerivedData/Instabug-ccnahiryvffhsohhjpovgyeazflu/Build/Intermediates.noindex/ArchiveIntermediates/Instabug/IntermediateBuildFilesPath/Instabug.build/Release-iphonesimulator/Instabug.build/all-product-headers.yaml' not found
The problem here is with the binary Instabug framework that you are using. The .dSYM files that are generated from Swift code are not (yet) as portable as the ones generated from Clang code. The binary Swift module encode a hardcoded path to a yaml file that only exists on the original developer's machine. You should let them know that they need to compile their binary framework with -no-serialize-debugging-options if they are planning to distribute them to another machine.
See similar issue reported for Facebook and Instabug
Solution: Compile the binary framework with -no-serialize-debugging-options.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.