PIYO - Tech & Life -

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

Tips Xcode

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

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

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;
                };