iOS13 + tvOS13 error: MPMoviePlayerController is no longer available

Apple no longer supports MPMoviePlayerController in iOS13 + tvOS13 causing the following error when running on xcode11:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'MPMoviePlayerController is no longer available. Use AVPlayerViewController in AVKit.'

I believe the error is associted with the cocos2dx UIVideoPlayer classes refered in the wrapper files: UIVideoPlayer-iOS.mm, UIVideoPlayer-mac.mm and UIVideoPlayer-iOS.h.

I know that @minggo from cocos 2dx dev team is working on this issue: https://github.com/cocos2d/cocos2d-x/pull/20085

  1. Do you know when will a version fixing this bug will be released?
  2. (kind of stupid question) is it ok just to replace the UIVideoPlayer files (UIVideoPlayer-iOS.mm, UIVideoPlayer-mac.mm and UIVideoPlayer-iOS.h) instead of migrating the entire project?

Thanks

It looks like the pull request is merged so just have to pull latest cocos2d-x from github and it should be fine.

Is it ‘safe’ to do so or should I wait for the next version release?

Well, you should ask the devs. In theory, it’s better to wait for the next release.

@FelixFox it is more secure just modify the codes according to the PR as the file may has other modification compared to your engine version. We are considering releasing a version recently but it may take weeks.

I think I’ll better wait for the next stable release.
Thanks

Hi @zhangxm,
Are you planning to release an upgrade to V.3 include the MPMoviePlayerController fix? or from now on you are only planning to maintain V.4?
Best regards,

We plan to release a new v3 version in weeks.

Hello @zhangxm,
Are you still going to release a 3.17.3 version?
Best regards,

@FelixFox sorry about that, we are busy for cocos creator 3d these days, we may have time to release 3.17.3 after supporting metal/vulkan on cocos creator 3d. It may take months.

Hello @zhangxm,

Since 3.17.3 is going to take a while, and I really need the MPMoviePlayerController fix. I tried to install the latest (non stable) version of 3.17.x … and I messed out.
This is what I did:
1- Use git to install cocos 2dx
2- Changed to branch v3
3- created a new project

The problem is that when I build the HelloWorld I get dozens of missing file errors, mostly related with openssl.

Do you happen to know what was my mistake?

Thanks
Felix

I think you need to run download-deps.py to download 3rd libs.