Xcode 8 Expansión ambigua de macro NSLocalizedString

Tengo lo siguiente en mi file de testing de unidad .pch para permitir que mis testings de unidad encuentren el package correcto para los files de localización y esto funcionó bien hasta que me actualicé a Xcode8.

#undef NSLocalizedString #define NSLocalizedString(key, comment) [[NSBundle bundleWithIdentifier:@"Tests-Unit"] localizedStringForKey:(key) value:@"" table:nil] 

Ahora recibo la advertencia

 Ambiguous expansion of macro NSLocalizedString 

Lo que explicaría por qué mis testings de unidad fallan, ya que no pueden encontrar el valor de cadena localizado más.

¿Alguna idea de qué está mal allí? ¿Hay algo que necesito hacer ahora de manera diferente?

EDIT: Tengo la sensación de que tiene algo que ver con que todo mi file fuente esté en 2 objectives, es decir, uno para el proyecto y otro para las testings de unidad, que es la forma en que lo configuramos. Estoy tratando de limpiar esto y eliminé todo mi file fuente del objective de testing de unidad y agregué el

 @testable import ProjectName 

en su lugar, a un file de testing de Unidad para poder acceder a mi código para la testing, pero ahora estoy recibiendo

 File 'MyFile.swift' is part of module 'ProjectName'; ignoring import. 

Parece que a continuación se resuelve el problema, pero no estoy seguro de cuáles son los efectos secundarios.

Configurar y configurar Xcode Build

Otros indicadores de C -Wno-ambiguous-macro

HTH

Al final conseguí que todo volviera a funcionar.

Vamos a pretender que nuestro proyecto se llama Panda y consiste en files Obj-C y Swift. Todos estos files están en nuestro objective de Panda y PandaTests .

PASO 1: Asegúrese de que todos sus files tengan la Membresía de destino correcta, es decir, el objective de Panda : solo los files de origen, los frameworks de desarrollo, las imágenes, etc. y el objective de PandaTests : solo los files de testing, los frameworks de testing, los datos simulados, etc.

PASO 2: Asegúrese de que su Proyecto de Panda tenga la configuration de generación -> Activar comprobabilidad establecida en Sí .

PASO 3: Asegúrese de que su PandaTests Project tenga la configuration de generación -> Nombre del module de producto configurada en PandaTests .

PASO 4: Realice una buena limpieza manteniendo presionado el button Opciones y luego haciendo clic en Producto. Debería ver una opción de Carpeta de compilation limpia .

PASO 5: Para las testings de la unidad Swift, agregue @testable import Panda . Dado que ahora eliminamos todos nuestros files de código fuente del objective de PandaTests , las testings de unidad necesitan una forma de acceder a nuestros files de proyecto. Esto permite que nuestras testings de unidad Swift accedan a todos nuestros files Swift y a los files Obj-C que se han incluido en nuestro Panda-Bridging-Header.h .