Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] iOS build failure with JWPlayerKit 4.20.0 #89

Open
chriszs opened this issue Oct 9, 2024 · 7 comments
Open

[BUG] iOS build failure with JWPlayerKit 4.20.0 #89

chriszs opened this issue Oct 9, 2024 · 7 comments
Assignees
Labels
bug Something isn't working Groomed JWP team has reviewed the ticket and deemed it necessary in-progress Actively being worked on by the asignee

Comments

@chriszs
Copy link
Contributor

chriszs commented Oct 9, 2024

Describe the bug
When building an app with the latest version of this package on EAS I got the following build failure:

❌  (../../node_modules/@jwplayer/jwplayer-react-native/ios/RNJWPlayer/RNJWPlayerViewController.swift:266:19)

  264 |     // MARK: - JWPlayer State Delegate
  265 | 
> 266 |     override func jwplayerContentIsBuffering(_ player:JWPlayer) {
      |                   ^ method does not override any method from its superclass
  267 |         super.jwplayerContentIsBuffering(player)
  268 |         parentView?.onBuffer?([:])
  269 |     }

❌  (../../node_modules/@jwplayer/jwplayer-react-native/ios/RNJWPlayer/RNJWPlayerViewController.swift:267:15)

  265 | 
  266 |     override func jwplayerContentIsBuffering(_ player:JWPlayer) {
> 267 |         super.jwplayerContentIsBuffering(player)
      |               ^ value of type 'JWPlayerViewController' has no member 'jwplayerContentIsBuffering'
  268 |         parentView?.onBuffer?([:])
  269 |     }
  270 | 

I couldn't reproduce this locally until I upgraded the JWPlayerKit pod to the latest version, which is 4.20.0. Locally I only get the method does not override any method from its superclass error, not the has no member error, but the build does fail with that pod version regardless.

Steps to reproduce the behavior:

  1. cd ios/
  2. pod update JWPlayerKit
  3. cd ..
  4. npm run ios

Expected behavior
No build failure.

@chriszs chriszs added the needs-grooming Has not been reviewed by codeowners for scope/validation label Oct 9, 2024
@chriszs chriszs changed the title [BUG] iOS build failure with JWPlayerKit 4.20 [BUG] iOS build failure with JWPlayerKit 4.20.0 Oct 9, 2024
@chriszs
Copy link
Contributor Author

chriszs commented Oct 9, 2024

Working around this by pegging the version in my Podfile using the following build configuration in my Expo app.config.js:

          extraPods: [
            {
              name: 'JWPlayerKit',
              version: '4.19.2',
            },
          ],

@Jmilham21
Copy link
Collaborator

Hey @chriszs, so the native iOS version 4.20.0 went out in a non-viable state. We don't advise upgrading to it in your apps, and we are actively working on creating a patch and pushing out the update in a working state. We cannot roll back the pod release, however, so your workaround and our suggestion would be to skip 4.20.0 and only upgrade to a verified version.

With the 4.20.+ release that follows, this repository may need to be changed, but we will make the changes required to support that version when we roll it out. Upgrading the version before the wrapper is upgraded may cause problems and it seems we aren't protecting you with our current configuration.

@AmitaiB would you agree we should be more explicit in our podspec, like the following?
s.dependency 'JWPlayerKit', '4.19.2'

@Jmilham21 Jmilham21 added bug Something isn't working help wanted Extra attention is needed Groomed JWP team has reviewed the ticket and deemed it necessary and removed needs-grooming Has not been reviewed by codeowners for scope/validation labels Oct 9, 2024
@chriszs
Copy link
Contributor Author

chriszs commented Oct 10, 2024

My Podfile.lock would have prevented this, but that gets removed by Expo Prebuild and recreated in CI. I believe this right now would bite anyone who installs this fresh.

@AmitaiB
Copy link
Contributor

AmitaiB commented Oct 10, 2024

Hello @chriszs, everything @Jmilham21 said is accurate, and this use case should certainly specify a specific version rather than a wildcard (those who know what they are doing can always change this).

That said, this is not caused by the instabilities introduced by 4.20.0, most of which are ad-event related, specifically for DAI implementations. Rather, the

  • jwplayerContentIsBuffering(_ player: JWPlayer) API was obviated in 4.2.0 back in 2021 in favor of jwplayer(_ player: JWPlayer, isBufferingWithReason reason: JWBufferReason).
  • It was marked deprecated since 4.17.1, so expect this change in a near version, if not the next one.

@Jmilham21 Jmilham21 self-assigned this Oct 14, 2024
@Jmilham21 Jmilham21 added in-progress Actively being worked on by the asignee and removed help wanted Extra attention is needed labels Oct 14, 2024
@holladortun
Copy link

Hello, can anyone please help on what should be done? We have productions apps that we can push an update for since ios does not build because of the below errors
image

@chriszs
Copy link
Contributor Author

chriszs commented Oct 30, 2024

@holladortun I just pinned the JWPlayerKit native pod until a fix lands. See above for how to do it in an Expo prebuild project.

@holladortun
Copy link

@holladortun I just pinned the JWPlayerKit native pod until a fix lands. See above for how to do it in an Expo prebuild project.

Thank you soo much.

Doing this worked and the app now builds with expo eas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Groomed JWP team has reviewed the ticket and deemed it necessary in-progress Actively being worked on by the asignee
Projects
None yet
Development

No branches or pull requests

4 participants