xcodeの画面を使わずコマンドでiOSアプリのビルドとパッケージングをします。
コマンドはxcodeコマンドラインツールを使用します。
まずはバージョンを確認します。
$ xcodebuild -version Xcode 9.0
ここで表示されたものが意図したバージョンであれば問題ありません。
別のものが表示された場合は下記のの手順で変更することができます。
現在選択されているxcodeを確認します。
$ xcode-select -p /Applications/Xcode.app/Contents/Developer
別のバージョンのxcodeに変更します。
$ sudo xcode-select -s '/Applications/Xcode 8.app/Contents/Developer' $ xcodebuild -version Xcode 8.0
続いてプロジェクトをビルドします。
iphoneアプリのプロジェクトがあるディレクトリへ移動し、ビルドコマンドを実行します。
$ xcodebuild -workspace ./XXXXXXXX.xcworkspace -scheme develop -configuration Debug archive -archivePath ./build/
「-workspace」でプロジェクト、「-scheme」でスキーム(環境)、「-archivePath」で出力先をそれぞれ指定しています。
コマンドが成功すると出力先に*.xcarchiveのファイルが作成されます。
次にこれをパッケージングします。
パッケージングする際に、アカウントID等のオプションを指定したファイルを作成します。
$ cd ./build $ vi ExportOptions.plist
下記ののようにファイルを記述します。
teamIDはキーチェーンから見れる証明書のユーザーIDです。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>compileBitcode</key> <false/> <key>method</key> <string>ad-hoc</string> <key>signingStyle</key> <string>automatic</string> <key>stripSwiftSymbols</key> <true/> <key>teamID</key> <string>XXXXXXXXXXX</string> <key>thinning</key> <string><none></string> </dict> </plist>
ファイルを記述できたらパッケージングのコマンドを実行します。
実行引数に先ほど作成したファイルを指定します。
$ xcodebuild -exportArchive -archivePath ./build/XXXXXXX.xcarchive -exportPath ./build -exportOptionsPlist ./build/exportOptions.plist
コマンドが完了すると*.ipaファイルが作成されます。
今回は自力でiphoneアプリの自動ビルド環境を作成しようとしコマンドで実行できるようにしました。
前回作成したmac上のjenkinsからコマンドを実行します。