cocos2d-xのユニットテストでCCPlatformDefine not found

(前提 Xcode5.1.1 cocos2d-x3.0)

rc2版ではうまくいっていたはずなのに、3.0final版で作り直すと別のエラーが起きました。
今度はコンパイルエラーです。

まずは ‘CCPlatformDefine.h’ file not found
これへの対処としては、UnitTestのTargetのBuild Settingsの設定に追加
Search Paths : Header Search Paths に以下を追加

$(SRCROOT)/../cocos2d/cocos/2d/platform/ios

それでもplatformがわからないというエラーになるので、
Apple LLVM 5.1 Preprocessing : Preprocessor Macros : Debug に以下を追加

CC_TARGET_OS_IPHONE

cocos2d-xのユニットテストでSymbol(s) not found

(前提 Xcode5.1.1 cocos2d-x3.0rc2)

cocos2d-x + xcode でユニットテストをしたくて、テスト用のターゲットを追加。参照設定を終えて、テストコードも書いて、いざテスト実行するとテストプログラム自体のエラーで赤も緑も出やしない。

Undefined symbols for architecture XXXXX
symbol(s) not found for architecture XXXXXXX
clang: error: linker command failed with exit code 1 
(use -v to see invocation)

UnitTestのTargetでは、下記の設定を確認済(自動で設定されるはず)。

  • Linking : Bundle Loader : $(BUILT_PRODUCTS_DIR)/ABCD.app/ABCD”
  • Unit Testing : Test Host : $(BUNDLE_LOADER)

Projectでも、下記の設定を確認済

  • Apple LLVM – Code Genararion : Symbols hidden by default : No

さらに、ソースレベルでは参照できていて、Jump to Definition もできています。

ということで原因究明に手間取りましたが、ひとまず解決したので記録します。

cocos2d-x3.0で、普通にスクリプトでプロジェクト作成すると、本体プロジェクトの中に
入れ子でcocos2d_libs_xcodeproj ができています。
これの「Symbols hidden by default」がYesでした。

このために cocos2d-x側のクラスを見に行くと、前述のエラーになると思われます。
ひとまず、cocos2d_libs_xcodeproj でも下記のように変更してみると、エラーがなくなりました。

  • Apple LLVM – Code Genararion : Symbols hidden by default : No