Skip to main content

Demo

Run the example application and test various use cases quickly.

Build and Run

  1. Set up the development environment

  2. Download the PRESTOplay SDK for React Native bundle from the castLabs Download Portal

  3. Extract the newly downloaded bundle and navigate to the newly created directory

  4. Extract the example.tgz archive and navigate to the example directory

  5. Enable corepack

    corepack enable
  6. Install dependencies

    yarn install
  7. Install iOS dependencies

    yarn install:ios
  8. Start Metro server

    yarn start
  9. Connect your device

Android

  1. Fix connection to the Metro server

    adb reverse tcp:8081 tcp:8081
  2. Open the <example>/android directory in Android Studio

  3. Select Run / Select your device... / MY_DEVICE

  4. Build and Run the application

iOS

  1. Open the <example>/ios/example.xcworkspace in Xcode
  2. Adjust properties in Project / Signing & Capabilities / Signing tab to your needs (one time)
  3. Select Product / Scheme / example
  4. Select Product / Destination / MY_DEVICE
  5. Build and Run the application

Troubleshooting

  1. The Android Studio may fail with the error message This version of Android Studio is incompatible with the Gradle Plugin used. To fix this, use Android Studio Jellyfish 2023.3.1.
  2. The Xcode build may fail with a PhaseScriptExecution error if:
    • The project workspace path contains spaces. For example, if the archive downloaded from the Download Portal was extracted to /Users/john/package 2/.
    • Another HTTP server is running on port 8081.
  3. The EXC_BAD_ACCESS error occurs when playing Widevine-protected DASH streams on iOS, specifically when WVCdm.createSession is called. Since Widevine CDM does not allow debugging, and this error is part of the tamper protection, you can resolve the issue by disabling debugging in Xcode: go to Product -> Scheme -> Edit Scheme -> Run -> Info -> Debug executable, and then uncheck the box.