コマンドラインからiOSアプリをビルドする
JenkinsのXCode Pluginが便利なのですが、中で何をやっているか気になったので調べたところ、
普通にコマンドラインからビルドを実行していただけなので、
使っているコマンドをまとめました。
なお、以下のサンプルプロジェクトを使って確認しました。
CustomHTTPProtocol
/usr/bin/agvtool
バージョンを設定する
/usr/bin/agvtool new-version -all (VERSION_NUMBER)
xcodeのプロジェクト設定の、build部分(CFBundleVersion)を変更できます。
バージョンを確認する
/usr/bin/agvtool mvers -terse
アプリのバージョン番号を確認出来ます。
プロジェクト設定のVersionの部分ですね。
(mversはmarketing-versionの略です)
使える証明書を確認する
/usr/bin/security find-identity -p codesigning -v
1) ABCDEFGHIJKLMNOPQRSTUVWXYZ(識別子) "iPhone Developer: ota42y (XXXXXXXX識別子)"
1 valid identities found
このコンピュータで使えるcodesigningの一覧が取れます。
/usr/bin/xcodebuild
使えるSDKを確認する
/usr/bin/xcodebuild -showsdks
OS X SDKs:
OS X 10.8 -sdk macosx10.8
OS X 10.9 -sdk macosx10.9
iOS SDKs:
iOS 7.1 -sdk iphoneos7.1
iOS Simulator SDKs:
Simulator - iOS 6.1 -sdk iphonesimulator6.1
Simulator - iOS 7.1 -sdk iphonesimulator7.1
使えるSDK一覧が表示されます。
ビルド設定を表示する
/usr/bin/xcodebuild -list
プロジェクトで使えるビルド設定一覧と デフォルトで何が有効になっているかを表示できます。
Information about project "CustomHTTPProtocol":
Targets:
CustomHTTPProtocol
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
CustomHTTPProtocol
ビルドする
/usr/bin/xcodebuild -target CustomHTTPProtocol -configuration Debug build CONFIGURATION_BUILD_DIR=./app
でビルドを実行できます。
target、configurationを指定し、appディレクトリにappファイルとdSYMファイルを作成します。
appを署名してipaファイルにする
/usr/bin/xcrun -sdk iphoneos PackageApplication -v (appファイルへのフルパス) -o (保存するipaファイルのフルパス)
何故か相対パスだとうまくいきませんでした