Tengo una aplicación a la que hemos enviado docenas de versiones en los últimos 6 meses y usamos APNS. Recibí el siguiente correo electrónico de Apple después de actualizar a Xcode 8
Estimado desarrollador,
Hemos descubierto uno o más problemas con su entrega reciente de APP_NAME. Su entrega se realizó correctamente, pero es posible que desee corregir los siguientes problemas en su próxima entrega:
Falta el derecho de notificación push: su aplicación incluye una API para el servicio de notificaciones push de Apple, pero el derecho aps-environment falta en la firma de la aplicación. Para resolver esto, asegúrese de que su ID de aplicación esté habilitado para notificaciones push en el portal de aprovisionamiento. Luego, firme su aplicación con un perfil de aprovisionamiento de distribución que incluya la autorización aps-environment. Esto creará la firma correcta y podrá volver a enviar su aplicación. Consulte "Aprovisionamiento y desarrollo" en la Guía de programación de notificaciones push y locales para obtener más información. Si su aplicación no utiliza el servicio de notificaciones push de Apple, no se requiere ninguna acción. Puede eliminar la API de envíos futuros para detener esta advertencia. Si usa un marco de terceros,
Una vez que haya corregido los problemas, puede usar Xcode o Application Loader para cargar un nuevo binario en iTunes Connect.
Saludos,
El equipo de la App Store
Lo extraño es que fui a developer.apple.com -> Certificados, identificadores y perfiles y mi AppId todavía tiene habilitadas las notificaciones automáticas. No estoy haciendo nada diferente de lo que he hecho nunca, así que tengo curiosidad si la actualización de Xcode 8 rompió algo. ¿Algunas ideas?
Por cierto: el enlace que pusieron para la Guía de programación de notificaciones push se rompió en el correo electrónico, por lo que no es una buena señal.
También tengo el mismo problema, y estoy seguro de que la notificación Push está desactivada de forma predeterminada en Xcode8. No me di cuenta. Ten cuidado con eso.
fuente
Hubo un cambio en Xcode 8, donde sus derechos ya no provienen de los identificadores de la aplicación, sino de las capacidades seleccionadas en el destino de su aplicación. Entonces, como dijo Unome (el OP), debe verificar que las notificaciones push estén activadas.
Para mí, no era un botón "Repararme", pero tenía dos archivos de derechos (uno para desarrollo y otro para distribución). Alternar la capacidad de notificaciones push agregaría la
aps-environment
clave, con el valordevelopment
, al archivo de derechos de desarrollo, pero no la agregaría al archivo de derechos de distribución. Copiar la misma clave en la distribución funcionó para deshacerse del correo electrónico de advertencia al cargarlo en iTunes Connect.Para la mayoría de los proyectos, debería ser suficiente activar las notificaciones automáticas, o si ya está activado pero la clave no está en los derechos, intente activarlo y desactivarlo nuevamente.
fuente
.entitlements
archivo para la configuración / esquema actual, siempre se usaproduction
como archivoaps-environment
.production
.development
. Se cambiará en la ipa cuando se archive el proyecto.De las notas de la versión de Xcode :
Este es un gran cambio ya que siempre fue bastante extraño que el derecho aps-environment no requiriera el plist, pero muchos otros sí lo hicieron.
Para aquellos de ustedes que no quieran presionar ciegamente "Arreglarme" y actualmente no tienen un archivo de derechos, es solo un archivo plist al que se hace referencia en la Configuración de compilación de su proyecto en "Derechos de firma de código".
fuente
Después de un día de lucha con Xcode 8, no pudimos entender por qué el
aps-environment
desarrollo NO se agregó a nuestras compilaciones de depuración. Faltaba en la sección de derechos en la aplicación creada para las pruebas de depuración ... a pesar de que HEMOS HABILITADO la nueva capacidad y existía el archivo de derechos. El problema es que el archivo de derechos debe configurarse para CUALQUIER SDK en la configuración de compilación de Xcode para derechos de depuración.fuente
Debug
clave y establecerlo para elDebug
>Any SDK
uno, ya que este último se usa para anular el valor de un SDK en particular.Recibí el mismo correo electrónico de Apple usando XCode 7.3.1. Lo que hice para solucionar el problema fue:
fuente
Si está usando los frameworks de Firebase y no está usando notificaciones push, hay dos soluciones: 1. simplemente aguante el mensaje de "problema" que se envía a todo su equipo cada vez que carga un binario. La aplicación seguirá siendo aceptada como un envío siempre y cuando no esté utilizando notificaciones, puede ignorar la advertencia. o 2. haga esto: https://stackoverflow.com/a/46802075/7529450 . Esto eliminará la molesta notificación por correo electrónico y también será aceptado como envío.
fuente
Gestionar automáticamente la firma estaba desactivado para mí, lo verifiqué y funcionó bien para mí.
fuente
Se habilitó el uso de notificaciones push de Xcode 9.
Intenté deshabilitar / volver a habilitar las funciones de notificación push . (no funcionó)
Intenté deshabilitar / volver a habilitar Gestionar automáticamente la firma . (no funcionó)
Resulta que tuve que eliminar y volver a agregar mis perfiles de aprovisionamiento. ( vea aquí cómo hacerlo ) Es posible que deba deshabilitar / volver a habilitar Gestionar automáticamente la firma después de las salas.
fuente
Para mí, el problema era porque había dos archivos de derechos:
Entitlements-Debug.plist
yEntitlements-Release.plist
. Y solo uno de ellos (Debug) tiene configuraciones necesarias.Cambiar varios valores de Configuración de compilación> Firma> Derechos de firma de código a uno solo
MyAppName/MyAppName.entitlements
y luego volver a habilitar Capacidades> Notificaciones push conmutador de funcionó para mí.Espero eso ayude.
fuente
Una opción más que funcionó: copiar y pegar la fuente de
AppName/Entitlements-Debug.plist
intoAppName/Entitlements-Release.plist
.fuente