dnjiro’s 9VAe blog

誰でもアニメが作れる無料ソフト9VAeきゅうべえ開発者のブログ

9VAeきゅうべえiPad版 シミュレータ実機兼用スタティックライブラリの作り方

9VAeきゅうべえiPad版がだいぶ出来上がってきた。

綺麗なiPhone/iPadアプリを作るのは、初心者の私には難しいので、iPhone/iPad用9VAeを作るプロジェクトを公開し、誰でも、9VAeきゅうべえアプリを自分で作れるようにしようと考えている。

 

そのため、9VAeライブラリの作り方を調べた。

 

iPhoneシミュレータ用と実機用のライブラリは違う

新規プロジェクトからライブラリを作るのは簡単だったが、ビルドした時のライブラリがどこにできるかが最初わからなかかった。これは、設定を変更すれば、プロジェクト内部に出力できるみたいだ。

 

次に、作成したライブラリを使うと、シミュレータでは動作するが、実機では動作しないという症状になった。これは、シミュレータMacインテルでCPUが違うので当然か。このあたりを、もくもく会で、サンフランシスコ在住のプログラマーから教えてもらった。いろんな人の知恵を借りてiPad版を作っている。

 

これにどう対応するか調べてみると、lipo というコマンドを使ってライブラリをまとめることができるみたいだ。以下の記事を参照

iOSにおける静的ライブラリ作成技法 - 渋谷ラーメン男道

 

ただ、アプリストアに申請する時に、シミュレータ用のコードが含まれていると拒否されるとの情報もある。

 

とはいえ、ダウンロードしたプロジェクトを実行した時にリンクエラーが出るのは避けたいので、1本の実機、シミュレータ兼用ライブラリを作ることにした。

Run Script を使って lipo を実行し複数のライブラリを一本化

XCodeのRun Scriptを試しに触ってみる - woshidan's loose leaf

を参考にする。

 

ライブラリプロジェクト> Build Phases > + >New Run Script Phases

Run Script行が追加されるので、以下の行を追加すると、シミュレータ用デバッグと、実機用の両方が入ったライブラリができた。

lipo -output libqvaeLib.a -create $BUILD_DIR/Release-iphoneos/libqvaeLib.a $BUILD_DIR/Release-iphonesimulator/libqvaeLib.a

この兼用ライブラリ以外に、デバッグ、実機単独のライブラリもプロジェクトに入れておくことにする。下は xcodeの設定画面

f:id:dnjiro:20171120091613p:plain