Error de enlace UNUserNotificationCenter

Tengo un proyecto Xcode, Xcode 8.1 (8B62) con dos objectives, uno para la versión paga de la aplicación y el otro para la versión gratuita. Ambas administran notifications push remotas. Desde que hice los cambios para iOS 10 con el nuevo marco UNUserNotificationCenter.framwork, todo está bien para el primer objective y tengo un error de enlace para el segundo. Funcionó bien en iOS 9 con los methods anteriores. Lo que hice para ambos objectives:

  • Capacidades: notifications push habilitadas (los derechos se actualizan correctamente)
  • En AppDelegate.h: #import
  • En AppDelegate.m: actualizado el código con los nuevos methods

Es el mismo código para ambos objectives.

Desafortunadamente, para el segundo objective, tengo el siguiente error:

Símbolos no definidos para architecture arm64: "_OBJC_CLASS _ $ _ UNUserNotificationCenter", referencedo desde: Objc-class-ref en AppDelegate.o Ld: símbolo (s) no encontrado para la architecture Clang: error: el command linker falló con el código de salida 1 (use – v para ver la invocación)

He hecho varias veces limpiar y limpiar la carpeta de destino de construcción, reiniciar Xcode, reiniciar la computadora pero no se hace nada.

Nada encontrado en los diferentes foros …

La ayuda sería bienvenida. Gracias de antemano.

No estás vinculando a UserNotifications.framework .

  • Seleccione su objective
  • Mostrar sus "Fases de compilation"
  • Asegurar UserNotifications.framework existe en "Enlace binary con bibliotecas"

Si no lo hace:

  • Haga clic en el button "+" y agréguelo

Asegúrese de que UserNotifications.framework existe en su Target > General > Linked Frameworks and Libraries

Tenía casi exactamente el mismo problema, con dos objectives, uno para la versión gratuita, otro para la versión paga.

Sospecho que la diferencia era que con un objective, "Habilitar modules" era SÍ (este era el objective para la versión gratuita, donde estaba haciendo un @import para Admob), mientras que con el otro objective, "Habilitar modules" era NO. Al igual que la magia, no tuve que agregar UserNotifications.framework en "Enlace binary con bibliotecas" en Fases de compilation para el objective donde "Habilitar modules" era SÍ. Sin embargo, para el objective en el que "Habilitar modules" era NO, obtuve

 Undefined symbols for architecture arm64: "_OBJC_CLASS _ $ _ UNUserNotificationCenter 

y se fue agregando manualmente UserNotifications.framework a "Link Binary with Libraries".

Entonces tal vez la regla es que esto debe hacerse si y solo si los modules no están habilitados.