ios watchkit apple-watch

ios - Depuración en Apple Watch real: error de verificación de la aplicación



watchkit apple-watch (5)

Básicamente debes realizar dos pasos:

  • Agregue el UDID de su reloj Apple al portal de desarrolladores
  • Actualice su perfil de aprovisionamiento para admitir el reloj

XCode puede administrar todo el proceso por usted:

1. Implemente la aplicación en su iPhone / iPad

2. Inicie la aplicación WatchKit también en su iPhone / iPad (no en el simulador)

3. Elija Fix Issue, cuando aparezca el mensaje de error de firma de código

4. Seleccione su equipo de desarrollo y deje que XCode haga el resto

También he escrito un breve tutorial para esto.

Hoy intenté depurar mi aplicación WatchKit en un Apple Watch real. Después de presionar el botón Depurar en Xcode, la aplicación principal de iPhone se instaló correctamente, pero Apple Watch solo mostró el mensaje Error al instalar xxx, error: Error de verificación de la aplicación . La aplicación WatchKit no se instala.

Era consciente de esto: la aplicación WatchKit fue rechazada por "Error al instalar" , pero no ayudó porque mi archivo de proyecto Xcode está bien.

¿Cómo hacer que la depuración funcione en un Apple Watch real?


Deberías tener AppID para cada uno. por ejemplo, si el identificador de paquete de su aplicación es "com.xyz", entonces necesita tres aplicaciones y perfiles de aprovisionamiento llamados

  1. com.xyz
  2. com.xyz.watchkitapp
  3. com.xyz.watchkitapp.watchkitextension

Cree aprovisionamiento para cada uno y asígnelo a los objetivos relacionados.

Esto resolverá este problema. Asegúrese de que su UUID para iPhone y reloj se debe agregar a estos perfiles.

También la versión para todos los objetivos debe ser la misma.


El problema UDID como se describió anteriormente puede ser el culpable, pero en mi caso, eso fue manejado automáticamente por Xcode. Mirando el registro del dispositivo (menú Ventana> Dispositivos) mostró:

companionappd [350]: error al instalar la aplicación WatchKit, error: (Error Domain = LaunchServicesError Code = 0 "La operación no se pudo completar. (LaunchServicesError error 0.)" UserInfo = 0x14e2f690 {Error = ApplicationVerificationFailed, ErrorDetail = -402620394, ErrorDescription = Error al verificar la firma del código de: 0xe8008016 ( Derechos encontrados que no están permitidos por el perfil de aprovisionamiento )})

... un problema que no quedó atrapado en el proceso de compilación, ni fue compartido explícitamente conmigo en los errores en pantalla.

Entonces, miré los derechos:

Sí, tuve que agregar manualmente esos beta-reports-active para enviarlos a TestFlight.

Parece que necesita la marca si está utilizando TestFlight (y cualquier otra cosa que no sean los derechos predeterminados), pero no necesita tener la marca si está depurando localmente.

Por lo tanto, mi solución a esta contradicción es tener dos archivos de derechos , así:

Hasta ahora tan bueno. App y Watch Extension se ejecutan como se esperaba.


No olvide desplazarse hacia abajo en la pantalla "Dispositivos" en Xcode. Xcode -> Ventana -> Dispositivos -> Seleccione "NameOfiPhone" y luego en la ventana "Información del dispositivo" a la derecha, desplácese hacia abajo. Luego verá el dispositivo emparejado. Sí, estoy admitiendo esto :-)


Resulta que también debe agregar el UDID del Apple Watch al Portal del Desarrollador de Apple y actualizar su perfil de aprovisionamiento de Desarrollo para incluir este UDID.

El UDID se puede obtener en la ventana Dispositivos de Xcode. Después del emparejamiento, la información del Apple Watch se mostrará automáticamente debajo de la información de su iPhone.

Al momento de escribir esto, esto parece no estar documentado en ninguna parte, y el mensaje de error en el Apple Watch no fue particularmente útil. Así que desearía que esta lección de prueba y error te ahorre algunos problemas.