We are experiencing following crash in our app using weviews after integrating with latest tealium library. Are there any hidden webviews or implicit webview access on non-main UI thread in the library that may be causing this issue? Any suggession on we can fix this crash?
<>> [6623:4d07] bool _WebTryThreadLock(bool), 0x1782074c0: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
1 0x195b97298 WebThreadLock
3 0x100235bcc +[TealiumAutoScanner dictionaryPropertiesOf:]
4 0x100231264 -[TealiumProcessingCenter propertiesIncludingSupersOf:]
5 0x10022d9dc -[TealiumProcessingCenter dataForObject:optionalInfo:]
6 0x1002572f0 __38-[Tealium addToDispatcher:customData:]_block_invoke
13 0x198fed6bc _pthread_wqthread
14 0x198fed54c start_wqthread
Yes, there is a hidden webview that is used to load the utag library, parse JS data and to handle final calls to target vendors (but no interface is implemented). This means the current library version (iOS 3.1) can not be used in a secondary thread. We plan to upgrade and allow this support in an upcoming release.
Thanks Jason for quick response. Is the upcoming release remove the dependency on hidden webview ?
How do we make sure current library is not used on the secondary thread? I think all we are doing is initializing tealium library in the main thread.
We'll still need the hidden webview, but we'll update the library so that you could use it in a BG thread and not have a conflict with it.
But you're not currently placing the library in a background thread and having this weblock error? In your TIQ settings: Library Manager extension: DISABLE the Track Ivar option, that will disable the [TealiumProcessingCenter propertiesIncludingSupersOf:] call that leads to the crash.