Follow this step-by-step guide to set up the Sinch In-app Calling SDK for the first time.
- Register a Sinch Developer account here.
- Setup a new Application using the Dashboard where you can then obtain an Application Key and an Application Secret.
Minimum supported deployment target is iOS 12.0.
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:
- 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- Then install dependencies:
pod installSee the CocoaPods page: SinchRTC on CocoaPods
- In Xcode, go to File → Add Package Dependencies...
- Repository URL:
https://github.com/sinch/sinch-ios-sdk-spm- In the configuration view, choose one of the following Dependency Rules:
- Branch: select
dynamic(ormain) to link a dynamic xcframework — always uses the latest available dynamic SDK version - Branch: select
staticto 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
- Branch: select
- 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/entitlements:
- Enable Push Notifications capability for your app target, which adds
aps-environmentto 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."