The Azure SDK team is pleased to announce our February 2021 client library releases.


  • Azure Communication Services Calling
  • Azure Communication Services Chat
  • Azure Communication Services Common

Installation Instructions

To install the latest GA and beta libraries, we recommend you use the Swift Package Manager. As an alternative, you may also integrate the libraries using CocoaPods.


To add the Azure SDK for iOS to your application, follow the instructions in Adding Package Dependencies to Your App:

With your project open in Xcode 11 or later, select File > Swift Packages > Add Package Dependency… Enter the clone URL of this repository: and click Next. For the version rule, specify the exact version or version range you wish to use with your application and click Next. Finally, place a checkmark next to each client library you wish to use with your application, ensure your application target is selected in the Add to target dropdown, and click Finish.

Swift CLI

To add the Azure SDK for iOS to your application, follow the example in Importing Dependencies:

Open your project’s Package.swift file and add a new package dependency to your project’s dependencies section, specifying the clone URL of the repository and the version specifier you wish to use:

    dependencies: [
        .package(url: "", from: "1.0.0-beta.8")

Next, add each client library you wish to use in a target to the target’s array of dependencies:

    targets: [
            name: "MyTarget",
            dependencies: [


CocoaPods is a dependency manager for Objective-C and Swift projects. You can install it with the following command:

$ [sudo] gem install cocoapods

CocoaPods 1.5+ is required.

To integrate one or more client libraries into your project using CocoaPods, specify them in your Podfile, providing the version specifier you wish to use. To ensure compatibility when using multiple client libraries in the same project, use the same version specifier for all Azure SDK client libraries within the project:

platform :ios, '12.0'

# Comment the next line if you don't want to use dynamic frameworks

target 'MyTarget' do
    pod 'AzureCommunication', '~> 1.0.0-beta.8'
    pod 'AzureCommunicationCalling', '~> 1.0.0-beta.8'
    pod 'AzureCommunicationChat', '~> 1.0.0-beta.8'

Then, run the following command:

$ pod install


If you have a bug or feature request for one of the libraries, please post an issue to GitHub.

Release highlights

1.0.0-beta.8 (Changelog)

Azure Communication Services Common

Breaking Changes
  • Renamed the type CommunicationUserCredential to CommunicationTokenCredential, as it represents a token.
  • Communication identifier MicrosoftTeamsUserIdentifier property identifier renamed to userId since identifier was too generic.
  • Communication identifier MicrosoftTeamsUserIdentifier property id renamed to rawId to represent full MRI.
  • Communication identifier PhoneNumberIdentifier property id renamed to rawId to represent full MRI.
  • Removed CallingApplicationIdentifier as it is currently unused by any service.
  • The protocol CommunicationTokenCredential has likewise been renamed to CommunicationTokenCredentialProviding.
  • All types that conform to the CommunicationIdentifier protocol now use the suffix Identifier. For example, the PhoneNumber type used to represent a phone number identifier is now named PhoneNumberIdentifier.
  • Updated the CommunicationTokenCredential initializer that automatically refreshes the token to accept a single CommunicationTokenRefreshOptions object instead of multiple parameters.
  • Removes CommunicationUserCredentialPolicy. This policy was a duplicate of AzureCore.BearerTokenCredentialPolicy. Communication now has new ability to create BearerTokenCredentialPolicy using the new CommunicationPolicyTokenCredential.

Azure Communication Services Calling

New Features
  • Added ability to join a Teams meeting.
  • New event on Call OnIsRecordingActiveChanged to indicate when the recording has been started and stopped and new property IsRecordingActive to indicate if currently the recording is active or not.
Key Bug Fixes
  • Fix wrong callId on the incoming Call object.
  • When placing outgoing call or joining a group call event will be raised OnCallsUpdated when call list is updated.
  • Throw IllegalArgumentException if null camera is passed to constructor of LocalVideoStream.
  • Fixed video freezing in landscape mode.
  • RendererView layout is no longer off after a device rotation.
  • RendererView is no longer blank when not added to the window right away.
  • Fixed RendererView issues when joining a call with a reused groupId.

Azure Communication Services Chat

New Features
  • Introduced ChatClient and ChatThreadClient to split operations on threads and operations within a particular thread.
  • Create thread sets repeatability-Request-ID for idempotency if not provided.
  • Introduced MessageContent model to replace string content property.
Breaking Changes
  • ChatThreadMember renamed to Participant, uses CommunicationUserIdentifier.
  • ChatMessage renamed to Message, uses CommunicationUserIdentifier.
  • ChatThread renamed to Thread, uses CommunicationUserIdentifier.

Need help

Latest Releases

View all the latest versions of iOS packages here.