Problemas conocidos de UWP en el Programa para desarrolladores de XboxKnown issues with UWP on Xbox Developer Program

En este tema se describen los problemas conocidos de UWP en el Programa para desarrolladores de Xbox One.This topic describes known issues with the UWP on Xbox One Developer Program. Para obtener más información acerca de este programa, consulta UWP en Xbox.For more information about this program, see UWP on Xbox.

[Si llegó aquí desde un vínculo en un tema de referencia de API y busca información sobre la API de la familia de dispositivos universales, consulte características de UWP no admitidas en Xbox.][If you came here from a link in an API reference topic, and are looking for Universal device family API information, see UWP features not supported on Xbox.]

La siguiente lista destaca algunos problemas conocidos que puedes encontrarte, aunque esta no es una lista exhaustiva.The following list highlights some known issues that you may encounter, but this list is not exhaustive.

Queremos recibir tus comentarios, así que notifica todos los problemas que encuentres en el foro de desarrollo de aplicaciones para la Plataforma universal de Windows.We want to get your feedback, so please report any issues that you find on the Developing Universal Windows Platform apps forum.

Si sigues teniendo problemas, lee la información de este tema, consulta las preguntas más frecuentes y usa los foros para pedir ayuda.If you get stuck, read the information in this topic, see Frequently asked questions, and use the forums to ask for help.

La implementación desde VS sufre un error si el control parental está activadoDeploying from VS fails with Parental Controls turned on

Se producirá un error al iniciar la aplicación desde VS si la consola tiene activado el control parental en la configuración.Launching your app from VS will fail if the console has Parental Controls turned on in Settings.

Para solucionar este problema, deshabilita temporalmente el control parental o:To work around this issue, either temporarily disable Parental Controls, or:

  1. Implementa tu aplicación en la consola con el control parental desactivado.Deploy your app to the console with Parental Controls turned off.
  2. Activa el control parental.Turn on Parental Controls.
  3. Inicia la aplicación desde la consola.Launch your app from the console.
  4. Escribe un PIN o una contraseña para permitir que la aplicación se inicie.Enter a PIN or password to allow the app to launch.
  5. La aplicación se iniciará.App will launch.
  6. Cierre la aplicación.Close the app.
  7. Inicia desde VS con F5 y la aplicación se iniciará sin pedir confirmación.Launch from VS using F5, and the app will launch with no prompting.

En este punto, el permiso es permanente hasta que se cierra la sesión del usuario, aunque se desinstale y vuelva a instalar la aplicación.At this point the permission is sticky until you sign the user out, even if you uninstall and reinstall the app.

Existe otro tipo de excepción que solo está disponible para cuentas de menores.There is another type of exemption that is only available for child accounts. Una cuenta de un menor requiere que uno de los progenitores inicie sesión para conceder permiso, pero, cuando lo hace, el progenitor tiene la opción de elegir Siempre y permitir que el menor inicie la aplicación.A child account requires a parent to sign in to grant permission, but when they do, the parent has the option of choosing to Always allow the child to launch the app. Esa excepción se almacena en la nube y se conservará, incluso si el menor cierra la sesión y vuelve a iniciarla.That exemption is stored in the cloud and will persist even if the child signs out and signs back in.

StorageFile. CopyAsync no puede copiar archivos cifrados en un destino sin cifrarStorageFile.CopyAsync fails to copy encrypted files to unencrypted destination

Cuando StorageFile. CopyAsync se usa para copiar un archivo cifrado a un destino que no está cifrado, se producirá un error en la llamada con la siguiente excepción:When StorageFile.CopyAsync is used to copy a file that is encrypted to a destination that is not encrypted, the call will fail with the following exception:

System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Esto puede afectar a los desarrolladores de Xbox que desean copiar archivos que se implementan como parte de su paquete de aplicación en otra ubicación.This can affect Xbox developers who want to copy files that are deployed as part of their app package to another location. El motivo es que el contenido del paquete se cifra en una consola Xbox en modo de venta directa, pero no en el modo de desarrollo.The reason for this is that the package contents are encrypted on an Xbox in retail mode, but not in Dev Mode. Como resultado, es posible que la aplicación parezca que funciona como se espera durante el desarrollo y las pruebas, pero después se produce un error una vez que se ha publicado y después se ha instalado en una consola Xbox comercial.As a result, the app may appear to work as expected during development and testing, but then fail once it has been published and then installed to a retail Xbox.

Puertos de red bloqueados en Xbox OneBlocked networking ports on Xbox One

