Our VoIP app already implements CallKit and Siri. So, within the iPhone, we can start calls using Siri. These are prerequisites for the CarPlay integration.
Our deployment target is iOS 14, so to integrate CarPlay, the implementation of scenes is a requirement. However, our app should remain a single-window app. So, I've implemented scenes adding a single main scene.
When I tap on my app in the CarPlay Simulator, it opens a blank window. Then, it crashes with the error: "Application does not implement CarPlay template application lifecycle methods in its scene delegate."
All the third-party VoIP apps I've tried, instead of opening a window, ask you through Siri who you would like to call. So, it seems to be possible to avoid implementing a CarPlay template and just activate Siri. How can I obtain this behavior?
Hi, your app needs to implement the CPTemplateApplicationSceneDelegate
methods. When your app receives a CarPlay scene, it should present a root template - usually a tab bar template or a list template.
The legacy VOIP apps you tried are likely using a Siri API that launches straight to Siri when the app is opened. This API has been deprecated, and modern communications apps need to present templates.
Please see https://developer.apple.com/carplay/ for lots of resources on developing with templates, in particular the application guide: https://developer.apple.com/carplay/documentation/CarPlay-App-Programming-Guide.pdf