Getting Started

Or, follow these simple steps to add Helpshift in-app support to your iOS App right away -


  • Xcode 10.2 and above.
  • Supported iOS versions:
    • iOS 13, 12, 11 and 10

With version 7.5.0, Helpshift SDK has dropped support for iOS 9. If you wish to keep supporting iOS 9 devices for your apps, please read the KB Article to support Helpshift on older OS versions.

For versions 7.4.0 and below, due to a bug in Xcode 10+, the Helpshift SDK will not be compatible with iOS versions below 9.3 Unfortunately till the time Apple fixes the bug with Xcode 10.2 or higher, we have decided to drop support for iOS 9.2 and below for SDK version 7.4.0 and below

Choose your SDK

Select your SDK from the following options:

Standard SDK - In-app Customer Service

Automated Integration using Cocoapods

To start using Helpshift v7.7.1 in your project, add one of the following lines to your Podfile according to the version which you wish to integrate.

pod 'Helpshift', '7.7.1'            # For normal version
pod 'Helpshift', '7.7.1-bitcode'    # For bitcode version

And run pod install or pod update to refresh your cocoapods dependencies.

If your app does not contain any swift code, follow the additional steps:

  • Set Always Embed Swift binaries in the build settings to YES
  • Add /usr/lib/swift to the runpath search paths in the build settings. Make sure it is above the $(inherited) and @executable_path/Frameworks flags
  • Add $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) for Xcode 11.x or $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) for Xcode 10.x to the Library Search Paths in the build settings.

You can now move on to Initializing Helpshift in your App.

Manual Integration

Get the latest SDK zip

Download the latest for the Helpshift iOS SDK.

Download SDK v7.7.1

The zip file contains

Support API header file
Core API header file
Bitcode incompatible version of the Helpshift library
Bitcode compatible version of the Helpshift library
Bundle file containing images and XIB files used by the SDK
Bundle file containing the default Helpshift translation files.
Folder containing skinning configuration to match the design of your app
Folder containing language translations which can be used to create the HelpshiftCustomLocalization bundle. This is just for reference.
License information about third-party code.

Add the latest stable SDK release to your project

  • Unzip the SDK & drag-drop the HelpshiftSupport.h, HelpshiftCore.h, header files, libSupport.a, HsUIResourceBundle.bundle, HSThemes/ and HsLocalization.bundle files into your Xcode project.
  • In Build Phases, verify that libHelpshift.a is in the Link Binary with Libraries and the Helpshift resources are in Copy Bundle Resources
  • Add the following frameworks to Link Binary with Libraries -

    • CoreGraphics
    • QuartzCore
    • CoreText
    • SystemConfiguration
    • CoreTelephony
    • UIKit
    • libsqlite3.tbd
    • libicucore.tbd (needed only for v6.0.0 or later)
    • libz.tbd
    • Security
    • QuickLook
    • MobileCoreServices
    • CoreSpotlight
    • Photos (needed only for v5.10.0 or later)
    • WebKit (needed only for v5.10.0 or later)
    • FileProvider (needed for v7.0.0 or later)
  • Add -ObjC flag to the Other Linker Flags under Build Settings section.

    Explanation : The Helpshift SDK defines its own categories and uses method swizzling internally to listen to some application delegates required for doing background data syncing. Apple guidelines are still unclear about the usage of method swizzling but we have independently confirmed that usage itself is not grounds for rejection in the app review. They take into account the purpose and scope of the swizzled methods and only reject if the application code appears to use hidden APIs or do some other malicious activity. Which we do not!

  • If your app does not contain any swift code, follow the additional steps:

    • Set Always Embed Swift binaries in the build settings to YES
    • Add /usr/lib/swift to the runpath search paths in the build settings. Make sure it is above the $(inherited) and @executable_path/Frameworks flags
    • Add $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) for Xcode 11.x or $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) for Xcode 10.x to the Library Search Paths in the build settings.
  • With version 7.7.0, End-users will be able to send files such as pdf, video, etc. where before 7.7.0 end-users could only send images. For iOS 10 and below, to access files in the “Files” app of iOS, developers will need to add iCloud capability with iCloud Documents services enabled. For more info please refer the Prerequisites section here.    show me

