Releases: jwplayer/jwplayer-react-native
v1.4.1
What's Changed
- Bump JW Android SDK from 4.24.1 to 4.24.2
- Release v1.4.1 by @Jmilham21 in #219
Full Changelog: v1.4.0...v1.4.1
v1.4.0
v1.4.0
Native SDK Upgrades
- iOS: JWPlayerKit 4.25.1 → 4.25.2
- Android: JW Player SDK 4.24.0 → 4.24.1
Bug Fixes
- fix(ios): replace force-unwrap with safe cast in resolveNextPlaylistItem by @Jmilham21 in #215
- fix: resolve onBeforeNextPlaylistItem crash and ad issues (#211) by @Jmilham21 in #214
Native SDK Changes (included via version bump)
iOS 4.25.2
- Improved threading safety for event callbacks
- Fixed ad container layout in scrollable contexts
- Fixed caption track selection for DRM content
- Player controls now remain visible while paused
Android 4.24.1
- Fixed ad prerolls not playing on subsequent playlist items when using async playlist callbacks
onTimeevents now fire while a DVR stream is paused- Improved null safety for ad API calls
- Fixed Chromecast caption visibility and restoration
Maintenance
- Reduced npm package size from 151 kB to 91 kB
- Added build-info hooks to the Example app
What's Changed
- fix(ios): replace force-unwrap with safe cast in resolveNextPlaylistItem by @Jmilham21 in #215
- fix: resolve onBeforeNextPlaylistItem crash and ad issues (#211) by @Jmilham21 in #214
- Release v1.4.0 by @Jmilham21 in #217
Full Changelog: v1.3.4...v1.4.0
v1.3.4
What's Changed
Bug Fixes
- fix: Ensure player cleanup runs on main thread to prevent crash on unmount (#206)
- fix: Prevent race conditions during player destruction and enhance error handling (#205)
Dependencies
- Upgrade iOS SDK to JWPlayerKit 4.25.1 (#209)
- See iOS 4.25.1 changelog for native SDK changes
Maintenance
- Exclude AI configuration files from npm package
Full Changelog: v1.3.2...v1.3.4
Note: v1.3.3 was skipped due to a packaging issue.
v1.3.2
Release Notes - v1.3.2
🐛 Bug Fixes
Android: Remove Accidental Command Paste in ImaHelper
Problem: An accidental terminal command was left in the ImaHelper.java source code from v1.3.1, causing compilation errors for projects using Google IMA.
Solution: Removed the errant command line text from the ImaHelper class.
Impact: Android builds with IMA enabled now compile successfully without syntax errors.
📦 Installation
npm install @jwplayer/jwplayer-react-native@1.3.2
# or
yarn add @jwplayer/jwplayer-react-native@1.3.2What's Changed
- Fix bad copy and paste command by @Jmilham21 in a594796
Full Changelog: v1.3.1...v1.3.2
v1.3.1
Release Notes - v1.3.1
🐛 Bug Fixes
Android: Make IMA Dependency Optional (#201)
Problem: After v1.3.0, developers not using Google IMA ads encountered Android build failures requiring core library desugaring even when IMA wasn't being used.
Solution: Implemented Gradle source sets to make the jwplayer-ima dependency truly optional:
- IMA dependencies only included when
RNJWPlayerUseGoogleIMA = true - No desugaring required for non-IMA users
- Graceful degradation: player loads without ads instead of crashing
- Clear warnings when IMA is configured but not enabled
Impact: VAST-only users can now build without IMA dependencies or desugaring requirements.
🔧 Technical Changes
- Split IMA code into separate source sets (
src/ima/andsrc/noima/) - Added support for both
"client"and"adClient"property names in advertising configs - Improved null-safety and validation in advertising configuration
- Enhanced developer experience with clear warning messages
📦 Installation
npm install @jwplayer/jwplayer-react-native@1.3.1
# or
yarn add @jwplayer/jwplayer-react-native@1.3.1⚙️ Configuration
For IMA users (no change):
// app/build.gradle
buildscript {
ext {
RNJWPlayerUseGoogleIMA = true
}
}For VAST-only users (now works without desugaring):
// app/build.gradle
buildscript {
ext {
RNJWPlayerUseGoogleIMA = false // or omit entirely
}
}What's Changed
- Fix Android build failure for non-IMA users (#201) by @Jmilham21 in #203
- [Release] 1.3.1 by @Jmilham21 in #204
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Release 1.3.0
🎉 What's New
Native SDK Upgrades
iOS SDK 4.25.0
- Chromecast Improvements: Fixed embedded captions not displaying on Chromecast devices
- Playback Fixes:
- Fixed video not completing after post-roll ad
- Fixed video pausing after scrubbing during playback
- UI Improvements:
- Fixed Next Up card showing wrong video
- Fixed toolbar transparency issue with
UIDesignRequiresCompatibilityon iOS 26 - Fixed iOS 26 black screen in
JWPlayerViewafter ad break
- Stability: Prevented
AVPlayerItemcrash when adding outputs that are already attached
See full details: iOS 4.25.0 Changelog
Android SDK 4.24.0
- Ad SDK Upgrade: Upgraded Google IMA SDK to version 3.37.0
⚠️ Important: Core library desugaring must be enabled when adding Google IMA client dependencies⚠️ Breaking: Requires setting compiling and target SDK versions when adding the SDK
- Chromecast Improvements: Improved support for embedded captions in HLS streams when casting to Chromecast
- Stability: Fixed Picture-in-Picture (PiP) crash that could occur when PiP was triggered multiple times in quick succession
See full details: Android 4.24.0 Changelog
React Native Wrapper Improvements
- Fixed: License key handling in TypeScript example (#199)
- Fixed: Player recreation with configuration updates (#194 - fixes issues #192, #188)
- Enhanced: Player item handling in YouTube example component (#191)
- Improved: Added bottom padding for Android navigation (#190)
- Documentation: Updated JSON parsed configs documentation (#187)
- Documentation: Updated README with rebranding and latest information (#196)
- Native SDK: Implemented Android 4.24.0 (#197)
- Native SDK: Implemented iOS 4.25.0 (#198)
📦 Installation
npm install @jwplayer/jwplayer-react-native@1.3.0or
yarn add @jwplayer/jwplayer-react-native@1.3.0⚠️ Breaking Changes
Android
When upgrading to Android SDK 4.24.0, you must:
- Set the compiling and target SDK versions in your app configuration
- Enable core library desugaring if using Google IMA client dependencies
🐛 Bug Fixes
- Fixed license key not being properly passed in TypeScript example
- Fixed player recreation issues when updating configurations dynamically
- Fixed multiple Chromecast-related playback issues (via native SDK updates)
- Fixed PiP stability issues on Android (via native SDK update)
- Fixed various iOS 26 compatibility issues (via native SDK update)
📚 Documentation
- Enhanced documentation for JSON configuration parsing
- Updated README with current setup instructions
- Improved example app implementations
🙏 Contributors
Thank you to all contributors who helped make this release possible!
What's Changed
- Upgrade Example to 1.2.0 by @Jmilham21 in #185
- feat: add bottom padding for Android navigation by @Jmilham21 in #190
- Fix for issue 192 and 188 recreate with configs by @Jmilham21 in #194
- feat: enhance player item handling in YoutubeExample component by @Jmilham21 in #191
- Upgrade Documentation about JSON parsed configs by @Jmilham21 in #187
- Update README.md (rebranding) by @kcorneli201 in #196
- Implement Android 4.24.0 by @Jmilham21 in #197
- Implement iOS 4.25.0 by @Jmilham21 in #198
- fix: Send proper license key in typescript example by @Jmilham21 in #199
- [Release] 1.3.0 by @Jmilham21 in #200
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
- Release 1.1.3 by @Jmilham21 in #178
- Upgrade Android 4.21.1 by @Jmilham21 in #182
- Upgrade iOS 4.23.2 by @Jmilham21 in #181
- feat: add recreatePlayerWithConfig method for dynamic player configuration on iOS by @Jmilham21 in #180
- Release 1.2.0 by @Jmilham21 in #184
Full Changelog: v1.1.3...v1.2.0
v1.1.3
What's Changed
- Implement userInfo prop for custom data while casting by @Jmilham21 in #152
- [Improvement] Modernize some TS declarations and add export by @Jmilham21 in #164
- Fix import statement (lowercase to uppercase) for JWPlayerKit header, issue #171 by @ggppdk in #172
- Handle both mediaId and mediaid case variations in playlist items by @edougher in #167
- Task/upgrade ios 4.23.1 by @Jmilham21 in #176
- Enhance player UI/UX with loadPlaylist quirks by @Jmilham21 in #175
- Update README.md by @Jmilham21 in #150
- Add check for in PiP before loading new content on iOS by @Jmilham21 in #177
New Contributors
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- Update AppDelegate.swift by @edougher in #156
- Upgrade Android SDK version by @Jmilham21 in #161
- See Native release notes here
- Release 1.1.2 by @Jmilham21 in #162
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
- Upgrade Example app to React-Native 0.78.1 by @octavianduminicaconnatix in #140
- Fix loadPlaylist and fully expose loadPlaylistWithUrl by @Jmilham21 in #141
- Update README.md by @kcorneli201 in #147
- [Task] Upgrade Android to JWP SDK 4.20.0 by @Jmilham21 in #149
- Upgrade to iOS 4.22.0 by @Jmilham21 in #151
- Release 1.1.1 by @Jmilham21 in #154
New Contributors
- @octavianduminicaconnatix made their first contribution in #140
Full Changelog: v1.1.0...v1.1.1