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

Plugin crashes on iOS 13 #157

Open
yoojene opened this issue Aug 29, 2019 · 12 comments
Open

Plugin crashes on iOS 13 #157

yoojene opened this issue Aug 29, 2019 · 12 comments

Comments

@yoojene
Copy link

yoojene commented Aug 29, 2019

After upgrading to iOS 13, the plugin crashes the app as soon as the MusicControls.create({.. is called.

This happens on device and in the simulator

2019-08-27 11:55:58.144956+0100 App - Test[37550:871750] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unsupported action method signature. Must return MPRemoteCommandHandlerStatus or take a completion handler as the second argument.'
*** First throw call stack:
(
	0   CoreFoundation                      0x000000010c30bb6e __exceptionPreprocess + 350
	1   libobjc.A.dylib                     0x000000010bc7bf57 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010c30b8e8 +[NSException raise:format:arguments:] + 88
	3   Foundation                          0x000000010adbac29 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
	4   MediaPlayer                         0x0000000109e77ad4 -[MPRemoteCommand addTarget:action:] + 1154
	5   Pfizeryanınızda - Test            0x0000000107ee5a0a -[MusicControls registerMusicControlsEventListener] + 394
	6   Pfizeryanınızda - Test            0x0000000107ee4087 -[MusicControls create:] + 407
	7   Pfizeryanınızda - Test            0x0000000107ff4f84 -[CDVCommandQueue execute:] + 900
	8   Pfizeryanınızda - Test            0x0000000107eb90ef -[CDVWKWebViewEngine handleCordovaMessage:] + 207
	9   Pfizeryanınızda - Test            0x0000000107eb8f6b -[CDVWKWebViewEngine userContentController:didReceiveScriptMessage:] + 187
	10  Pfizeryanınızda - Test            0x0000000107ebab3e -[CDVWKWeakScriptMessageHandler userContentController:didReceiveScriptMessage:] + 126
	11  WebKit                              0x000000010907f939 _ZN28ScriptMessageHandlerDelegate14didPostMessageERN6WebKit12WebPageProxyERKNS0_13FrameInfoDataERN7WebCore21SerializedScriptValueE + 217
	12  WebKit                              0x00000001091fa7a0 _ZN6WebKit29WebUserContentControllerProxy14didPostMessageERN3IPC10ConnectionEyRKNS_13FrameInfoDataEyRKNS1_13DataReferenceE + 168
	13  WebKit                              0x00000001093fc5fd _ZN3IPC13handleMessageIN8Messages29WebUserContentControllerProxy14DidPostMessageEN6WebKit29WebUserContentControllerProxyEMS5_FvRNS_10ConnectionEyRKNS4_13FrameInfoDataEyRKNS_13DataReferenceEEEEvS7_RNS_7DecoderEPT0_T1_ + 116
	14  WebKit                              0x0000000108f0fa3e _ZN3IPC18MessageReceiverMap15dispatchMessageERNS_10ConnectionERNS_7DecoderE + 114
	15  WebKit                              0x000000010914506c _ZN6WebKit15WebProcessProxy17didReceiveMessageERN3IPC10ConnectionERNS1_7DecoderE + 24
	16  WebKit                              0x0000000108efafd8 _ZN3IPC10Connection15dispatchMessageENSt3__110unique_ptrINS_7DecoderENS1_14default_deleteIS3_EEEE + 108
	17  WebKit                              0x0000000108efdaee _ZN3IPC10Connection24dispatchIncomingMessagesEv + 586
	18  JavaScriptCore                      0x000000011dae29b4 _ZN3WTF7RunLoop11performWorkEv + 228
	19  JavaScriptCore                      0x000000011dae2c42 _ZN3WTF7RunLoop11performWorkEPv + 34
	20  CoreFoundation                      0x000000010c26f371 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
	21  CoreFoundation                      0x000000010c26f301 __CFRunLoopDoSource0 + 81
	22  CoreFoundation                      0x000000010c26ead4 __CFRunLoopDoSources0 + 180
	23  CoreFoundation                      0x000000010c2697ef __CFRunLoopRun + 1263
	24  CoreFoundation                      0x000000010c268fd6 CFRunLoopRunSpecific + 438
	25  GraphicsServices                    0x00000001115c29f8 GSEventRunModal + 65
	26  UIKitCore                           0x000000011b9f4722 UIApplicationMain + 1621
	27  Pfizeryanınızda - Test            0x0000000107e6d141 main + 65
	28  libdyld.dylib                       0x000000010d6206ad start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
@fdambrosio
Copy link

this is very important!

@NecroMan
Copy link

Any news? Bug still present.

@maunik318
Copy link

I'm also facing this issue.
It's working on iOS 12.*

@pedrofurtado
Copy link

@homerours Any news? in iOS 13 does not work anymore 😢

@MarcelvanGastel
Copy link

@homerours Any news? in iOS 13 does not work anymore 😢

https://github.com/homerours/cordova-music-controls-plugin/pull/158/files/90e3fe8838c3151bd8e51901079eb34740ec87c9

This fixed it for me

@tbergeron
Copy link

Does this plugin work for anyone AT ALL?
I mean is it possible to have this fully working as intended?
I've been using it for over a year on Android with no issues but never worked on iOS no matter the webview engine I use, etc...

@jb280
Copy link

jb280 commented Oct 11, 2019

Does this plugin work for anyone AT ALL?
I mean is it possible to have this fully working as intended?
I've been using it for over a year on Android with no issues but never worked on iOS no matter the > webview engine I use, etc...

It has worked for me on both iOS and Android for over a year. The store/shipping builds still seem to work on iOS 13. However, I can't build a new working app with Xcode 11, or the Beta Xcode 13.2. I tried MarcelvanGastel's modifications twice, but that seems to cause build issues on my Ionic 3 app:

(node:22770) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'toLowerCase' of undefined

@NecroMan
Copy link

@homerours Any news? in iOS 13 does not work anymore 😢

https://github.com/homerours/cordova-music-controls-plugin/pull/158/files/90e3fe8838c3151bd8e51901079eb34740ec87c9

This fixed it for me

Still crash for me :(

@yoojene
Copy link
Author

yoojene commented Oct 14, 2019

Made some updates to the PR, latest commits work for me - tested in iOS 13.1.2

@jb280
Copy link

jb280 commented Oct 16, 2019

Made some updates to the PR, latest commits work for me - tested in iOS 13.1.2

I fixed my build issue. The audio does start playing..then I get: Playing stream with AVPlayer & default rate
*** Assertion failure in -[MPSkipIntervalCommand addTarget:action:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/MediaPlayer/MobileMusicPlayer-4017.101.15/SDK/MPRemoteCommand.m:134

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unsupported action method signature. Must return MPRemoteCommandHandlerStatus or take a completion handler as the second argument.'

Did you modify other routines other than remoteEvent, playEvent, pauseEvent, nextTrackEvent prevTrackEvent returning MPRemoteCommandHandlerStatusSuccess?

Update I did get this to work if I comment out
// hasSkipForward: true, // show skip forward button, optional, default: false
// hasSkipBackward: true, // show skip backward button, optional, default: false
This allows the audio to play, but I no longer have the skip buttons on the lock screen

I tried updating skipForwardEvent() and skipBackwardEvent() to be of type and return MPRemoteCommandHandlerStatus, but that didn't correct the exception if I set hasSkipForward /hasSkipForward to true

@RomainDev25
Copy link

RomainDev25 commented Oct 25, 2019

Hello this issue is fixed in this repo : https://github.com/ghenry22/cordova-music-controls-plugin

cordova plugin remove cordova-plugin-music-controls
cordova plugin add https://github.com/ghenry22/cordova-music-controls-plugin --save

@jb280
Copy link

jb280 commented Oct 27, 2019

Hello this issue is fixed in this repo : https://github.com/ghenry22/cordova-music-controls-plugin

cordova plugin remove cordova-plugin-music-controls
cordova plugin add https://github.com/ghenry22/cordova-music-controls-plugin --save

Thank you!! This has the lock screen skip-controls enable now when I set them to be true! Everything seems to work in my app as before, as it did on the previous version of iOS!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants