Skip to Content
SDK IntegrationOverview

SDK Overview

TrustPin provides native SDKs for all major mobile and desktop platforms, enabling you to implement OWASP-compliant certificate pinning with minimal integration effort.

Available SDKs

SDKLatest versionLanguagesPlatforms
iOS / macOSTrustPinKit 6.2.0Swift 6.1+iOS 15+, macOS 13+, watchOS 8+, tvOS 15+, visionOS 2+
Android / Kotlincloud.trustpin:kotlin-sdk 6.2.0Kotlin 2.3.0+Android API 25+, JVM 11+
Fluttertrustpin_sdk 6.2.0DartiOS 15+, Android API 25+, macOS 13+

The Flutter package bundles the native SDKs (TrustPinKit 6.2.x on iOS/macOS, cloud.trustpin:kotlin-sdk 6.2.x on Android), so a single flutter pub get brings everything in.

iOS, macOS, watchOS, tvOS & visionOS

Android & JVM

Flutter (Cross-Platform)


Quick Integration

All TrustPin SDKs follow a consistent 3-step integration pattern:

1. Install the SDK

Add TrustPin to your project using your platform’s package manager:

  • iOS/macOS: Swift Package Manager or CocoaPods
  • Android: Gradle with Maven Central
  • Flutter: pub.dev package

2. Initialize TrustPin

Build a TrustPinConfiguration and pass it to setup() during app initialization. Each SDK can either load the configuration from a bundled file or accept it inline:

  • iOS / macOSTrustPinConfiguration.fromPlist() reads a bundled TrustPin-Info.plist
  • Android / KotlinTrustPinConfiguration.fromAssets(context) reads src/main/assets/trustpin.json
  • FlutterTrustPin.shared.setupWithNativeBundle() defers to each platform’s native config file (TrustPin-Info.plist on iOS/macOS, trustpin.json on Android), so credentials never enter the Dart isolate

All three forms accept the same fields: organizationId / OrganizationId, projectId / ProjectId, publicKey / PublicKey, optional mode, and optional configurationURL.

setup() is non-blocking — it returns as soon as the configuration starts loading. To fail closed (block until a validated configuration is available before making pinned requests), await the new awaitConfiguration() gate after setup(). See each platform’s guide for the exact call.

3. Configure HTTP Client

Integrate TrustPin with your HTTP client:

  • iOS / macOS: URLSession with TrustPin.makeURLSessionDelegate(), the Alamofire adapter (TrustPinKitAlamofire), or system-wide via TrustPinURLProtocol
  • Android / JVM: OkHttp / Retrofit / Ktor via the trustpin-okhttp / trustpin-ktor adapters (.trustPin()), or manually with TrustPinSSLSocketFactory.create()
  • Flutter: Dio with TrustPinDioInterceptor, or package:http via TrustPinHttpClient.create()

Key Features

All SDKs provide:

  • OWASP-Compliant Pinning - Implements OWASP Mobile Security Testing Guide recommendations
  • Zero-Downtime Updates - Update certificates remotely without app releases
  • Automatic Validation - Certificate pinning happens automatically on all HTTPS requests
  • Intelligent Caching - 10-minute configuration cache with automatic refresh
  • Strict & Permissive Modes - Control pinning behavior for production vs development
  • Comprehensive Error Handling - Detailed error codes for debugging

Platform-Specific Documentation

Choose your platform to view detailed integration guides, API references, and examples:


Need Help?