How does Sunshine Conversations handle push notifications?

We can handle push notifications in 2 ways:

If the enableAppDelegateSwizzling property of your SKTSettings object is set to YES, then Sunshine Conversations will automatically handle any push notifications that originated from Sunshine Conversations before forwarding to your app delegate’s didReceiveRemoteNotification method.

If you set that property to NO, then you will have to call [Smooch handlePushNotification:userInfo] in your didReceiveRemoteNotification callback. To check the origin, you use the following code:

BOOL isSmoochNotification = userInfo[SKTPushNotificationIdentifier] != nil

You can find official documentation about this in the Sunshine Conversations header files, or in our API docs:,,

How do I present Sunshine Conversations inside a View Controller?

The iOS SDK provides a method to present Sunshine Conversations in a custom ViewController.

How can I perform custom handling when a message message action is tapped?

The delegate method conversation:shouldHandleMessageAction: is called whenever a user taps an SKTMessageAction. You can perform custom handling in this method, and return false to cancel Sunshine Conversations’s default handling of the tap. Read more about it in the iOS SDK Reference

How can I determine whether or not the conversation view controller is active or inactive?

It’s best to implement SKTConversationDelegate in your code and track state of the conversation view controller this way. The two methods you’ll want to use are described in the following links:

How do I build my own UI using your iOS SDK?

Although we provide a powerful, fully capable UI - some applications require building something entirely bespoke. You can use our core iOS API to build your own UI on top of Sunshine Conversations.

The SKTConversaton and SKTConversationDelegate should provide you with everything you need.

How can I customize the iOS SDK’s appearance?

Read more about this in our documentation.

Is it possible to switch between app IDs during a session?

Currently, we don’t provide support for switching between app IDs during the same application session. You can however switch users during the same session (by calling smooch.login with a different userId).

Xcode build fails with Library not loaded: @rpath/Frameworks/Sunshine Conversations.framework. How can I fix this ?

In your project build settings, make sure Runtime Search Paths (LD_RUNPATH_SEARCH_PATHS) is set to $(inherited), @executable_path/Frameworks.