Class Foo is implemented in both MyApp and MyAppTestCase. One of the two will be used. Which one is undefined

Недавно я начал модульное тестирование своего приложения. Этот проект (в Xcode4) был создан без пакета unit test, поэтому мне пришлось его настроить. Я выполнил следующие шаги: http://cocoawithlove.com/2009/12/sample-mac-application-with-complete.html И это хорошо работало для простых классов, но теперь я пытаюсь протестировать класс, который зависит от другого, от другого и т. Д.

Сначала я получил ошибку компоновщика, поэтому я добавил файлы *. M к цели тестового примера, но теперь я получаю предупреждение для каждого класса, который пытаюсь протестировать:

Класс Foo реализован как в MyApp и MyAppTestCase. Один из двоих будет be used. Which one is undefined.

I wonder why is that? How can I solve this? Maybe I missed something when setting the unit test target?

Edit - The Solution

  • Set "Bundle Loader" correctly to $(BUILT_PRODUCTS_DIR)/AppName.app/AppName

  • Set "Symbols Hidden by Default" to NO (in Build Settings of the target application). This is where the linker errors come from because it is YES by default!. I've been struggling with this for so long!.

Source: Linking error for unit testing with XCode 4?

63
задан Community 23 May 2017 в 12:34
поделиться