ぴよログ

↓に移転したのでこっちは更新されません、多分。

ipa書き出しをxcodebuildとxcrunで自動化する

移転しました →

昨日紹介したxctoolはxcodebuildというコマンドを便利にラップしてくれるのですが、ipa書き出しまでは行ってくれないらしい(伝聞)です。xcodebuildxcrunを使えばコマンドラインから実行できるそうなのでやってみました。

というか、ほぼここに書いてある通りです。

Ryo's Blog » Blog Archive » XcodeのArchiveを自動化しようRyo's Blog » Blog Archive » XcodeのArchiveを自動化しようはてなブックマーク - 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;
                };