ios - Identificadores de paquete de extensión de WatchKit
apple-watch bundle-identifier (4)
Debe tener cuidado al cambiar los identificadores de paquete, así es como deben configurarse (debe cambiar cada identificador en la lista de información para la aplicación de iPhone , la extensión Watchkit y la aplicación Watchkit ):
iPhone Application Info.plist:
Establezca cualquier identificador de paquete como desee (la propiedad "Identificador de paquete").
Ejemplo:
Bundle identifier: com.fruitcompany.orange
WatchKit App Info.plist
El identificador de paquete aquí debe ir precedido del identificador de la aplicación de iPhone, como este (ejemplo):
Bundle identifier: com.fruitcompany.orange.watchkit
También debe cambiar el
WKCompanionAppBundleIdentifier
que
debe
coincidir con el identificador del paquete de la aplicación para iPhone, de esta manera:
WKCompanionAppBundleIdentifier: com.fruitcompany.orange
Watchkit Extension Info.plist:
El identificador de paquete aquí debe ir precedido del identificador de la aplicación de iPhone, como este (ejemplo):
Bundle identifier: com.fruitcompany.orange.watchkit.extension
También debe establecer el
WKAppBundleIdentifier
bajo el atributo
NSExtension
.
El identificador
WKAppBundleIdentifier
debe
coincidir con el identificador de paquete de la aplicación WatchKit de esta manera:
WKAppBundleIdentifier: com.fruitcompany.orange.watchkit
Estoy tratando de construir mi aplicación pero falló. Me muestran el mensaje a continuación.
error: WatchKit Extension no contiene ninguna aplicación WatchKit cuyos identificadores de paquete coincidan con "com.domain.appname.watchkitapp". Verifique que el valor de WKAppBundleIdentifier en la lista Info.plist de su extensión WatchKit coincida con el valor de CFBundleIdentifier en la lista Info.plist de su aplicación WatchKit.
Recientemente he cambiado
"com.domain.appname.watchkitapp"
a
"com.domain.differentappname.watchkitapp"
.
No puedo encontrar dónde cambiar esto.
Por lo tanto, no necesariamente cambia algo cuando solo desea ejecutar en dispositivos de prueba. Pero debe solicitar dos perfiles de aprovisionamiento más para probar la aplicación de reloj. Esos dos identificadores adicionales se pueden adquirir desde el objetivo de extensión y ver el objetivo de la aplicación. También es lo mismo que debe hacer cuando desea cargar la aplicación de reloj en App Store
Primero, permítanme resaltar la excelente respuesta en esta página de @DejanSkledar, ya que todas las ubicaciones señaladas en la respuesta son importantes.
Dicho esto, la configuración precisa en esa respuesta no fue suficiente para mí. Me gustaría complementar esta respuesta y señalar que desde watchkit 2, parece que se requiere una jerarquía a medida que trabaja desde la aplicación, a la aplicación de reloj y, finalmente, a la extensión de la aplicación en términos de identificación del paquete.
Aquí están las configuraciones en cada uno de sus correspondientes archivos info.plist que funcionaron para mí después de encontrar la respuesta de edwardmp sobre un problema relacionado .
ID del paquete de la aplicación para iPhone: com.domain.yourapp
Ver el ID del paquete de la aplicación: com.domain.yourapp.watchkit
ID del paquete de extensión de Watchkit: com.domain.yourapp.watchkit.extension
Como puede ver, una aplicación de iPhone tiene una aplicación de kit de vigilancia, que a su vez tiene una extensión de kit de vigilancia, y cada uno de estos niveles debe reflejarse en cada uno de sus respectivos identificadores de paquete.
Al completar las relaciones, la aplicación de reloj debe apuntar a la aplicación de iPhone a la que pertenece usando su (WKCompanionAppBundleIdentifier), y la extensión de reloj debe apuntar a la aplicación de reloj a la que pertenece (WKAppBundleIdentifier).
Vea la aplicación WKCompanionAppBundleIdentifier: com.domain.yourapp
Ver la extensión de la aplicación WKAppBundleIdentifier: com.domain.yourapp.watchkit
Espero que esto ahorre algo de tiempo a alguien, ya que tuve que luchar por esto durante unas horas :(
También es posible que deba cambiar la clave WKCompanionAppBundleidentifier en la lista de información p.list de la aplicación complementaria de proyectos de iOS para que coincida con la clave WKAppBundleIdentifer en la extensión info.plist del kit de reloj. Descubrí esto cuando copié un proyecto de kit de reloj anterior y cambié el WKAppBundleIdentifier en la extensión info.plist del kit de reloj para que coincida con el identificador de paquete en info.plist del kit de reloj y el proyecto todavía obtuvo el mismo error. Debe ir al Finder, ubicar el proyecto complementario de iOS info.plist y hacer doble clic en él, luego cambiar la clave WKCompanionAppBundleIdentifer si es necesario. No pude ver esta clave buscando en info.plist en Xcode.