Swiftpack.co - EricssonBroadcastServices/iOSClientExposure as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by EricssonBroadcastServices.
EricssonBroadcastServices/iOSClientExposure v3.2.1
Exposure API helpers
⭐️ 0
🕓 12 weeks ago
iOS tvOS
.package(url: "https://github.com/EricssonBroadcastServices/iOSClientExposure.git", from: "v3.2.1")

Swift Platforms CocoaPods Compatible Carthage Compatible Swift Package Manager



  • ☑ Asset search
  • ☑ Authentication
  • ☑ Playback Entitlement requests
  • ☑ Download Entitlement requests
  • ☑ EPG discovery
  • ☑ Analytics drop-off
  • ☑ Server time sync
  • ☑ Carousel integration
  • ☑ Dynamic customer configuration
  • ☑ Content search with autocompletion


  • iOS 9.0+

  • tvOS 10.0+

  • Swift 4.0+

  • Xcode 9.0+

  • Framework dependencies


Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding iOSClientExposure as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/EricssonBroadcastServices/iOSClientExposure", from: "3.2.1")


Carthage is a decentralized dependency manager that builds your dependency graph without interfering with your Xcode project setup. CI integration through fastlane is also available.

Install Carthage through Homebrew by performing the following commands:

$ brew update
$ brew install carthage

Once Carthage has been installed, you need to create a Cartfile which specifies your dependencies. Please consult the artifacts documentation for in-depth information about Cartfiles and the other artifacts created by Carthage.

github "EricssonBroadcastServices/iOSClientExposure"

Running carthage update will fetch your dependencies and place them in /Carthage/Checkouts. You either build the .frameworks and drag them in your Xcode or attach the fetched projects to your Xcode workspace.

Finally, make sure you add the .frameworks to your targets General -> Embedded Binaries section.


CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate iOSClientExposure into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'iOSClientExposure', '~>  3.2.1'

Getting Started

Exposure conveys seamless integration with the EMP Exposure Layer and enables client applications quick access to functionality such as authentication, entitlement requests and EPG.

EMP Exposure Layer has three central concepts of special importance.

  • Environment Describes the customer specific Exposure environment
  • SessionToken Represents an authenticated user session
  • Asset Id A unique identifier for a media asset in the system.

The basic building block of any interaction with the EMP Exposure layer is Environment. This struct details the customer specific information required to make requests.

Besides an Environment, a valid SessionToken is required for accessing most of the functionality. This token is returned upon succesful authentication through the Authenticate endpoint. Several methods exist for dealing with user authentication, listed below.

Authenticate(environment: exposureEnv)
    .login(username: someUser,
           password: somePassword)
Authenticate(environment: exposureEnv)

Finally, Asset Id refers to unique media assets and may represent items such as tv shows, movies, tv channels or clips. Client applications should use this id when refering to media in the EMP system.

Release Notes

Release specific changes can be found in the CHANGELOG.

Upgrade Guides

The procedure to apply when upgrading from one version to another depends on what solution your client application has chosen to integrate Exposure.

Major changes between releases will be documented with special Upgrade Guides.


Updating your dependencies is done by running carthage update with the relevant options, such as --use-submodules, depending on your project setup. For more information regarding dependency management with Carthage please consult their documentation or run carthage help.


Stars: 0
Last commit: 2 days ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.


Release Notes

12 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics