iTunes connect: confundido en el ID del package

He estado entusiasmado por intentar agregar por PRIMERA vez una nueva aplicación en iTunes Connect a TEST my GAMEKIT.

He leído esta nota técnica y me estoy confundiendo porque ya tenía un id de enlace para mi aplicación que creé cuando empecé a desarrollarlo (ese es mi identificador de package actual con el que he creado los perfiles de testing y aprovisionamiento actuales: hola- *) .

introduzca la descripción de la imagen aquí

¿Para poder utilizar GameKit e InApp Purchase debería crear un nuevo Id de package?

Estoy confundido porque:

  • No sé si el Id de package actual es válido (con respecto a la nota técnica vinculada anteriormente)
  • No sé si el Bundle Id influye en las cosas que puedo agregar en la aplicación más tarde (por ejemplo, en la compra de aplicaciones, GameKit, …)
  • Si creo una nueva aplicación con un nombre (por ejemplo: HelloApple), pero con un Id de package con comodín (Di: hello- *), podré agregar una nueva aplicación con el mismo nombre pero un Id de package diferente en una etapa posterior ? Esto de hecho antes de publicar CUALQUIERA de las dos aplicaciones.
  • No entiendo por qué hay una opción entre usar o no usar un comodín; en otras palabras, si se necesita una ID de package no comodín para usar en la compra de la aplicación y GameKit, ¿por qué un desarrollador desea utilizar un ID de aplicación comodín?

Se agradecerá cualquier ayuda, en particular, necesito resolver mi primer problema: ¿qué ID del package debo usar en ordert para usar GameKit e InAppPurchase?

Antes de contestar a sus preguntas algunas definiciones:

ID de package : una cadena DNS inversa que identifica con precisión una sola aplicación.

Cadena de búsqueda de ID de package : se usa para coincidir con un set de ID de package, donde cada ID de package identifica una sola aplicación. Por ejemplo, si la cadena de búsqueda de ID de package es com.mycompany.MyApp o un comodín, como com.mycompany.* , Entonces coincidirá con el ID de package com.mycompany.MyApp .

ID de la aplicación : una cadena que identifica una o más aplicaciones de un solo equipo. Una identificación de la aplicación consiste en una cadena de búsqueda de ID de package precedida por la identificación del equipo , una cadena de 10 caracteres generada por Apple para identificar de manera única a un equipo. En la nota técnica que vincula es ABCDE12345 y se llama a Bundle Seed ID.

(Desarrollo) Perfil de aprovisionamiento : lo utiliza para autorizar que su aplicación se ejecute en dispositivos y utilice ciertas tecnologías de tienda cuando se encuentre en desarrollo. Está compuesto por: una única ID de aplicación, un set de dispositivos y un set de certificates de desarrollo. Los perfiles de aprovisionamiento se crean en Centro de miembros y los necesita en su dispositivo para ejecutar su aplicación. XCode puede download perfiles de aprovisionamiento e instalarlos en dispositivos.

Ahora responderé a tus balas:

  • Para usar Game-Center (GameKit) e IAP, necesita una ID de aplicación explícita , es decir, una ID de aplicación con una cadena de búsqueda de ID de package que no tiene *. Una ID de aplicación de comodín es aquella en la que la cadena de búsqueda de ID de package tiene * y es la que tiene ahora.
  • Lo que usted crea inicialmente es una ID de la aplicación con un ID de package asociado. Si es explícito, puede agregar Game-Center y IAP, si es una ID de aplicación comodín, no … eso es todo.
  • No puede tener dos aplicaciones con nombres diferentes, sino la misma ID de aplicación explícita o ID de package. Pero puede tener dos aplicaciones con nombres diferentes que no utilizan Game-Center o IAP con una ID de aplicación exclusiva con una ID de aplicación comodín.
  • Pregunta por qué el comodín es útil … Bueno, dije que si no utilizas Game Center o IAP, puedes tener dos o más aplicaciones asociadas a una ID de aplicación comodín. Luego, puede crear un perfil de aprovisionamiento con esta ID de aplicación y solo necesita instalar este perfil de aprovisionamiento en sus dispositivos para todas sus aplicaciones. Hay un perfil de aprovisionamiento pnetworkingeterminado de este tipo denominado Perfil de aprovisionamiento de equipo que es válido para todas sus aplicaciones, pero podría crear otras más específicas que sean válidas para un subset de todas sus aplicaciones.

Este process es realmente útil para grandes equipos. Si tiene un equipo pequeño y pocas aplicaciones, es realmente confuso, pero ayuda a comprender el razonamiento detrás de él.

Pero hay más que decir sobre todo esto. Le recomiendo que lea la " Guía de distribución de la aplicación " como lo hice recientemente. Es una guía extensa, pero por el momento solo necesita leer secciones del tema " Mantenimiento de sus identidades y certificates de firma " y " Mantenimiento de identificadores, dispositivos y perfiles ". La guía es muy clara, está llena de capturas de pantalla y responderá a todas sus preguntas. También puedes volver a la guía en el path para resolver rápidamente algún problema (y tendrás problemas).

La primera vez que creé una aplicación con GameCenter e IAP hace más de un año, busqué stackoverflow para responder todas mis preguntas. Pero he estado teniendo problemas cuando expiraron los certificates, cuando agregué nuevos dispositivos, etc., y cada vez que encontré una solución Ad-hoc después de jugar y volver a stackoverflow. No me malinterpretes, hay grandes respuestas en stackoverflow pero es una mejor estrategia en mi experiencia leer algo más que explica el outlook general. ID de la aplicación, ID de package, Certificados, keys privadas, etc., es un tema complicado, especialmente si no comprende por qué se construye de esta manera.

El id del package es solo un identificador para su aplicación. Se utiliza principalmente para proporcionarle los certificates que necesita usar para firmar su aplicación antes de enviarla a App Store o usarla en dispositivos de desarrollo (p. Ej. Para testings). El id del package puede ser lo que quieras. Apple recomienda utilizar la syntax com.yourcompany.yourapp para mantenerla consistente entre las aplicaciones que desarrolla y evitar conflictos con los identificadores de otras aplicaciones.

Se puede usar un comodín en todas tus aplicaciones, mientras que una identificación específica se puede usar solo con una aplicación. Te aconsejo que tengas un id para cada aplicación y solo un comodín para el desarrollo (para que puedas ejecutar en tus dispositivos tantas aplicaciones como quieras sin tener que preocuparte por los certificates hasta que decidas enviar la aplicación). No necesita tener acceso a todos los services (como Game Center o iCloud) en todas sus aplicaciones y, por lo tanto, es mejor que firme los certificates únicos solo con los services que necesita su aplicación.

Lo que creo que Apple quiere es:

  1. Cree una ID de package diferente para cada aplicación que utiliza la compra en la aplicación / GameKit o ambos.

  2. Puede tener la misma ID de aplicación e ID de package para aplicaciones que no usan estas.

  3. Si el bundleID que tienes para tu aplicación no se usa para ninguna otra de tus aplicaciones, puedes usarlo.

Alguien más conocedor, corríjame si estoy equivocado.