Skip to content
No description, website, or topics provided.
Swift Objective-C Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
JWPlayer-VR-Developer-Demo Merge pull request #9 from jwplayer/xcode8-support Sep 16, 2016
images added snapshot Apr 8, 2016
.gitignore Removed Podfile.lock from tracking, and added the file into .gitignore ( Sep 16, 2019 [SDK-4793] Implemented a best practice app that uses a CollectionView. ( Oct 23, 2019

JW Player iOS Best Practice Apps

This repository contains samples relating to the JW Player SDK for iOS.

The following projects can be found within this repository:


The JWBestPracticeApps XCode project is composed of several targets which can be run as separate iOS applications. Each target adds a level of complexity to the base target, JWBestPracticeApps, which creates a basic JW Player with minimal customization. In each target, classes inherit from classes of more basic targets, allowing us to present relevant code in a clear way and spare you the redundancy.

  • The target named JWAirPlay presents the necessary code to add an AirPlay button to your app, and cast the video via AirPlay.

  • The target named JWCasting presents the code necessary to cast our JW Player to a Chrome Cast device.

  • The target named JWRemoteController is an Apple Watch app capable of controlling the JW Player in the iOS App named JWRemotePlayer.

  • The target named JWRemoteCastController is an Apple Watch app capable of casting the video being reproduced in the iOS App named JWRemoteCastPlayer to a Chrome Cast device.

  • The target named JWFairPlayDrm illustrates how to use our DRM implementation to play a FairPlay encrypted stream.

  • The target named Voicer provides the code necessary to control the player's playback and casting with voice control using Siri.

  • The target named NativeControls provides the code necessary to use your own custom controls and control the player playback even on full screen mode.

  • The target named AirPlay illustrates how to add AirPlay support.

Initial Setup for JWBestPracticeApps:

Via CocoaPods

To get started with CocoaPods, please visit

The JW Player iOS SDK as well as the Google Cast SDK required for JWCasting can be retrieved using CocoaPods. Navigate to the project's Podfile and ensure that the latest JW Player CocoaPod is listed ( Then, using your command line, navigate to the JWBestPracticeApps folder and run 'pod install'. When installation is complete, please use the xcworkspace, not the xcodeproj. Remember to add your JWPlayer key to the info.plist in the JWBestPracticeApps target.

Via Manual Framework installation

Import the JW Player iOS SDK to the project, add your JWPlayer key to the info.plist in the JWBestPracticeApps target and link the JWPlayer iOS SDK. To avoid importing the JW Player iOS SDK to each target, import it once to the JWBestPracticeApps target and set its Target Membership to each target, as seen in the following screenshot:

Target Membership Screenshot

For more instructions please visit the official JW Player Developer guide at

For targets that require casting to Google ChromeCast, you must import a Google ChromeCast Framework, as well as all of its depending frameworks. Our SDK is compatible with the version of the Google Cast SDK. For the list of necessary frameworks please visit

Note: The demo apps in this repository are intended to be used with version 2.4 of the JW Player iOS SDK.


The JWPlayer-VR-Developer-Demo project showcases how the JW Player VR SDK can be used to allow 360 video playback within your apps.

For setup instructions see the JWPlayer-VR-Developer-Demo README.


Was this repository helpful? How can we improve it? Please send your feedback to

You can’t perform that action at this time.