iOS CallKit not working
iOS CallKit not working
iOS CallKit only works on a real device, not the simulator. The CallKit framework is not supported in the iOS Simulator.Confirm your build target is set to a physical iOS device before running your app.
Call screen not showing on Android lock screen
Call screen not showing on Android lock screen
There are a few things to check:You can also check whether the permission is already granted:
- Ensure
isShowFullLockedScreenis set totruein yourAndroidParams:
- On Android 14+, you must explicitly request the full-screen intent permission before showing the call screen:
- Ensure your
MainActivityusessingleInstancelaunch mode inAndroidManifest.xml:
Without
singleInstance, the call screen may not appear correctly over the lock screen.Ringtone not playing on Android
Ringtone not playing on Android
Custom ringtones must be placed in the correct directory and referenced by name without the file extension.
- Place your MP3 file at:
- Set
ringtonePathto the filename without the.mp3extension:
- To use the device’s default system ringtone instead, set:
Notification not shown on Android 13+
Notification not shown on Android 13+
Android 13 (API 33) requires the Alternatively, you can use
POST_NOTIFICATIONS runtime permission. You must call requestNotificationPermission before calling showCallkitIncoming:requestPermission from the firebase_messaging package if you are already using Firebase Cloud Messaging.App crashes when receiving VoIP push (iOS)
App crashes when receiving VoIP push (iOS)
When using PushKit, you must call
completion() at the end of the pushRegistry(_:didReceiveIncomingPushWith:for:completion:) delegate method. Failing to do so causes iOS to terminate the app.No audio after accepting call (WebRTC)
No audio after accepting call (WebRTC)
When using WebRTC, you need to manually manage the Also ensure that in
RTCAudioSession by enabling and disabling it in response to the CallKit audio session callbacks.In your AppDelegate.swift, implement the didActivateAudioSession and didDeactivateAudioSession callbacks provided by CallkitIncomingAppDelegate:application(_:didFinishLaunchingWithOptions:) you configure the audio session for manual use:See the iOS setup guide and the AppDelegate.swift example for the full configuration.
ProGuard stripping classes on Android
ProGuard stripping classes on Android
If you use ProGuard or R8 for release builds, plugin classes may be obfuscated or removed, causing runtime crashes.Add the following rule to your This prevents ProGuard from removing or renaming any class in the plugin package.
proguard-rules.pro file:Build error on Android: Java version
Build error on Android: Java version
Starting from v2.5.0, the plugin requires Java SDK 17 or higher. If you see a build error related to JVM toolchain or Java version, update your Also ensure your local Java installation (used by Gradle) is version 17+. You can verify with:
build.gradle:Missing call notification for iOS
Missing call notification for iOS
Missed call notifications (and showing notifications while the app is in the foreground) require And implement the corresponding delegate methods:
UNUserNotificationCenter delegate setup in AppDelegate.swift.Ensure you have the following in application(_:didFinishLaunchingWithOptions:):See the iOS setup guide and the AppDelegate.swift example for full configuration.
activeCalls() returns empty on iOS
activeCalls() returns empty on iOS
activeCalls() behaves differently per platform:- iOS: Returns the list of currently active calls managed by CallKit (only their
idfield is populated). If no call is currently active in CallKit — for example, after a call has ended — the list will be empty. - Android: Returns only the last call, regardless of its current state.
Do not rely on
activeCalls() to retrieve full call metadata on iOS. Store call parameters in your own app state when the call is initiated.