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

cocos2d-x-3.16 の iOS static ライブラリをビルド
# 目的

1. cocos2d-x アプリのビルドを速くしたい
    1. ```cocos new``` コマンドで作成した Xcode プロジェクトでは、クリーンビルドの度にライブラリ部分も再ビルドする
2. Xcode が cocos2d-x ライブラリ部分に対して表示する警告を見たくない
    1. cocos2d-x-3.16 の libcocos2d iOS で 58 issues
        1. 以前より大分減ってはいる

# 環境

1. macOS 10.13.3 (英語)
2. Xcode 9.2
3. git-2.16.1 (brew)

# 方針

1. iOS Deployment Target は 10.0
2. iOS SDK は 11.2 (latest)
3. アーキテクチャーは arm64 armv7 x86_64 i386
    1. [アーキテクチャーとデバイスの関係](http://iossupportmatrix.com/)
    2. armv7s は build/cocos2d_libs.xcodeproj のビルド対象に入ってないし armv7 とほとんど差がない模様
4. bitcode をサポート

# 手順
[cocos2d-x-3.16](https://qiita.com/ken1ma/items/8d84f20221d924b319ff) ディレクトリから

	$ cd build

	$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphoneos11.2 \
		clean build ARCHS='arm64' VALID_ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET=10.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 iphoneos11.2 \
		clean build ARCHS='armv7' VALID_ARCHS='armv7' IPHONEOS_DEPLOYMENT_TARGET=10.0 \
		TARGET_BUILD_DIR=tmp/armv7 BUILT_PRODUCTS_DIR=tmp/armv7 OBJROOT=tmp/armv7 SYMROOT=tmp/armv7 \
		OTHER_CFLAGS=-fembed-bitcode

	$ xcodebuild -project cocos2d_libs.xcodeproj -scheme "libcocos2d iOS" -configuration Release -sdk iphonesimulator11.2 \
		clean build ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET=10.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

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

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

	$ rm -rf tmp


  1. この段階で libcocos2d iOS.a は 255.6MB


# 確認

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


# bitcode

1. これだけだと Build Settings / Build Options / Enable Bitcode を Yes にするとビルドエラーが起きる

		ld: '.../Build/Products/Debug-iphoneos/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 arm64

    1. これは [cocos2d-x-3rd-party-libs-bin](https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin) で bitcode が有効になっていないため
        1. [cocos2d-x-3rd-party-libs-src (v3-deps-136) を bitcode 有効にしてビルド](https://qiita.com/ken1ma/items/aa023d063570784503c7)してから上記手順 (`xcodebuild`) を実施すると bitcode を有効にしてビルドできるようになる
      1. libcocos2d iOS.a が 309.8MB になった