Expand Minimize Picture-in-picture Power Device Status Voice Recognition Skip Back Skip Forward Minus Plus Play Search
Internet Explorer alert
This browser is not recommended for use with smartdevicelink.com, and may not function properly. Upgrade to a different browser to guarantee support of all features.
close alert
To Top Created with Sketch. To Top
To Bottom Created with Sketch. To Bottom
iOS Guides
Connecting to an Infotainment System

Connecting to an Infotainment System

In order to view your SDL app, you must connect your device to a head unit that supports SDL Core. If you do not have access to a head unit, we recommend using the Manticore web-based emulator for testing how your SDL app reacts to real-world vehicle events, on-screen interactions and voice recognition.

You will have to configure different connection types based on whether you are connecting to a head unit or an emulator. When connecting to a head unit, you must configure an iAP connection. Likewise, when connecting to an emulator, a TCP connection must be configured.

Connecting to an Emulator

To connect to an emulator such as Manticore or a local Ubuntu SDL Core-based emulator you must implement a TCP connection when configuring your SDL app.

Getting the IP Address and Port

Generic SDL Core

To connect to a virtual machine running the Ubuntu SDL Core-based emulator, you will use the IP address of the Ubuntu OS and 12345 for the port. You may have to enable port forwarding on your virtual machine if you want to connect using a real device instead of a simulated device.


Once you launch an instance of Manticore, you will be given an IP address and port number that you can use to configure your TCP connection.

Setting the IP Address and Port

SDLLifecycleConfiguration *lifecycleConfiguration = [SDLLifecycleConfiguration debugConfigurationWithAppName:@"<#App Name#>" fullAppId:@"<#App Id#>" ipAddress:@"<#IP Address#>" port:<#Port#>];
let lifecycleConfiguration = SDLLifecycleConfiguration(appName: "<#App Name#>", fullAppId: "<#App Id#>", ipAddress: "<#IP Address#>", port: <#Port#>)

Connecting to a Head Unit

To connect your device directly to a production vehicle head unit or Test Development Kit (TDK), make sure to implement an iAP connection. Then connect the device using a USB cord or, if the head unit supports it, Bluetooth.

SDLLifecycleConfiguration *lifecycleConfiguration = [SDLLifecycleConfiguration defaultConfigurationWithAppName:@"<#App Name#>" fullAppId:@"<#App Id#>"];
let lifecycleConfiguration = SDLLifecycleConfiguration(appName:"<#App Name#>", fullAppId: "<#App Id#>")

Viewing Realtime Logs

If you are testing with a vehicle head unit or TDK and wish to see realtime debug logs in the Xcode console, you should use wireless debugging.

Running the SDL App

Build and run the project in Xcode, targeting the device or simulator that you want to test your app with. Your app should compile and launch on your device of choosing. If your connection configuration is setup correctly, you should see your SDL app icon appear on the HMI screen:

Generic - SDL Apps Tab

To open your app, click on your app's icon in the HMI.

Generic - SDL App Main Screen

This is the main screen of your SDL app. If you get to this point, your SDL app is working.


If you are having issues with connecting to an emulator or head unit, please see our troubleshooting tips in the Example Apps section of the guide.

View on GitHub.com
Previous Section Next Section