Upgrading from 4.x to 5.x

The Helpshift SDK for Unity v5.0.0 is a major version upgrade. With v5.0.0 release, the SDK files structure has been refactored in order to enable easier integration of SDK with Unity's gradle build. If you have questions or feedback, please Contact Us

When upgrading to 5.x, remove all the old files and replace/add new files. If you have made changes the string resources or modified the SDK theme, please make sure to port over those changes to the new version.

If you are looking to upgrade from a version older than 4.x, please make sure to go through the Upgrade guides for 3.x, 2.8.x, 2.7.0

Removing the existing SDK files

When upgrading the SDK, delete the following folders and files prior to importing the latest SDK package.

Scenario 1: You are using Unity's internal build to build project with Helpshift SDK

  1. Delete all the Helpshift plugin files:
    • project_path/Assets/Plugins/Android/helpshift/*
    • project_path/Assets/Plugins/Android/assets/helpshift/*
    • project_path/Assets/Plugins/Android/assets/hs__data
    • project_path/Assets/Plugins/Android/gcm.jar
    • project_path/Assets/Helpshift/*
      • project_path/Assets/Helpshift/Editor/*
      • project_path/Assets/Helpshift/Example/*
      • project_path/Assets/Helpshift/Plugins/*
      • project_path/Assets/Helpshift/Resources/*
  2. Delete all the Android support library directories from project_path/Assets/Plugins/Android location that are packaged with Helpshift plugin. Ex. for support lib 26.0.2, delete all the following directories:
    • project_path/Assets/Plugins/Android/appcompat-v7-26.0.2
    • project_path/Assets/Plugins/Android/cardview-v7-26.0.2
    • project_path/Assets/Plugins/Android/design-26.0.2
    • project_path/Assets/Plugins/Android/recyclerview-v7-26.0.2
    • project_path/Assets/Plugins/Android/support-annotations-26.0.2
    • project_path/Assets/Plugins/Android/support-compat-26.0.2
    • project_path/Assets/Plugins/Android/appcompat-v7-26.0.2
    • project_path/Assets/Plugins/Android/support-core-ui-26.0.2
    • project_path/Assets/Plugins/Android/support-core-utils-26.0.2
    • project_path/Assets/Plugins/Android/support-fragment-26.0.2
    • project_path/Assets/Plugins/Android/support-transition-26.0.2
    • project_path/Assets/Plugins/Android/support-v4-26.0.2
    • project_path/Assets/Plugins/Android/support-vector-drawable-26.0.2
  3. Delete all the .meta files associated with all the deleted files/directories in step-1 and step-2

If you moved Helpshift SDK files to any other directory, then navigate to that directory and delete all the Helpshift SDK files.

Scenario 2: You are using Unity's in-built gradle build system to build project with Helpshift SDK

  1. Delete all the Helpshift plugin files:
    • project_path/Assets/Plugins/Android/Helpshift.aar
    • project_path/Assets/Plugins/Android/assets/helpshift/*
    • project_path/Assets/Plugins/Android/assets/hs__data
    • project_path/Assets/Plugins/Android/gcm.jar
    • project_path/Assets/Helpshift/*
      • project_path/Assets/Helpshift/Editor/*
      • project_path/Assets/Helpshift/Example/*
      • project_path/Assets/Helpshift/Plugins/*
      • project_path/Assets/Helpshift/Resources/*
  2. Delete all the Android support library aar files from project_path/Assets/Plugins/Android location. Ex. for support lib 26.0.1, delete all the following aar files:
    • project_path/Assets/Plugins/Android/appcompat-v7-26.0.1.aar
    • project_path/Assets/Plugins/Android/cardview-v7-26.0.1.aar
    • project_path/Assets/Plugins/Android/design-26.0.1.aar
    • project_path/Assets/Plugins/Android/recyclerview-v7-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-compat-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-core-ui-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-core-utils-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-fragment-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-media-compat-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-v4-26.0.1.aar
    • project_path/Assets/Plugins/Android/support-vector-drawable-26.0.1.aar
  3. Delete helpshift_bkp folder, at <project_path>/helpshift_bkp location, which is generated by PluginToAAR script.
  4. Delete all the .meta files associated with all the deleted files/directories in step-1 to step-3

If you moved Helpshift SDK files to any other directory, then navigate to that directory and delete all the Helpshift SDK files.

Upgrade to 5.x SDK

From v5.0.0 release, Helpshift Unity SDK is available in the following forms:

  • Standard SDK - In-app Customer Service
  • Campaigns-enabled SDK (Proactive In-app Customer Service)

In order to use Helpshift Unity SDK v5.0.0+ for your app, Helpshift recommends you to follow the steps, depending on whether you use Campaigns or not and what type of SDK you are already using. If you have questions or feedback, please Contact Us

Upgrade scenarios

Scenario 1: You are using Helpshift's default SDK (Example: v4.1.0) but you are not using Helpshift Campaigns feature

Integration

Remove all the old SDK files and import the Standard SDK .unitypackage in your app. Refer here: Integration Guide

Code-related changes

If your code-base has references to Campaigns code, then the compilation will fail after the upgrade. You will need to remove all the references to Campaigns code from the code-base.

Remove using Helpshift.Campaigns class import and fix the build issues.

Scenario 2 - You are using Helpshift's default SDK (Example: v4.1.0) and Helpshift Campaigns feature

Integration

Remove all the old SDK files and import the Campaigns-enabled SDK .unitypackage in your app. Refer here: Integration Guide

Code-related changes

Moving the SDK configuration from GUI Editor to C# code.

With Unity SDK 5.0.0, we have removed the GUI Configuration Editor for the Helpshift SDK. You can pass all the Helpshift SDK configurations from your C# code. Please find below the C# example codes for all the configuration which were present in the GUI Editor earlier.

Removed SDK Configuration from GUI Editor Replacement C# Code Example Link
unity_android_install.png Install call from C#
unity_android_game_object.png https://developers.helpshift.com/unity/sdk-configuration-android/#unity-game-object
unity_android_notification_icon.png https://developers.helpshift.com/unity/sdk-configuration-android/#notificationIcon
unity_android_large_notification_icon.png https://developers.helpshift.com/unity/sdk-configuration-android/#largeNotificationIcon
unity_android_notification_sound.png https://developers.helpshift.com/unity/sdk-configuration-android/#notificationSound
unity_android_custom_fonts.png https://developers.helpshift.com/unity/sdk-configuration-android/#usingCustomFonts
unity_android_support_channel_id.png https://developers.helpshift.com/unity/sdk-configuration-android/#notificationChannels
unity_android_campaigns_channel_id.png https://developers.helpshift.com/unity/sdk-configuration-android/#notificationChannels
unity_ios_enable-in-app-notification.png https://developers.helpshift.com/unity/sdk-configuration-android/#enableInAppNotification
unity_ios_enable_fallback_language.png https://developers.helpshift.com/unity/sdk-configuration-android/#enableDefaultFallbackLanguage
unity_ios_disable_entry_exit_animation.png Check out iOS configuration guide: https://developers.helpshift.com/unity/sdk-configuration-ios/#disableEntryExitAnimations
unity_android_default_screen_orientation.png https://developers.helpshift.com/unity/sdk-configuration-android/#screenOrientation
unity_ios_enable_logging.png https://developers.helpshift.com/unity/sdk-configuration-android/#enableLogging
unity_ios_enable_inbox_polling.png https://developers.helpshift.com/unity/sdk-configuration-ios/#enableInboxPolling
unity_enable_contact_us.png https://developers.helpshift.com/unity/sdk-configuration-android/#enable-contact-us
unity_goto_conversation_after_contact.png https://developers.helpshift.com/unity/sdk-configuration-android/#gotoConversationAfterContactUs
unity_present_full_ipad.png Check out iOS configuration guide: https://developers.helpshift.com/unity/sdk-configuration-ios/#presentFullScreenOniPad
unity_require_email.png https://developers.helpshift.com/unity/sdk-configuration-android/#requireEmail
unity_hide_name_email.png https://developers.helpshift.com/unity/sdk-configuration-android/#hideNameAndEmail
unity_prefill_text.png https://developers.helpshift.com/unity/sdk-configuration-android/#conversationPrefillText
unity_enable_privacy.png https://developers.helpshift.com/unity/sdk-configuration-android/#enableFullPrivacy
unity_show_search_results.png https://developers.helpshift.com/unity/sdk-configuration-android/#showSearchOnNewConversation
unity_show_resolution_question.png https://developers.helpshift.com/unity/sdk-configuration-android/#showConversationResolutionQuestion
unity_show_conversation_info.png https://developers.helpshift.com/unity/sdk-configuration-android/#showConversationInfoScreen
unity_enable_typing_indicator.png https://developers.helpshift.com/unity/sdk-configuration-android/#enableTypingIndicator
unity_supported_file_formats.png https://developers.helpshift.com/unity/delegates-android/#display-attachment

Migration from in-built GCM push support to FCM push notifcation

As of April 10, 2018, Google has deprecated GCM. The GCM server and client APIs are deprecated and will be removed as soon as May 29, 2019. Please migrate GCM apps to Firebase Cloud Messaging (FCM), which inherits the reliable and scalable GCM infrastructure, plus many new features. Keeping the above in mind, with Helpshift Unity SDK v5.0.0, we have removed in-built GCM support for push notifications.

To use FCM push notification, please follow the FCM push integration guide: FCM push support

Customize themes and colors

With Helpshift Unity SDK v5.0.0, we have improved Unity Android SDK packaging structure change from folder plugin to "aar". To customize theme and colors, please follow the steps mentioned in the following guide: Theme customization guide

Customize language translations for SDK strings

With Helpshift Unity SDK v5.0.0, we have improved Unity Android SDK packaging structure change from folder plugin to "aar". To customize language translations, please follow the steps mentioned in the following guide: String resource customization guide

List of removed APIs

Removed APIs New API
HelpshiftSdk.registerForPush(string yourGcmSenderId) Removed in-build GCM support, please manually integrate push with FCM.
Reference: https://developers.helpshift.com/unity/notifications-android/
HelpshiftSdk.isConversationActive() HelpshiftSdk.checkIfConversationActive()
Reference: https://developers.helpshift.com/unity/tracking-android/#isConversationActive
HelpshiftSdk.getNotificationCount() HelpshiftSdk.requestUnreadMessagesCount()
Reference: https://developers.helpshift.com/unity/campaigns-android/#request-unread-messages-count
Helpshift Delegate API "didReceiveNotificationCount" Helpshift delegate API "didReceiveUnreadMessagesCount"
Reference: https://developers.helpshift.com/unity/delegates-android/#newmessage-recieved
HelpshiftSdk.install() HelpshiftSdk.install(apiKey, domainName, appId, configDictionary)
Reference: https://developers.helpshift.com/unity/getting-started-android/#initializing
HelpshiftSdk.install(apiKey, domainName, appId) HelpshiftSdk.install(apiKey, domainName, appId, configDictionary)
Reference: https://developers.helpshift.com/unity/getting-started-android/#initializing
HelpshiftSdk.showConversation() HelpshiftSdk.showConversation(configDictionary)
Reference: https://developers.helpshift.com/unity/support-tools-android/#conversation-view
HelpshiftSdk.showConversationWithMeta(configDictionary) HelpshiftSdk.showConversation(configDictionary)
Reference: https://developers.helpshift.com/unity/support-tools-android/#conversation-view
Meta-data configuration reference: https://developers.helpshift.com/unity/tracking-android/#metadata
HelpshiftSdk.showFAQSection(sectionPublishId) HelpshiftSdk.showFAQSection(sectionPublishId, configDictionary);
Reference: https://developers.helpshift.com/unity/support-tools-android/#faq-section-view
HelpshiftSdk.showFAQSectionWithMeta(sectionPublishId, configDictionary) HelpshiftSdk.showFAQSection(sectionPublishId, configDictionary);
Reference: https://developers.helpshift.com/unity/support-tools-android/#faq-section-view
Meta-data configuration reference: https://developers.helpshift.com/unity/tracking-android/#metadata
HelpshiftSdk.showSingleFAQ(questionPublishId) HelpshiftSdk.showSingleFAQ(questionPublishId, configDictionary)
Reference: https://developers.helpshift.com/unity/support-tools-android/#faq-question-view
HelpshiftSdk.showSingleFAQWithMeta(questionPublishId, configDictionary) HelpshiftSdk.showSingleFAQ(questionPublishId, configDictionary)
Reference: https://developers.helpshift.com/unity/support-tools-android/#faq-question-view
Meta-data configuration reference: https://developers.helpshift.com/unity/tracking-android/#metadata
HelpshiftSdk.showFAQs() HelpshiftSdk.showFAQs(configDictionary);
Reference: https://developers.helpshift.com/unity/support-tools-android/#faqs-view
HelpshiftSdk.showFAQsWithMeta(configDictionary) HelpshiftSdk.showFAQs(configDictionary);
Reference: https://developers.helpshift.com/unity/support-tools-android/#faqs-view
Meta-data configuration reference: https://developers.helpshift.com/unity/tracking-android/#metadata
HelpshiftSdk.handlePushNotification(issueid) HelpshiftSdk.handlePushNotification(pushNotificationDictionary)
Reference: https://developers.helpshift.com/unity/notifications-android/##manual-push-support