Installation

Our Mobile Support SDK enables you to add an in-app chat (Messenger) to your apps in a plug-and-play fashion.

Prerequisites

  • iOS 9.0+
  • Xcode 8.1+
  • Swift 3.0+

Communication

Installation

We support 2 main installation methods - Carthage and Cocoapods. Carthage is currently the "most supported" way of using messenger, since it's what we use and gets tested most often.

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage
  1. To integrate Messenger into your Xcode project using Carthage, specify it in your Cartfile: github "Kayako/KayakoMessengeriOS"

  2. Then, run carthage update --platform iOS (bootstrap is recommended for CI systems by the Carthage team).

  3. Add the following frameworks from Carthage/Build to your project (We'll be actively working on shortening this list. For each dependency's purpose, check Dependencies).

    • AsyncDisplayKit.framework
    • Birdsong.framework
    • NVActivityIndicatorView.framework
    • PINCache.framework
    • PINRemoteImage.framework
    • PINOperation.framework
    • Starscream.framework
    • StatefulViewController.framework
    • Unbox.framework
    • Wrap.framework
    • CustomerSuccess.framework
    • KayakoMessenger.framework
  4. Add each directory to the copy-frameworks Run phase, as outlined in the Carthage docs. Here's something you can copy paste into "input files", to make your life easier 😁

    • $(SRCROOT)/Carthage/Build/iOS/Unbox.framework
    • $(SRCROOT)/Carthage/Build/iOS/Wrap.framework
    • $(SRCROOT)/Carthage/Build/iOS/AsyncDisplayKit.framework
    • $(SRCROOT)/Carthage/Build/iOS/Birdsong.framework
    • $(SRCROOT)/Carthage/Build/iOS/NVActivityIndicatorView.framework
    • $(SRCROOT)/Carthage/Build/iOS/PINCache.framework
    • $(SRCROOT)/Carthage/Build/iOS/PINOperation.framework
    • $(SRCROOT)/Carthage/Build/iOS/PINRemoteImage.framework
    • $(SRCROOT)/Carthage/Build/iOS/Starscream.framework
    • $(SRCROOT)/Carthage/Build/iOS/StatefulViewController.framework
    • $(SRCROOT)/Carthage/Build/iOS/KayakoMessenger.framework
  5. Build and run 🚀

Cocoapods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.1.0+ is required to build the messenger SDK

To integrate Messenger into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target '<Your Target Name>' do
  pod 'KayakoMessenger', '~> 0.2'
end

Then, run the following command:

$ pod install

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. It's still in early development, but we'll be adding support for certain parts of messenger (specifically, the bits that make requests) soon.

Manually

If you prefer not to use any of the aforementioned dependency managers, you can probably integrate Messenger into your project manually. Note that this isn't well tested yet, so we'd suggest you go with a proper dependency manager. If you still like to tempt fate / are a masochist, follow the steps below.

  • Open up Terminal, cd into your top-level project directory, and run the following command "if" your project is not initialized as a git repository:
  $ git init
  • Add Messenger as a git submodule by running the following command:
  $ git submodule add https://github.com/kayako/KayakoMessengeriOS.git
  • Open the new KayakoMessengeriOS folder, and drag the KayakoMessenger.xcodeproj into the Project Navigator of your application's Xcode project.

    It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter.

  • Select the KayakoMessenger.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.

  • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.

  • In the tab bar at the top of that window, open the "General" panel.

  • Click on the + button under the "Embedded Binaries" section.

  • You will see two different KayakoMessenger.xcodeproj folders each with two different versions of the KayakoMessenger.framework nested inside a Products folder.

  • And that's it!

KayakoMessenger.framework is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device.

Dependencies

We believe in being transparent about our dependencies(it's why the SDK is OSS), so here's the list of dependencies(again, all OSS) + the reason we included them.

  1. AsyncDisplayKit: 60fps everywhere, courtesy the amazing folks at Pinterest and Facebook.
  2. Birdsong and Starscream: realtime events for a better experience, plus much lower battery usage.
  3. Unbox and Wrap: JSON parsing and encoding made by the amazing John Sundell at Hyper
  4. StatefulViewController and NVActivityIndicator: Beautiful loading indicators. Note that we'll evenually remove these and migrate to our own organic, home grown, free range loading states 🤠
  5. PINCache, PINOperation and PINRemoteImage: Amazing stuff by the folks over at Pinterest. Are dependencies of ASDK, so we had to use them anyway

We strongly suggest you try them out. AsyncDisplayKit and Unbox are particularly a joy to work with.

Source Code & Licensing

The source code is available on the following github repository:

https://github.com/kayako/KayakoMessengeriOS

The source code is distributed under the Apache 2.0 License:

https://www.apache.org/licenses/LICENSE-2.0