In an effort to be as transparent as possible, we’ve tried to document exactly how our SDK works, what kind of information is sent, and our commitment to production service.
If you have any additional questions about the content of this page, or any feedback about the content here, please contact us directly at firstname.lastname@example.org.
The full iOS project is available on GitHub, and the project can be easily incorporated through CocoaPods or Carthage.
We have tried to keep the project extremely resource efficient, and only occasionally send data to LaunchKit servers in a minimal format.
Here’s a list of exactly, exclusively what the SDK does in your iOS app:
UIViewControllerhierarchy, in order to determine the current screen visible to the user.
That’s it. See the code here.
Tracking is based exclusively on a random identifier. LaunchKit servers generate this identifer the first time the app starts, and the SDK persists the identifer across requests to our API.
We don’t ’fingerprint” users for tracking,
or attempt to do any advertising-related targeting at all.
We just make a random ID and store it in a
If your app has logged in user accounts, and you want to find Super Users who use your service across multiple devices, that’s fully supported!
In that case, you can provide us a unique ID when calling
setUserInfo: when the user logs in. No need to include any other
information — name and email address are optional.
Providing a unique ID in this way will associate multiple end-user sessions with the same unique “user” in LaunchKit’s Super User database.
We built LaunchKit because we needed it ourselves. As a result, we’ve been using the LaunchKit SDK in all of our own iOS apps, live in the App Store for most of 2015.
We’ve tracked many millions of events for our own users with this SDK. We’ve found many bugs in doing so, and we’re very confident that this SDK will cause no problems for you in production.
In the event of catastrophe — or a canceled user account — the SDK will not crash or degrade your app’s performance. If the LaunchKit API is unreachable, the SDK will just stop sending us data, silently.
(In this case, the app might generate a failing web request per app session, but that should be the extent of the impact.)