Releases: jwplayer/jwplayer-react-native
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/[email protected]
# or
yarn add @jwplayer/[email protected]What'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/[email protected]
# or
yarn add @jwplayer/[email protected]⚙️ 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/[email protected]or
yarn add @jwplayer/[email protected]⚠️ 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
v1.1.0
1.1.0
This release better handles support for the new architecture which is enabled by default in React-Native.
What's Changed
- [BUG] Take the quite call out of player constructor by @Jmilham21 in #111
- [BUG] onAudioTracks and getAudioTracks not working by @Jmilham21 in #112
- Added .description so onAdEvent returns a string by @edougher in #119
- Upgrade to ios 4.21.2 by @Jmilham21 in #120
- Use number representation of ad event type and client. by @hunyoboy in #125
- Gh 101 implement set playlist item callback by @normtronics in #128
- [Android] Sync lifecycle of view with player by @Jmilham21 in #133
- Resolve conflicts in new arch PR by @Jmilham21 in #134
- Release 1.1.0 by @Jmilham21 in #135
New Contributors
- @hunyoboy made their first contribution in #125
- @normtronics made their first contribution in #128
Full Changelog: v1.0.3...v1.1.0
v1.0.3
What's Changed
- [BUG] PiP not working on iOS by @Jmilham21 in #85
- Add playerInModal to type def for JwConfig by @Jmilham21 in #83
- upgrade Android SDK to 4.18.4 by @Jmilham21 in #86
- [BUG] Error and warning standardization by @Jmilham21 in #96
- [BUG] App crash when re-entering full screen from a player that was previously sent into PIP mode whilst full screen by @Jmilham21 in #94
- [IMPLEMENT] Expose more captions callbacks and events by @edougher in #99
- [bug]Updates ios setCurrentCaptions to implement correctly by @Sccttt in #100
- [Improvement] Modernize loadPlaylist function with types and logic by @Jmilham21 in #98
- [BUG] iOS build failure with JWPlayerKit 4.20.0 by @Jmilham21 in #91
- [BUG] app crashes when attempting to play a second video while another is playing by @Jmilham21 in #88
- upgrade to JWP iOS 4.21.0 and IMA 3.22.1 by @Jmilham21 in #105
- [BUG] Crash when setting volume on android by @Jmilham21 in #104
- add in required override for JWPlayerDelegate by @Jmilham21 in #103
- implement JWP ios 4.21.1 by @Jmilham21 in #107
- [BUG] Previous video gets played on the Chromecast device by @Jmilham21 in #87
- Release 1.0.3 by @Jmilham21 in #108
New Contributors
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- chore: badge-maker as dev dep by @chriszs in #38
- update service signature in manifest by @Jmilham21 in #40
- Implement onLoaded event for both platforms by @Jmilham21 in #35
- feat: shrink bundle by replacing lodash with lodash.isequalwith by @chriszs in #42
- Fix unable to run on iOS simulator with ads turned on #50 by @dominictobias in #51
- fix: explicitly convert iOS volume to double by @chriszs in #46
- fix: prevent iOS crash when Google Cast is not enabled and React Native's new architecture is by @chriszs in #61
- Fix/fullscreen implementation for modals fix by @Jmilham21 in #58
- Implement PiP receiver. Refactor Example to better implement PiP. Fix view display issue in PiP by @Jmilham21 in #66
- Update templates with disclaimer to create internal ticket by @Jmilham21 in #69
- Upgrade: JWP Android SDK version by @Jmilham21 in #68
- Update bug_report.md by @kcorneli201 in #72
- Update question.md by @kcorneli201 in #75
- Update implement.md by @kcorneli201 in #74
- Update feature_request.md by @kcorneli201 in #73
- [Release] 1.0.2 by @Jmilham21 in #81
New Contributors
- @dominictobias made their first contribution in #51
Full Changelog: v1.0.1...v1.0.2