iOSでAlureを使うための準備

こちらを参考にビルドします。私の環境では修正が必要な箇所が異なっていたのでメモ。

flat-leon.hatenablog.com

AlureをiOSシミュレーター向けにビルドする

cmake . -DCMAKE_TOOLCHAIN_FILE=./ios-cmake/toolchain/iOS.cmake -DIOS_PLATFORM=SIMULATOR64
  • CMakeCache.txt を修正

includeパス指定が;で連結されている場所を(半角スペース)に置換する。

  • make
make
  • libalure-static.a を *.o に展開
ar -x libalure-static.a
  • *.o ファイルを全てXcodeプロジェクトに追加。

Alureを実機向けにビルドする

上記手順で作成されるライブラリはシミュレーター向け(x86_64アーキテクチャのみ対応)となっているため実機での実行ができません。 実機で実行できるようにするには実機向けにビルドする必要があります。

手順は同じでCMakeのオプション(最後の部分)を書き換えるだけです。

cmake . -DCMAKE_TOOLCHAIN_FILE=./ios-cmake/toolchain/iOS.cmake -DIOS_PLATFORM=IOS

今度は実機のアーキテクチャ(armv7/armv7s/arm64)にしか対応していないため、シミュレーターで実行できなくなります。

一度のビルドでarmv7/armv7s/arm64/x86_64全てに対応させるオプションは無いようなので シミュレーター向けと実機向けのライブラリを自分で統合します。

ユニバーサル対応する

lipoコマンドでシミュレーター向けライブラリと実機向けライブラリを統合してユニバーサルライブラリを作成します。

xcrun -sdk iphoneos lipo -create [実機向けライブラリ] [シミュレーター向けライブラリ] -output [出力パス]

全ての *.o ファイルに対して上記コマンドを適用したら完了です。

出来上がったライブラリをXcodeプロジェクトに追加するとシミュレーター/実機の両方で実行できるようになります。

補足

iTunes Storeに申請する場合は、シミュレーター用ライブラリを除外する必要があるので注意が必要です。