Настройки сборки тестового фреймворка для iPhone XCode - PullRequest
2 голосов
/ 19 января 2012

Я пытаюсь добавить модульный тест в свой проект, вот что я делаю:

  1. Добавить цель -> Комплект для тестирования сенсорного устройства Cocoa Touch
    product: AuthyTests
    company Identifier: com.authy.com
    project: authy

    Итак, итоговый идентификатор пакета: com.authy.AuthyTests

  2. если я запускаю команду + U (Product -> test), она работает, запускаются юнит-тесты.

  3. Теперь я добавляю библиотеку из своего проекта, поэтому #include "otp.h" AuthyTests.h

  4. Добавьте вызов AuthyTest.m ([Otp foo];), и я получу ошибку:


Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Otp", referenced from:
objc-class-ref in AuthyTests.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Вещи, которые я пробовал:

1.Я попытался добавить authy.app в качестве зависимости от TargetDependencies этапов сборки AuthyAppTests.

2.Targets -> AuthyTests -> BuildSettings -> Build Active Architechture Only -> Yes

Я использую xcode 4.2. Я также попробовал все на этом сайте:
http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

Чего не хватает для настройки UnitTests на XCode?

1 Ответ

3 голосов
/ 19 января 2012

Похоже, что один из шагов из учебника не был выполнен.В частности, шаги 4-6.Я думаю, что две настройки для загрузчика пакетов выключены.Еще одна возможность попробовать:

В вашей основной цели приложения Authy:

  • изменить настройку сборки Architectures на:
    • i386
    • armv6
    • armv7
  • также измените «Build Active Architectures Only» на «No»

Один из них должен заставить основной двоичный файл Authy иметьi386 в нем.Если это по-прежнему не работает, то это неверные настройки загрузчика пакетов.

...