I think that you can solve it by referring to the following thread.
You can launch another carplay app by using CPTemplateApplicationScene.
https://developer.apple.com/forums/thread/128945
My situation, I implement the following in CarPlaySceneDelegate.
I can launch another CarPlay app using URL scheme like this.
Example code (Launch iOS map or google map in CarPlay):
import CarPlay
class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate {
		...
		var cpTemplateApplicationScene : CPTemplateApplicationScene?
		
		...
		
		// CarPlay connected
		func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) {
				...
				self.cpTemplateApplicationScene = templateApplicationScene
				...
				// Call the following by some kind of trigger.
				self.launchmap(<desination latitude>, <desination longtitude>, carplay: true)
				...
		}
		// Lanch map app function
		func launchmap(latitude: String, longtitude: String, carplay : Bool = true) {
				let urlString: String!
				if UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!) {
						urlString = "comgooglemaps://?&daddr=\(latitude),\(longtitude)&directionsmode=driving"
				} else {
						urlString = "http://maps.apple.com/?daddr=\(latitude),\(longtitude)&dirflg=d"
				}
				if let url = URL(string: urlString) {
						if (carplay) {
								self.cpTemplateApplicationScene?.open(url, options: nil, completionHandler: { (Void) in print("completed!")})
						} else {
								UIApplication.shared.open(url)
						}
				}
		}
		...
}
Topic:
Programming Languages
SubTopic:
Swift
Tags: