Результаты Cordova + XCTest: «Неопределенные символы для архитектуры i386»

Я получаю сообщение об ошибке, когда пытаюсь интегрировать XCTest с проектом Cordova. Это происходит в свежем приложении Cordova, без настроек. Просто добавьте XCTest, и тесты завершатся со следующими ошибками:

Undefined symbols for architecture i386:
  "_CGRectZero", referenced from:
      +[CDVUserAgentUtil originalUserAgent] in libCordova.a(CDVUserAgentUtil.o)
  "_OBJC_CLASS_$_ALAssetsLibrary", referenced from:
      objc-class-ref in libCordova.a(CDVURLProtocol.o)
  "_OBJC_CLASS_$_CLLocation", referenced from:
      l_OBJC_$CATEGORY_CLLocation$_JSONMethods in libCordova.a(CDVShared.o)
  "_UTTypeCopyPreferredTagWithClass", referenced from:
      ___30-[CDVURLProtocol startLoading]_block_invoke in libCordova.a(CDVURLProtocol.o)
  "_kUTTagClassMIMEType", referenced from:
      ___30-[CDVURLProtocol startLoading]_block_invoke in libCordova.a(CDVURLProtocol.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я безрезультатно пытался удалить архитектуру i386 и множество других вещей, но это ускользает от меня.

есть идеи? Заранее спасибо!

Изменить: я забыл отметить, что проект строится отлично, но запуск тестов [через Продукт -> Тест] вызывает эту ошибку.


person johncblandii    schedule 03.12.2013    source источник


Ответы (1)


Нашел.

Вы должны добавить каждую необходимую структуру в тестовую цель. В моем случае мне нужно было добавить:

CoreLocation.framework
AssetsLibrary.framework
CoreGraphics.framework
MobileCoreServices.framework

После этого модульные тесты провалились, как и ожидалось.

person johncblandii    schedule 03.12.2013