2

XCTest で CocoaLumberJack を使用すると、DDLog.h. 私は<CocoaLumberjack/DDLog.h>運が悪いことにそれを変更しようとしました。このプロジェクトは、LumberJack が iOS シミュレーターで動作するようにコンパイルおよび実行されますが、ユニット テスト ターゲットに対して実行すると、このエラーが発生します (スクリーンショットを参照)。

ここに私の -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

エラー:

エラー

tests以下に示すように、ライブラリをターゲットにリンクしましたlibPods.a

リンクされたライブラリ

TestCases の実行時に LumberJack が正しくリンクしないのはなぜですか? 正しくリンクするために TestTarget に追加する必要があるものは他にありますか?

4

2 に答える 2

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」クラスに。

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.alibPods-MyAppTests.a、新しい構成で構築されていpodfileます。

于 2014-09-24T18:49:43.970 に答える