Where can I find the latest versions of the SDK Libraries?

GitHub:

Does the SDK use UIWebview?

No, SDK usage of UIWebview was replaced with WkWebView in Mar 2017.

But, when I run grep -r UIWebView command it shows a reference of UIWebview?

That's because the grep command will search the iOS SDK for text references and there was 1 reference to UIWebview in the LPTTTAttributedLabel dependency, this was only a comment description, and has been removed.

While upgrading from SDK version < 6.0 to SDK 6.0+, I noticed there were tons of compile errors. What do I do?

Read this guide.

If you are upgrading versions then likely before you were using one of several public facade classes (LPInfraFacade, LPMessagingSDK, LPMonitoring, etc.). When combining the frameworks we moved all publicly documented APIs into LPMessaging. So look within that object for your previously used API.

I upgraded from SDK version <6.0 to SDK 6.0+ and noticed that my API is gone

Prior to v6.0, our SDK was using 4 frameworks. There were many public APIs that were only available to serve as bridge API's between one LP SDK framework and another. If you were using one of these previously available APIs, please communicate with your LivePerson Account team to explore the options of using one of the public APIs or to file an enhancement request.

If markdownHyperlinkFromAgent is enabled, link preview won’t be displayed.

While updating the SDK, my Structure Content is now showing a border on the buttons

On SDK 5.2.1, the border was introduced as an accessibility element for compliance, SDK introduce a configuration for versions 6.0 or higher that lets you control the color of this element:

Structured Content Button Border

structuredContentButtonBorderColor: Sets border color for button type element on Structured Content

What is the amount of time it takes for the timestamp change from "Now" to the numeric "hh:mm" timestamp?

Sitting idle on the Conversation Screen won’t trigger the timestamp to change.

What triggers the timestamp update:

  • scrolling up or down,
  • a new message,
  • leaving and coming back to the Conversation Screen

When loading the conversation history, how long does it take to dismiss the loading animation?

Loading time depends on how long it takes the SDK to sync the Consumer History. The loading screen will be dismissed if loading history fails.

If I log out from the SDK, can they still get Push Notifications and Unread Message Count?

No, you won’t receive Push Notifications. As soon as you log out, SDK unregisters from the Push Notification service and you will not be able to receive any Push Notifications.

Starting SDK 4.2.0, we preserve Unread Message count if there is one.

When opening the Conversation Screen I encounter empty message bubbles

This may happen as the SDK uses a unique Apple key named identifierForVendor, this key is an alphanumeric string that uniquely identifies a consumer device to the app’s vendor/brand, the key helps the SDK during the encryption process to create unique identifier names per device and per bundleId to store keys into the Device Keychain.

This key’s value can change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution (e.g. TestFlight, TestFairy, etc.). When this value changes it creates an inconsistency between the value that is provided and the value that is recognized by the SDK, and those empty message bubbles are displayed.

As Apple says in their article:

“The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device.”

For more information, please visit Apple’s documentation link

When using VoiceOver while on the Conversation Screen, Assistant will sometimes read the elements on the ViewController behind it.

In order to prevent this from happening, Host App will need to change the value of the following properties before calling the method LPMessaging.instance.showConversation

self.view.accessibilityElementsHidden = true
// If there is a TabBar, it should be hidden too:
// self.tabBarController?.tabBar.accessibilityElementsHidden = true

Once the Conversation Screen is dismissed, HostApp will need to reset the properties changed before to re-enable the VO on this ViewController, a delegate on the SDK will notify Host App of that event:

/**
* This delegate method is optional.
* It is called when the conversation view controller removed from its container view controller or window.
*/
func LPMessagingSDKConversationViewControllerDidDismiss() {
  // Setting Parent ViewController accessibility hidden value to true, so VO will read the elements on this View
  self.view.accessibilityElementsHidden = false
  // If there is a tabbar, it should reset too:
  // self.tabBarController?.tabBar.accessibilityElementsHidden = false
}