Не удается запустить Cocoa UnitTests из-за отключения сборщика мусора

Я пытаюсь добавить несколько UnitTests в кучу кода Cocoa Legacy. Я создал пакет модульного тестирования и добавил все необходимые исходные коды и фреймворки, но сборка завершается с ошибкой с этим сообщением:

2010-08-26 16:07:18.074 otest-x86_64[64675:903] The test bundle at 
/Users/giordano/application/build/Release/UnitTest.octest 
could not be loaded because its Objective-C runtime information does not match 
the runtime information required by the test rig.  This is likely because the 
test rig is being run with Objective-C garbage collection disabled, but the 
test bundle requires Objective-C garbage collection.  To enable Objective-C 
garbage collection for the test rig, run it in an environment without the 
OBJC_DISABLE_GC environment variable.

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

2010-08-26 16:38:28.824 otest-x86_64[71383:903] The test bundle at 
/Users/giordano/work/CleanCode/Pomodori.st/desktop/Osx/pomodoro-
buildfix/pomodoro/build/Release/UnitTest.octest could not be loaded 
because an unanticipated error occurred: Error Domain=NSCocoaErrorDomain 
Code=3587 UserInfo=0x20002a640 "The bundle “UnitTest.octest” couldn’t be 
loaded because it is damaged or missing necessary resources."
 (dlopen_preflight(/Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/UnitTest): Library not loaded: 
@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle
  Referenced from: 
/Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/UnitTest
  Reason: no suitable image found.  Did find:
    /Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: 
GC capability mismatch
    /Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: 
GC capability mismatch)

Интересно, можно ли заставить модульный тест работать без сборки мусора: есть подсказки?


person Giordano Scalzo    schedule 26.08.2010    source источник


Ответы (1)


Фреймворк sparkle должен включать GC.

person bbum    schedule 26.08.2010
comment
Все должно быть либо включено GC, либо с поддержкой Retain-Release. Вы не можете смешивать. Я недостаточно знаю о вашем проекте, чтобы знать, какой из них является правильным ответом. - person bbum; 28.08.2010