iOS SDK
Important: Please note that your App ID is your API key.
The iOS SDK lets you use Vonage Video API-powered video sessions in apps built for iPad, iPhone, and iPod touch devices.
Important notes:
- Version 2.23+ of the SDK will only support iOS 12 or higher.
- Changes to iOS 14 networking affecting relayed sessions — see the list of known issues in the release notes.
- Issues using Simulator to preview your app on a Mac with an M1 chip — See the list of known issues in the release notes.
Overview
The iOS client SDK provides the following functionalities:
- Connecting to session
- Publishing streams to a session
- Subscribing to streams in a session
Client SDKs are also available for web, Android, iOS, Windows, macOS, Linux, and React Native. All client SDKs can interact with one another.
You can learn more about the basics of Vonage Video clients, servers, sessions, and more on the Video API Basics page.
Building with the iOS SDK
The best way to learn how to use the iOS SDK is to follow the Vonage Video Basic Video Chat tutorial.
Once you understand the basics of building with the iOS SDK, you can get more detailed information and learn how to customize your application with the Vonage Video developer guides.
To investigate specific API classes and methods, see the iOS SDK API reference.
Interoperability
Apps written with the OpenTok iOS SDK 2.28.3 can interoperate with Vonage video apps apps written with version 2.25+ of the Vonage Video client SDKs:
- OpenTok.js (Web)
- Android SDK
- Windows SDK
- Linux SDK
- React Native SDK
Using the SDK
The OpenTok.framework directory contains the iOS SDK.
The iOS SDK is available as the Pods "OpenTok" and "OTXCFramework", for use with CocoaPods. The OTXCFramework pod supports XCFramework artifacts.
The iOS SDK requires Xcode 7 or higher. The iOS SDK requires the following frameworks and libraries::
- AudioToolbox.framework
- AVFoundation.framework
- CoreGraphics.framework
- CoreMedia.framework
- CoreTelephony.framework
- CoreVideo.framework
- Foundation.framework
- GLKit.framework
- libc++.dylib (libc++.tbd in Xcode 7+)
- libsqlite3.dylib (libsqlite3++.tbd in Xcode 7+)
- Metal.framework
- MetalKit.framework
- MetalPerformanceShaders.framework
- OpenGLES.framework
- QuartzCore.framework
- SystemConfiguration.framework
- UIKit.framework
- VideoToolbox.framework
The iOS SDK links to the libc++ standard library. If another library that links to the libc++ standard library was compiled in a version of Xcode older than 6.0.0, it may result in segfaults at run time when using it with the iOS SDK.
Known incompatible libraries include, but are not limited to, Firebase (versions earlier than 2.1.2 -- see https://code.google.com/p/webrtc/issues/detail?id=3992 and Google Maps (versions earlier than 1.9.0). To fix this issue, download a version of the other library that was compiled using XCode 6.0.0 or later.
If you are using a version of Xcode prior to 7.2.0, do not use the -all_load linker flag. Instead, use the -force_load linker flag to load specific libraries that require it.
In order to access the camera and microphone, iOS 10 requires you to set values for the NSCameraUsageDescription and NSMicrophoneUsageDescription keys in the Info.plist file. These define strings that appear in the app installer to inform the user why your app uses the camera and microphone.
For more information see the Apple documentation on Cocoa keys.
See the release notes for information on the latest version of the SDK and for a list of known issues.
See this document for information on using the SDK in apps running in the background mode.
System requirements
The iOS SDK is supported on the following devices:
- iPhone -- iPhone 5s and later
- iPad -- iPad Pro 1st generation and later, iPad (2017), iPad Air (all models), iPad 4th generation, iPad mini 2 and later
- iPod touch 6th generation and later
The iOS SDK is supported in iOS 12 or higher.
The iOS SDK is supported on Wi-Fi, 4G/LTE, and 5G connections.
The iOS SDK supports one published audio-video stream, one subscribed audio-video stream, and up to three additional subscribed audio-only streams simultaneously on the iPhone 5s (the lowest-end device supported).
On the iPhone 7, tests have shown support for subscribing to as many as 20 simultaneous low-resolution (200x200-pixel, 15-frame-per-second) streams.
To connect more than two clients in a session using the iOS SDK, create a session that uses the Vonage Video Media Router (a session with the media mode set to routed). See The Vonage Video Media Router and media modes.
Sample apps
For samples using Swift, visit our Swift sample app repo on GitHub.
For samples using Objective-C, visit our Objective-C sample app repo on GitHub.
Documentation
You can find detailed documentation of each iOS method in the reference guide
More information
For a list of new features and known issues, see the release notes.
Important: Please note that your App ID is your API key.