Swiftpack.co - Package - Azure/azure-sdk-for-ios

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.


iOS client SDKs for Microsoft Azure

Azure SDK for iOS

This repository is for active development of the Azure SDK for iOS. For consumers of the SDK we recommend visiting our versioned developer docs.

Note: The Azure SDK for iOS replaces a previous offering, known as Azure.iOS. Source code and documentation for Azure.iOS is available in the legacy branch.

Getting started

For your convenience, each service has a separate set of libraries that you can choose to use instead of one, large Azure package. To get started with a specific library, see the README.md file located in the library's project folder. You can find service libraries in the /sdk directory.


  • The client libraries are written in modern Swift 5. Due to this, Xcode 10.2 or higher is required to use these libraries.
  • You must have an Azure subscription to use these libraries.

Libraries available

The latest version of the SDK is 1.0.0-beta.7. Older releases are also available.

Currently, the client libraries are in beta. These libraries follow the Azure SDK Design Guidelines for iOS and share a number of core features such as HTTP retries, logging, transport protocols, authentication protocols, etc., so that once you learn how to use these features in one client library, you will know how to use them in other client libraries. You can learn about these shared features in AzureCore.

The following libraries are currently in beta:


Azure Communication Services

Note: The SDK is currently in beta. The API surface and feature sets are subject to change at any time before they become generally available. We do not currently recommend them for production use.

Install the libraries

To install the Azure client libraries for iOS, we recommend you use Swift Package Manager. As an alternative, you may also integrate the libraries using CocoaPods.

Add a package dependency with Swift Package Manager

The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.

Xcode comes with built-in support for Swift Package Manager and source control accounts and makes it easy to leverage available Swift packages. Use Xcode to manage the versions of package dependencies and make sure your project has the most up-to-date code changes.


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: https://github.com/Azure/azure-sdk-for-ios.git 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 this repository and the version specifier you wish to use:

    dependencies: [
        .package(url: "https://github.com/Azure/azure-sdk-for-ios.git", from: "1.0.0-beta.7")

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

    targets: [
            name: "MyTarget",
            dependencies: ["AzureCommunicationChat", ...])

Integrate the client libraries with CocoaPods

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 'AzureCommunicationChat', '~> 1.0.0-beta.7'

Then, run the following command:

$ pod install

Need help?

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.


For details on contributing to this repository, see the contributing guide.

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.



Stars: 84
Last commit: 11 hours ago


Azure SDK for iOS 1.0.0-beta.7 - 2021-01-13T01:00:16

New Features

  • Azure Communication Calling Service

    • Added the ability to set the Caller display name when initializing the library.
  • Azure Communication Common Library

    • Added a new communication identifier MicrosoftTeamsUserIdentifier, used to represent a Microsoft Teams user.
    • Introduced the new CommunicationTokenRefreshOptions type for specifying communication token refresh options.

Breaking Changes

  • Azure Communication Common Library
    • Renamed the type CommunicationUserCredential to CommunicationTokenCredential, as it represents a token.
    • 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.

Key Bug Fixes

  • Azure Communication Calling Service
    • Fixed an issue where handlePushNotification did not return false if the same payload had been processed already.
    • Improved logging to help identify the source of hangup-related issues reported in GitHub.
    • Fixed an issue where the remote participant was still available after hangup/disconnect. #134