Our Mobile Support SDK enables you to add an in-app chat (Messenger) to your apps in a plug-and-play fashion.
- iOS 9.0+
- Xcode 8.1+
- Swift 3.0+
- If you want to ask a question, open an issue.
- If you've found a bug, open an issue.
- If you have a feature request, open an issue.
- Coffee machine not working? Open an issue (our mobile team folks are experts at fixing coffee machines)
- If you want to contribute, submit a pull request.(https://github.com/kayako/KayakoMessengeriOS/pull/new/master).
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 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
To integrate Messenger into your Xcode project using Carthage, specify it in your
carthage update --platform iOS(bootstrap is recommended for CI systems by the Carthage team).
Add the following frameworks from
Carthage/Buildto your project (We'll be actively working on shortening this list. For each dependency's purpose, check Dependencies).
Add each directory to the
copy-frameworksRun phase, as outlined in the Carthage docs. Here's something you can copy paste into "input files", to make your life easier 😁
Build and run 🚀
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.
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,
cdinto 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
KayakoMessengeriOSfolder, and drag the
KayakoMessenger.xcodeprojinto 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.
KayakoMessenger.xcodeprojin 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.xcodeprojfolders each with two different versions of the
KayakoMessenger.frameworknested inside a
And that's it!
KayakoMessenger.frameworkis 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.
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.
AsyncDisplayKit: 60fps everywhere, courtesy the amazing folks at Pinterest and Facebook.
Starscream: realtime events for a better experience, plus much lower battery usage.
Wrap: JSON parsing and encoding made by the amazing John Sundell at Hyper
NVActivityIndicator: Beautiful loading indicators. Note that we'll evenually remove these and migrate to our own organic, home grown, free range loading states 🤠
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.
Unbox are particularly a joy to work with.
Source Code & Licensing
The source code is available on the following github repository:
The source code is distributed under the Apache 2.0 License: