Skip to content
Last updated

First time setup

Follow this step-by-step guide to set up the Sinch In-app Calling SDK for the first time.

Register an application

  1. Register a Sinch Developer account here.
  2. Setup a new Application using the Dashboard where you can then obtain an Application Key and an Application Secret.

Downloads

Minimum supported deployment target is iOS 12.0.

Manual integration

The Sinch SDK is available in both Objective‑C and Swift and can be downloaded here.

  • Objective-C version - add the Sinch.xcframework:

    • Drag the Sinch.xcframework bundle from the SDK distribution package folder into the Frameworks section in the Xcode Project Navigator.
  • Swift version - add the SinchRTC.xcframework:

    • Drag the SinchRTC.xcframework bundle from the SDK distribution package folder into the Frameworks section in the Xcode Project Navigator and set it to Embed & Sign.

Note: Both the Objective‑C and Swift SDKs depend on the following system frameworks and libraries. If you integrate manually, link these with your application target. If you use CocoaPods (Objective‑C) or Swift Package Manager (Swift), these are linked for you:

libc++.dylib (libc++.tbd), libz.tbd, Security.framework, AVFoundation.framework, AudioToolbox.framework, VideoToolbox.framework, CoreMedia.framework, CoreVideo.framework, CoreImage.framework, GLKit.framework, OpenGLES.framework, QuartzCore.framework, Metal.framework, MetalKit.framework, PushKit.framework, SystemConfiguration.framework

Sample applications are bundled with the SDK package. You can also find the Swift reference application on GitHub:

CocoaPods (Objective‑C only)

  1. Create a Podfile and configure it like this:
platform :ios, '12.0'

# add your target name here
target 'YourApp' do
  pod 'SinchRTC', 'x.y.z'
  workspace './YourApp.xcworkspace'
end
  1. Then install dependencies:
pod install

See the CocoaPods page: SinchRTC on CocoaPods

Swift Package Manager (Swift only)

  1. In Xcode, go to FileAdd Package Dependencies...
  2. Repository URL:
https://github.com/sinch/sinch-ios-sdk-spm
  1. In the configuration view, choose one of the following Dependency Rules:
    • Branch: select dynamic (or main) to link a dynamic xcframework — always uses the latest available dynamic SDK version
    • Branch: select static to link a static xcframework — always uses the latest available static SDK version
    • Version: select Exact Version and enter "x.y.z" — links the dynamic xcframework for that specific version
  2. Click Add Package.

Notes:

  • For dynamic/main: in your app target → General → Frameworks, Libraries, and Embedded Content, set SinchRTC to Embed & Sign.
  • For static: set SinchRTC to Do Not Embed. No extra system frameworks are required; the package auto‑links what it needs.
  • Selecting a Branch rule tracks the branch tip; you always get the latest SDK matching that framework type (dynamic or static).
  • Selecting an Exact Version resolves to the dynamic xcframework release for that version.

For more details, see: sinch-ios-sdk-spm on GitHub

Capabilities and Info.plist

Capabilities/entitlements:

  • Enable Push Notifications capability for your app target, which adds aps-environment to your entitlements.

Update Info.plist for voice calling functionality:

  • Required background modes (UIBackgroundModes):

    • audio — App plays audio (or streams audio/video using AirPlay)
    • voip — App provides Voice over IP services
  • Privacy - Microphone Usage Description (NSMicrophoneUsageDescription): Provide a reason why the app needs microphone access (required). See Apple docs: https://developer.apple.com/documentation/bundleresources/information_property_list/nsmicrophoneusagedescription Example: "Application wants to use your microphone to be able to capture your voice in a call."

  • Privacy - Camera Usage Description (NSCameraUsageDescription) if you enable video: Provide a reason why the app needs camera access (required when using video). See Apple docs: https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription Example: "Application wants to use your camera to be able to make a video call."