cocos2dx:unable to open executable

今回は主にxcode6です。

昨日は、

●１・ゲーム１の申請を出したらxcodeが「Your account already has a valid iOS Distribution certificate」（証明書作ってるみたいだけどローカルにないよ）というエラーを出して申請させてくれない。証明書はローカルマシンにもインストール済み。
●２・ゲーム２でxcodeが「unable to open executable」というエラーを出して、あるはずの場所にファイルがないから実行できないよ、というが、実際にはそこにファイルはある。
●３・新ゲームの制作にとりかかるべくcocos2d-x-3.6のビルドをするが、途中で動作がおかしくなってビルドするふりしてなにもしない状態になり、環境を再構築することに。しかし、再度v3.6環境を構築してbuild_native.pyを実行すると、
```
Execute failed: java.io.IOException: Cannot run program "C:\android-sdk\build-tools\23.0.0.2\bin\aapt.exe" (in directory "C:\cocos2d-x-3.6\projects\vamp\cocos2d\cocos\platform\android\java"): CreateProcess error=2, ?w?????t?@?
```
といったエラーを出して、これが取れない。Mac環境はググれば直し方が出てくるが、Windowsは出てこない。

という三重苦に陥って、正直どうするんだこれと思いつつ寝て、朝起きたらストレスが半端ない状態で頭痛もしてましたが、今日再度取り組んで、全部解決しました。

●１・ゲーム１の申請を出したらxcodeが「Your account already has a valid iOS Distribution certificate」（証明書作ってるみたいだけどローカルにないよ）というエラーを出して申請させてくれない。証明書はローカルマシンにもインストール済み。

これは最初、ググって出てきた通りdistributionのプロビジョニングファイルのリネームをしましたがだめで、
以下のサイトを参考に証明書をrevokeして、再度登録したら通りました。

エラー：Your account already has a valid iOS Distribution certificate | MUSHIKAGO APPS MEMO 
http://mushikago.com/i/?p=5507

●２・ゲーム２でxcodeが「unable to open executable」というエラーを出して、あるはずの場所にファイルがないから実行できないよ、というが、実際にはそこにファイルはある。

これは最初、以下のスタックオーバーフローの記事を参考にいろいろやってみましたが全部だめでした。

iphone - Unable to open executable - xcode - Stack Overflow 
http://stackoverflow.com/questions/8746194/unable-to-open-executable-xcode

ということで次のスタックオーバーフローの記事。

build - Xcode - error: unable to open executable.....how to fix? - Stack Overflow 
http://stackoverflow.com/questions/8345682/xcode-error-unable-to-open-executable-how-to-fix

ここにあることをヒントにコードを眺めていたら、同じファイルが２つあるのを発見。
１つを削除したら、あっけなくビルド成功でした。
追記2015/06/19：フレームワーク登録しているものがResourceにもあると同様にこのエラーが出ます。

１つのエラーでも、複数の理由で同じエラーが出る場合があるということですね。

●３・新ゲームの制作にとりかかるべくcocos2d-x-3.6のビルドをするが、途中で動作がおかしくなってビルドするふりしてなにもしない状態になり、環境を再構築することに。しかし、再度v3.6環境を構築してbuild_native.pyを実行するとエラーを出して、これが取れない。Mac環境はググれば直し方が出てくるが、Windowsは出てこない。

これが最もハマったのですが、cocos2dxの環境は、以前3.6で構築したものの、3.5_tizenのファイルを持ってくるだけではビルド環境が不完全だということがわかりました。cleanすると、不安定になるようです。

cocos2d-x - Cocos2dx 2.2.6から3.6への移行 （Windows Android環境） - Qiita 
http://qiita.com/n2labo/items/d793b4dc205c3dbae124
（追記済み）

というわけで、いろいろ試行錯誤をしていたのですが、正直らちがあかない状況になってきたので、
3.6にこだわるのはやめて、下位バージョンでもいいので安定動作するバージョンを探しました。

ということで、3.4、3.5_tizenをダウンロードしてきてインストールしましたが、
3.5_tizenと3.6はだいぶ似たような構造らしく、build_native.pyを実行した時に以下のエラーが取れません。
```
Execute failed: java.io.IOException: Cannot run program "C:\android-sdk\build-tools\23.0.0.2\bin\aapt.exe" (in directory "C:\cocos2d-x-3.6\projects\vamp\cocos2d\cocos\platform\android\java"): CreateProcess error=2, ?w?????t?@?
```

これは、調べるとaapt.exeが32bitで、実行環境も32bitである必要があるらしいです。
これは以下のサイトでmacのほうは解決できるようです。

java - "aapt" IOException error=2, No such file or directory" why can't I build my gradle on jenkins? - Stack Overflow 
http://stackoverflow.com/questions/22701405/aapt-ioexception-error-2-no-such-file-or-directory-why-cant-i-build-my-grad

Windows版はどうやらndkのバージョンが関係あるらしく、さらにJavaやndkのbit数も関係あるようで、組み合わせを全部試すわけにもいかず、結局build_native.pyを実行した時にエラーのでない3.4を使うことにしました。
ndk-r9d環境でビルドしてうまくいくのは、3.4までのようです。
（普通にインストールしてもエラーがでない環境があるかもですが、うちではそんな状況でした）

ちなみにjavaのExceptionなので、Javaを32bit、64bit両方の環境でbuild_native.pyしてみましたが、それだけでは直らないようです。

3.6環境でインストールして動いている人もググって見つけましたが、完全に同じ環境にしてやってみてもうちでは動かなかったので、やはりbit数問題があるかもしれません（それぞれのツールのbit数はさすがに詳細に書いてるところは少なかったです）。

あと海外には、3.6はビルドしてもなにも反応がなかったが.cprojectファイルをいじって動くようにした、という人もいました。ただこの人はどういじったかは忘れたとあったので（笑）、詳細はわからずじまいです。

いずれにしても動作環境を公式に示して欲しいところですね。

ということで、参考まで。
Good luck!