Please note that SDK may crash if HsUIResourceBundle.bundle file is not inlcuded in your project or is not updated to the correct version required by your current SDK version.

Add NSPhotoLibraryUsageDescription key in your application info plist file

If your app does not use this permission, you would need to add this key as well as description for the same. Not adding this key-description pair might cause app rejection.

Description text: “We need to access photos library to allow users manually pick images meant to be sent as attachment for help and support reasons.”

Note that this is just a suggested description. If you need localisations for the same, please Contact Us

Please replace all the old files with new files.

Helpshift is now ready to help you have conversations with your users! Head over to Initializing Helpshift in your App.

Integrating with a Swift Project

If you are working in Swift, you can use Helpshift with the mix and match feature. Mix and match works by using an Objective-C bridging header to expose the required Objective-C files to your Swift code.

In case you already have an Objective-C bridging header set up in your project you can skip to Step 2.

Adding an Objective-C bridging header

If your project does not already bridge to Objective-C, you will need to create a bridging file and let Xcode know. Add a new Header file to your project.

This will be your Objective-C bridging header so you can name it something appropriate like ObjC-Bridge.h.

Next, in your project's Build Settings look for Objective-C Bridging Header under Swift Compiler - Code Generation.

Add the path to your bridge file. The path needs to be relative to your project. For example, if the project name is Helpshift-Demo and the bridge is ObjC-Bridge.h, then the path should be: Helpshift-Demo/ObjC-Bridge.h

Add Helpshift to the Objective-C bridging header

Inside your Objective-C bridging header, add these lines:

#import "HelpshiftSupport.h"
#import "HelpshiftCore.h"

You are now ready to start using Helpshift in your Swift code. For example, you can use the initialisation function this way:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    HelpshiftCore.initialize(with: HelpshiftSupport.sharedInstance())
    HelpshiftCore.install(forApiKey: "<YOUR_API_KEY>", domainName: "<YOUR_HELPSHIFT_DOMAIN>", appID: "YOUR_APP_ID")
    return true

Start using Helpshift

Helpshift is now integrated in your app and ready to collect meaningful data about your users.

Initializing Helpshift in your app

Helpshift uniquely identifies each registered App using a combination of 3 tokens:

Your unique developer API Key
Domain Name
Your Helpshift domain name without any http: or slashes. E.g. happyapps if your account is
App ID
Your App's unique ID

You can find these tokens by navigating to Settings>SDK (for Developers) in your agent dashboard. Select your App and the correct platform from the dropdowns and copy the 3 tokens to be passed when initializing Helpshift. show me

Initialize Helpshift by calling the HelpshiftCore's install function:

  1. Initialize the HelpshiftCore with the Helpshift service that you want to use.
  2. Call the HelpshiftCore's install function.
    #import "HelpshiftCore.h"

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

        [HelpshiftCore initializeWithProvider:[HelpshiftSupport sharedInstance]];
        [HelpshiftCore installForApiKey:@"YOUR_API_KEY" domainName:@"YOUR_HELPSHIFT_DOMAIN" appID:@"YOUR_APP_ID"];

        return YES;

Placing the install call

You should not place the install call anywhere other than application:didFinishLaunchingWithOptions: Placing it elsewhere might cause unexpected runtime problems. From version 5.7.0 and above the Helpshift install call will throw InstallException in case the validation of the SDK keys fail.


If you are having issues with Helpshift integration, head over to the Troubleshooting section for further information.

Next up

Helpshift APIs

Discover ways to do customer support via Helpshift.


Theming and Skinning your SDK to look like your App.

Going International

Localizing & Internationalizing your in-app Support.


Configure Push and In-app notifications.


Track events and user actions. Attach custom metadata to every conversation.

Reviews & Feedback

Asking for reviews and feedback.