Answered

Intercom iOS SDK 15.0.0: New Lottie dependency integration is botched and cause conflicts with host app Lottie integration

  • 26 May 2023
  • 4 replies
  • 202 views

Hello,

The latest Intercom iOS SDK version (15.0.0) has an integration of the Lottie Animation framework.  

This dependency seems integrated statically.  

Unfortunately if the host app also integrates Lottie, we now are flooded with following warnings from the System when running the app:  

...
objc[69173]: Class _TtC6Lottie14AnimatedButton is implemented in both /Users/username/Library/Developer/CoreSimulator/Devices/BFEE2DFC-C11E-470B-B711-48A3266380E2/data/Containers/Bundle/Application/B04B0D15-DDBA-4889-BE53-1EB98904A186/HOSTAPP.app/Frameworks/Lottie.framework/Lottie (0x1055dc0b0) and /Users/username/Library/Developer/CoreSimulator/Devices/BFEE2DFC-C11E-470B-B711-48A3266380E2/data/Containers/Bundle/Application/B04B0D15-DDBA-4889-BE53-1EB98904A186/HOSTAPP.app/Frameworks/Intercom.framework/Intercom (0x104d407e0). One of the two will be used. Which one is undefined.
...

(One of each for each Lottie class)

It is too risky for us to go to production with the version 15.0.0 of the Intercom SDK so we are rolling back to 14.1.0. 
  
The solutions on your side to avoid the problem are:  

  • Integrate Lottie as a proper external dependency (in the Podspec for example). 
  • Rename all Lottie classes so that they don’t conflict with the host app Lottie classes
  • Remove the Lottie integration

 

icon

Best answer by Paul M11 30 May 2023, 18:51

View original

4 replies

Userlevel 1

Hey there @Valentin Pertuisot 👋 

Paul here from Intercom Support!

 

I’m going to loop you in with our support team who can dig into this further ✅

Also i have the same problem. I would like to ask that this problem be solved as soon as possible, everyone who uses lottie lib, cannot use the intercom.

Hi, just updated the SDK and experiencing the same issue :| Any idea on when this will be resolved?

Now also with Sentry. which breaks the app
….

objc[57118]: Class _TtC13SentryPrivate12UrlSanitized is implemented in both /private/var/containers/Bundle/Application/1CA25BC6-8226-493F-971F-D9C9C0EE2030/[Redacted].app/Frameworks/Intercom.framework/Intercom (0x104171640) and /private/var/containers/Bundle/Application/1CA25BC6-8226-493F-971F-D9C9C0EE2030/[Redacted].app/[Redacted] (0x100ee2cb0). One of the two will be used. Which one is undefined.

….

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[ICMBridge startMonitoringCrashes]: unrecognized selector sent to class 0x104173488'

Reply