2014-09-24 3 views
2

При использовании CocoaLumberJack с XCTest, я получаю сообщение об ошибке, что он не может найти DDLog.h. Я попробовал изменить его на <CocoaLumberjack/DDLog.h> без везения. Проект компилируется и отлично работает с LumberJack, работающим в iOS Simulator, но когда я запускаю его для целевого объекта тестирования, я получаю эту ошибку (см. Скриншот).CocoaLumberJack XCTest Linker Ошибка при запуске тестовых примеров

Вот мой -Prefix.pch

#import <Availability.h> 

    #ifndef __IPHONE_5_0 
    #warning "This project uses features only available in iOS SDK 5.0 and later." 
    #endif 

    #ifdef __OBJC__ 
     #import <UIKit/UIKit.h> 
     #import <Foundation/Foundation.h> 
     #import <CoreData/CoreData.h> 
     #import <CocoaLumberjack/DDLog.h> 
     #import "Utilities.h" 
    #endif 


    #ifdef DEBUG 
    static const int ddLogLevel = LOG_LEVEL_VERBOSE; 
    #else 
    static const int ddLogLevel = LOG_LEVEL_ERROR; 
    #endif 

Ошибка:

Error

Я связала библиотеки к tests цели также, как показано ниже с libPods.a.

Linked Libraries

Почему не лесоруб ссылка правильно при работе с TestCases? Есть ли что-то еще, что мне нужно добавить в TestTarget для правильной связи?

ответ

1

Мне удалось решить проблему, удалив настройки в файл -Prefix.pch и переформатировав podfile для использования целей. Я должен был переместить

#import "DDLog.h" 

и

#ifdef DEBUG 
static const int ddLogLevel = LOG_LEVEL_VERBOSE; 
#else 
static const int ddLogLevel = LOG_LEVEL_ERROR; 
#endif 

в классе `Utility.h».

The podfile был перестроен, чтобы связать обе цели:

platform :ios, '7.0' 

def common_pods 
    pod 'CocoaLumberjack' 
    pod 'HexColors' 
end 

target :MyApp do 
    common_pods 
end 

target :MyAppTests do 
    common_pods 
end 

Я также должен был удалить libPods.a с обеих целей, так как он больше не будет построен. Вместо этого libPods-MyApp.a и libPods-MyAppTests.a построены с новой конфигурацией podfile.

Смежные вопросы