es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

iOS CarPlay muestra el error “No se puede conectar”

Estoy desarrollando una aplicación para iOS que incluye el uso de CarPlay. He agregado los derechos de CarPlay otorgados por Apple a mi aplicación y cuando la inicio, aparece también en el simulador de CarPlay. Sin embargo, al ejecutarlo, obtengo la pantalla de error “No se puede conectar a la aplicación”.
He implementado la función de llamada de configuración del delegado de AppDelegate para la conexión, como se indica, y he agregado mi configuración de escena de CarPlay en el info.plist.

AppDelegate

func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        print(connectingSceneSession.role)
        if(connectingSceneSession.role == UISceneSession.Role.carTemplateApplication) {
            let scene =  UISceneConfiguration(name: "CarPlay", sessionRole: connectingSceneSession.role)
            return scene
        } else {
            let scene =  UISceneConfiguration(name: "Configuración predeterminada", sessionRole: connectingSceneSession.role)
            return scene
        }
    }

Info.plist (Una de muchas combinaciones que he intentado)

Imagen

Sin embargo, cuando ejecuto la aplicación, la función configurationForConnecting solo se llama una vez y solo para UIWindowSceneSessionRoleApplication, pero nunca se llama para UISceneSession.Role.carTemplateApplication. Curiosamente, si también abro una pantalla externa en el simulador, obtengo UISceneSession.Role.windowExternalDisplay en la devolución de llamada.

¿Alguien más ha experimentado un problema similar antes?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con la implementación de la devolución de llamada de configuración para la sesión de CarPlay. Aquí hay algunas sugerencias para probar:

    • Asegúrese de que su aplicación esté correctamente firmada con un certificado de desarrollo o distribución que incluya los derechos de CarPlay.
    • Verifique que los derechos de CarPlay se hayan agregado correctamente a su proyecto de Xcode y que la configuración de firma del código esté configurada con el identificador de paquete correcto.
    • Intente agregar la configuración de CarPlay a su archivo info.plist bajo la clave UISceneConfigurations, de esta manera:
    <key>UISceneConfigurations</key>
    <dict>
      <key>CarPlay</key>
      <dict>
        <key>UISceneDelegateClassName</key>
        <string>[Nombre de su clase delegada de escena]</string>
        <key>UISceneConfigurationName</key>
        <string>CarPlay</string>
        <key>UISceneSessionRole</key>
        <string>carTemplateApplication</string>
      </dict>
    </dict>
    

    Asegúrese de reemplazar [Nombre de su clase delegada de escena] con el nombre de su clase de delegado de escena.

    • Verifique que su clase de delegado de escena se haya configurado correctamente para admitir CarPlay, incluyendo la implementación de los métodos necesarios como scene(_:willConnectTo:options:).
    • Si ninguna de las sugerencias anteriores funciona, intente restablecer el simulador o reiniciar Xcode para ver si eso resuelve el problema.

    También es importante tener en cuenta que es posible que necesite usar un dispositivo físico compatible con CarPlay para probar completamente la integración de su aplicación con CarPlay. ¡Esperamos que una de estas sugerencias pueda ayudarlo a resolver el problema y conectar su aplicación a CarPlay con éxito!

Comments are closed.