cocos2d-x-3.12 の iOS static ライブラリをビルド

# 目的

1. Cocos2d-x アプリのビルドを速くしたい
    1. ```cocos new``` コマンドで作成した Xcode プロジェクトでは、クリーンビルドの度にライブラリ部分も再ビルドする
2. Xcode が Cocos2d-x ライブラリ部分に対して表示する警告を見たくない
3. Cocos2d-x を既存アプリに組み込む準備

# 環境

1. Mac OS X 10.11.5 (英語)
2. Xcode 7.3.1
3. Cocos2d-x 3.12

# 方針

1. iOS SDK は 9.3
2. iOS Deployment Target は 8.0

# 手順
cocos2d-x-3.12 を展開したディレクトリから

```
$ cd build

$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphoneos9.3 \
    clean build ARCHS='armv7 armv7s' VALID_ARCHS='armv7 armv7s' IPHONEOS_DEPLOYMENT_TARGET=8.0 \
    TARGET_BUILD_DIR=tmp/arm BUILT_PRODUCTS_DIR=tmp/arm OBJROOT=tmp/arm SYMROOT=tmp/arm \
    OTHER_CFLAGS=-fembed-bitcode

$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphoneos9.3 \
    clean build ARCHS='arm64' VALID_ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET=8.0 \
    TARGET_BUILD_DIR=tmp/arm64 BUILT_PRODUCTS_DIR=tmp/arm64 OBJROOT=tmp/arm64 SYMROOT=tmp/arm64 \
    OTHER_CFLAGS=-fembed-bitcode

$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphonesimulator9.3 \
    clean build ARCHS='i386' VALID_ARCHS='i386' IPHONEOS_DEPLOYMENT_TARGET=8.0 \
    TARGET_BUILD_DIR=tmp/i386 BUILT_PRODUCTS_DIR=tmp/i386 OBJROOT=tmp/i386 SYMROOT=tmp/i386 \
    OTHER_CFLAGS=-fembed-bitcode

$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphonesimulator9.3 \
    clean build ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET=8.0 \
    TARGET_BUILD_DIR=tmp/x86_64 BUILT_PRODUCTS_DIR=tmp/x86_64 OBJROOT=tmp/x86_64 SYMROOT=tmp/x86_64 \
    OTHER_CFLAGS=-fembed-bitcode

$ lipo -create -output "libcocos2d iOS.a" \
    "tmp/arm/libcocos2d iOS.a" \
    "tmp/arm64/libcocos2d iOS.a" \
    "tmp/i386/libcocos2d iOS.a" \
    "tmp/x86_64/libcocos2d iOS.a"

$ rm -rf tmp
```

  1. 2016-07-16: Xcode から iphone 実機で Run しようとすると以下の bitcode のエラーが出たため ```OTHER_CFLAGS=-fembed-bitcode``` を追加

    ```
ld: '.../cocos2d-x/build/libcocos2d iOS.a(CCEAGLView-ios.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

    1. ```-fembed-bitcode``` により libcocos2d iOS.a は 137.5MB から 325.8MB になった
    2. これだけだと [cocos2d-x-3rd-party-libs-bin](https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin) で bitcode が有効になっていないので CCEAGLView-ios.o の代わりに ftbase.ios8_armv7.o で同じエラーが出てしまう
        1. cocos2d-x-3rd-party-libs-bin の v3-deps-103 リリースを使っても同様だった
        2. [cocos2d-x-3rd-party-libs-src を bitcode 有効にしてビルド](http://qiita.com/ken1ma/items/004233c3e725aad73382)してから上記手順を実施すると bitcode のエラーがなくなる
    3. ```OTHER_CFLAGS=-fembed-bitcode``` の代わりに ```ENABLE_BITCODE=YES``` を指定すると clang の引数に ```-fembed-bitcode-marker``` が追加されるが同じエラーが出てしまう (libcocos2d iOS.a は 138.2MB)

# 確認

1. ```cocos new``` コマンドで作成した Xcode プロジェクトから cocos2d_libs サブプロジェクトを削除
    1. ビルドエラーが起きる状態になる
2. 作成した libcocos2d iOS.a を Finder から Xcode で開いたプロジェクトの Frameworks へドラッグ＆ドロップ
    1. クリーンビルドが早くなった

# 参考

1. [Build cocos2d-x fat static library](http://www.nicnocquee.com/2016/01/20/build-cocos2d-x-fat-static-library.html)