How to test iPhone app and CarPlay together?

I have developed a mobile app using SwiftUI. Now I am in the process of building a CarPlay application. I know how to test the CarPlay app using a simulator but here is my confusion,

  • Testing the iPhone app and CarPlay together (few scenarios like user login / logout, location enabled /disabled in the mobile app)

Kindly help me validate the above scenarios as I am getting black screen on iPhone whenever the CarPlay is launched. Below is the code snippet,

func application(_ application: UIApplication,
                     configurationForConnecting connectingSceneSession: UISceneSession,
                     options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        if connectingSceneSession.role == .carTemplateApplication {
            let sceneConfiguration = UISceneConfiguration(name: "CarPlay Scene", sessionRole: connectingSceneSession.role)
            sceneConfiguration.delegateClass = CarPlaySceneDelegate.self
            return sceneConfiguration
        }
        
        // Configuration for other types of scenes
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

struct MyApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
                .preferredColorScheme(.light)
        }
    }
    
}

Info.plist

<key>UIApplicationSceneManifest</key>
        <dict>
            <key>UIApplicationSupportsMultipleScenes</key>
            <true/>
            <key>UISceneConfigurations</key>
            <dict>
                <key>CPTemplateApplicationSceneSessionRoleApplication</key>
                <array>
                    <dict>
                        <key>UISceneConfigurationName</key>
                        <string>CarPlay Scene</string>
                        <key>UISceneDelegateClassName</key>
                        <string>$(PRODUCT_MODULE_NAME).CarPlaySceneDelegate</string>
                    </dict>
                </array>
            </dict>
        </dict>

The black screen bug may be a symptom of the Xcode CarPlay simulator. You can try using the standalone simulator to test the above cases at it should behave correctly.

Here is the WWDC video where we introduced it.

Rico


WWDR | DTS | Software Engineer

How to test iPhone app and CarPlay together?
 
 
Q