[iPhone SDK] Three20のリンクをさらにやりやすくする
今までの設定では,よくよく考えると,ひとつ不都合がある.
Three20のビルドターゲットは,Debug or Releaseとiphoneos or iphonesimulator.
Three20のスタティックライブラリをリンクしたいアプリケーションが,Debug, Release, AdHoc, AppStoreの4つのターゲットを持つとすると,わざわざ,Three20の方でもその4つのターゲットを追加して,ビルドすることになる.しかも,AppStore,AdHoc用,ともにiPhone向けのReleaseビルドと同じバイナリでいいため,これはあまりにも非効率的だ.
そこで,Three20のプロジェクトのビルドフェーズにスクリプトを追加して,なんとかする.
ターゲットを右クリックでビルドフェーズにスクリプトを追加できる.
さらに,スクリプトのプロパティのスクリプト欄にスクリプトを書けば,指定した順番で実行できる.
if [ "$BUILD_STYLE" = 'Release' ]
then
echo 'Release build'
if [ -d $SRCROOT/build/AdHoc-$PLATFORM_NAME ]
then
echo already exists
else
ln -s $SRCROOT/build/$BUILD_STYLE-$PLATFORM_NAME $SRCROOT/build/AdHoc-$PLATFORM_NAME
fi
if [ -d $SRCROOT/build/AppStore-$PLATFORM_NAME ]
then
echo already exists
else
ln -s $SRCROOT/build/$BUILD_STYLE-$PLATFORM_NAME $SRCROOT/build/AppStore-$PLATFORM_NAME
fi
fi
ここで,$SRCROOT等の,環境変数を使っているが,これらは,開発ドキュメントで確認できる.ビルド時のターゲットプラットフォームなんかを動的に指定できる.