昨日紹介したxctoolはxcodebuildというコマンドを便利にラップしてくれるのですが、ipa書き出しまでは行ってくれないらしい(伝聞)です。xcodebuild
とxcrun
を使えばコマンドラインから実行できるそうなのでやってみました。
というか、ほぼここに書いてある通りです。
Ryo’s Blog » Blog Archive » XcodeのArchiveを自動化しよう
xcodebuild(1) Mac OS X Developer Tools Manual Page
xcrun(1) Mac OS X Developer Tools Manual Page
で、実際のシェルスクリプトがこちら。xcodeproj
だけでなく、xcworkspace
でももちろん実行可能。
プロビジョニングプロファイルの見分け方
面倒なのはプロビジョニングプロファイルの指定ですね。ビルドするアプリ用のプロファイルを指定しなければいけませんが、該当のディレクトリ~/Library/MobileDevice/...
に置かれているプロファイルがランダムな文字列のようなファイル名になっているのでどれが本物か一見してもわかりません。
仕方ないので、予めXcodeでビルド対象のプロビジョニングプロファイルを設定しておいた上で、生のproject.pbxproj`を覗いてみましょう。
例で言えば、SampleApp/project.pbxproj
というファイルです。このファイルをエディタで開いてPROVISIONING_PROFILE
という文字列を検索すると2箇所見つかると思います。
少し下あるnameというところを見ると、Debugの設定なのか、Releaseの設定なのかがわかりますので、自分が設定した正しいものを選んで文字列を控えておきます。
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
PROVISIONING_PROFILE = "VVVVVVVV-WWWW-XXXX-YYYY-ZZZZZZZZZZZZ";
SDKROOT = iphoneos;
VALID_ARCHS = "arm64 armv7 armv7s i386";
};
name = Debug;
};