We’re experiencing a slow launch time in our SwiftUI app, about 35% of the slow launch time is caused by Intercom initialization.
The stack trace indicates that multiple functions within the Intercom SDK, especially the initialization processes involving IMCCrashHandler
, IMCConfig
, HomeConfig
, and HomeHeader
, are contributing significantly to app launch latency. The UIKitCore and CoreImage components (like UIGraphicsImageRenderer
and CIImage
) invoked through ICAssets.backgroundImageViewWith
also add processing overhead, which may impact the performance during launch.
Here is the full stack trace given by XCodes tools:
dyld start
1. App.main() - SwiftUI
2. AppDelegate.application(_:didFinishLaunchingWithOptions:) - SwiftUI
3. IMCCrashHandler swizzleDidFinishLaunchingWithOptions - Intercom
└ IMCCrashHandler sharedConfig - Intercom
4. IntercomSDK_SentrySDK startWithConfigureOptions - Intercom
5. IMCCrashHandler configureTags - Intercom
6. IMCConfig sharedConfig - Intercom
7. IMCConfig configFromDisk - Intercom
8. IMCPersistenceProxy unarchiveObjectWithFile - Intercom
└ NSKeyedUnarchiver unarchivedObjectOfClass:fromData:error: - Foundation
9. ConfigModules.init(coder:) - Intercom
10. HomeConfig.init(coder:) - Intercom
11. HomeHeader.init(coder:) - Intercom
12. HomeHeaderBackground.init(coder:) - Intercom
13. ICAssets.backgroundImageViewWith(L:) - Intercom
14. UIGraphicsImageRenderer imageWithActions - UIKitCore
15. CIImage imageByApplyingGaussianBlurWithSigma - CoreImage
We are using version 18.2.0 of the library.