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