Проблема с подключением тестового модуля iPhone, не удается найти DevToolsBundleInjection.framework - PullRequest
4 голосов
/ 26 января 2010

Я пытаюсь настроить модульные тесты приложения для своего приложения iphone. Поэтому я сделал копию цели приложения и цели пакета юнит-тестирования, как описано в документации Apple (http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html)

Следуя указаниям Apple, я не смог сослаться на свои классы в модульных тестах, поэтому я связал приложение с пакетом модульных тестов, используя настройку сборки Bundle Loader и установив основной целью экспорт символов. Это решило ошибки времени компиляции, и оно сработало и выполнило мои тесты сразу после того, как я изменил его. Но после того, как я очистил и собрал заново, я начал получать эту ошибку при попытке запустить на устройстве:

Unable to read symbols for "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1 (7C144)/Symbols/Developer/Library/PrivateFrameworks/DevToolsBundleInjection.framework/DevToolsBundleInjection" (file not found).

Это правда, что файл не существует. Я нашел файл .framework в: /Xcode3.1.4/Library/PrivateFrameworks PrivateFrameworks

и сделал символическую ссылку. Затем, запустив приложение, он сказал, что не может связать файлы приложения:

010-01-25 20:19:22.330 SmokeyTheBear[5808:207] Error loading /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests:  dlopen(/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests, 262): Symbol not found: _OBJC_CLASS_$_AppDelegate
  Referenced from: /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
  Expected in: /var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/UDorse
 in /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
DevToolsBundleInjection: Error loading bundle '/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest'

Затем я вернулся к запуску обычной цели для приложения, и оно запустило все мои модульные тесты и вышло! Я снова почистил и собрал, а затем нормальная цель побежала нормально. Цель модульного теста все еще не работала.

Ответы [ 3 ]

1 голос
/ 24 сентября 2013

Проверьте настройки сборки для цели проекта.

Найдите параметр «Символы, скрытые по умолчанию».

Убедитесь, что он установлен на NO хотя бы для отладочной сборки, которую вы должны использовать для тестирования.

Без этого параметра (который может быть получен из более старых проектов Xcode) код тестирования не будет автоматически связываться с кодом проекта.

0 голосов
/ 06 февраля 2010

Привет smokey_the_bear, ты проверил, что я прошел с этим вопросом:

Ошибка компоновщика: блок тестов iPhone, ссылающийся на классы приложений

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

0 голосов
/ 05 февраля 2010

Как вы связываете фреймворк в первую очередь? Вам не нужно создавать символическую ссылку, чтобы она работала. Переключитесь на свою цель тестового комплекта и откройте Project-> Edit Active Target. Убедитесь, что библиотека находится в разделе «Связанные библиотеки» на вкладке «Общие». Если это так, удалите / повторно добавьте его. Это исправило похожие проблемы со связыванием библиотек для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...