Las aplicaciones para la Plataforma universal de Windows (UWP) en dispositivos Xbox One tienen restringido el enlace a los puertos del intervalo [57344, 65535], inclusive.Universal Windows Platform (UWP) apps on Xbox One devices are restricted from binding to ports in the range [57344, 65535], inclusive. Aunque el enlace a estos puertos puede parecer correcto en tiempo de ejecución, el tráfico de red puede eliminarse de forma silenciosa antes de llegar a la aplicación.Although binding to these ports might appear to succeed at run-time, network traffic can be silently dropped before reaching your app. La aplicación se debe enlazar al puerto 0 siempre que sea posible, lo que permite al sistema seleccionar el puerto local.Your app should bind to port 0 wherever possible, which allows the system to select the local port. Si necesitas usar un puerto específico, el número de puerto debe estar en el intervalo [1025, 49151], y debes comprobar y evitar conflictos con el registro IANA.If you need to use a specific port, the port number must be in the range [1025, 49151], and you should check and avoid conflicts with the IANA registry. Para obtener más información, consulta Service Name and Transport Protocol Port Number Registry (Nombre de servicio y registro de número de puerto del protocolo de transporte).For more information, see the Service Name and Transport Protocol Port Number Registry.

Windows Runtime cobertura de APIWindows Runtime API coverage

No todas las API de Windows Runtime se admiten en Xbox.Not all Windows Runtime APIs are supported on Xbox. Para ver la lista de las API que sabemos que no funcionan, consulte características de UWP no admitidas en Xbox.For the list of APIs that we know don't work, see UWP features not supported on Xbox. Si encuentras problemas con otras API, notifícalo en los foros.If you find issues with other APIs, please report them on the forums.

Recibirás una advertencia acerca del certificado proporcionado, similar a la siguiente captura de pantalla, porque el certificado de seguridad firmado por la consola Xbox One no se considera un editor de confianza conocido.You will receive a warning about the certificate that was provided, similar to the following screenshot, because the security certificate signed by your Xbox One console is not considered a well-known trusted publisher. Para acceder a Windows Device Portal, haz clic en Continuar a este sitio web.To access the Windows Device Portal, click Continue to this website.

Advertencia de certificado de seguridad de sitio web

ADVERTENCIA de KnownFolders. MediaServerDevices en XboxKnownFolders.MediaServerDevices caveat on Xbox

En el escritorio, los servidores multimedia se "emparejan" con el equipo y el servicio de Asociación de dispositivos realiza un seguimiento constante de cuál de los servidores está en línea actualmente, por lo que una consulta inicial del sistema de archivos puede devolver inmediatamente una lista de los servidores emparejados que están actualmente en línea.On Desktop, media servers are “paired” with the PC, and the Device Association Service is constantly tracking which of the servers are currently on-line, so an initial file system query can immediately return a list of the paired servers that are currently online.

En Xbox, no hay ninguna interfaz de usuario para agregar o quitar servidores, por lo que la consulta de sistema de archivos inicial siempre devolverá un valor vacío.On Xbox, there is no UI to add or remove servers, so the initial file system query will always return empty. Debe crear una consulta y suscribirse al evento ContentsChanged y actualizar la consulta cada vez que reciba una notificación.You must create a query and subscribe to the ContentsChanged event and refresh the query each time you get a notification. Los servidores se incluirán en y la mayoría de ellos se habrán descubierto en 3 segundos.Servers will trickle in and most will have been discovered within 3 seconds.

Código de ejemplo sencillo:Simple example code:

namespace TestDNLA {

    public sealed partial class MainPage : Page {
        public MainPage() {
            this.InitializeComponent();
        }

        private async void FindFiles_Click(object sender, RoutedEventArgs e) {
            try {
                StorageFolder library = KnownFolders.MediaServerDevices;
                var folderQuery = library.CreateFolderQuery();
                folderQuery.ContentsChanged += FolderQuery_ContentsChanged;
                IReadOnlyList<StorageFolder> rootFolders = await folderQuery.GetFoldersAsync();
                if (rootFolders.Count == 0) {
                    Debug.WriteLine("No Folders found");
                } else {
                    Debug.WriteLine("Folders found");
                }
            } catch (Exception ex) {
                Debug.WriteLine("Error: " + ex.Message);
            } finally {
                Debug.WriteLine("Done");
            }
        }

        private async void FolderQuery_ContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args) {
            Debug.WriteLine("Folder added " + sender.Folder.Name);
            IReadOnlyList<StorageFolder> topLevelFolders = await sender.Folder.GetFoldersAsync();
            foreach (StorageFolder topLevelFolder in topLevelFolders) {
                Debug.WriteLine(topLevelFolder.Name);
            }
        }
    }
}

Consulte tambiénSee also