毎日毎日、コードを書きまくっているdommyです。
iPhoneもAndroidも書いてるんですが、ビルドって時間掛かりますよね?
しかも、アプリってリリースからバージョンアップまでのサイクルが短い。
直してはテスト、直してはテスト。もううんざりです。
ってな訳でCIサーバを用意してみました。
今回はiPhoneのアプリビルド方法を書きます。
環境
プロジェクト管理はこんな感じで行なっていると考えてください。あくまで理想です、理想。
JenkinsからデバイスへはTestFlight的な何かを入れたいんですけどね。
まぁ、ipaとかそのままインストール出来るんで問題ないんですけど。
で、JenkinsでiPhone用プロジェクトを作成しますが、
Shellでipaまで作成します。
ビルドスクリプト
いろいろJenkinsの設定をして、ビルドのところにシェルスクリプトを書いきます。Xcodeのビルドも出来るのですが、ローカルで出来るか実行してからJenkinsに移しているので、
スクリプトをそのまま書いちゃってます。
#!/bin/sh #################################################### # author dommy # created 2012-11-14 # Jenkins Build Script for Sample iOS App #################################################### # Environment Variables SDK="iphoneos" # change these by environment SRCROOT=${WORKSPACE} PROVISIONING_ID="243F24-2233F-39C2-AEDD-192FE93B3" USER_HOME="/Users/jenkins" KEYCHAIN_PASSWORD="keychain password" PROVISIONING_PATH="${USER_HOME}/Library/MobileDevice/Provisioning Profiles/${PROVISIONING_ID}.mobileprovision" KEYCHAIN_PATH="${USER_HOME}/Library/Keychains/login.keychain" PROJECT_NAME="SampleApp" CODE_SIGN_IDENTITY="iPhone Developer: dommy!" # crean up old artifacts rm -rf "${SRCROOT}/artifacts" security list-keychains -s ${KEYCHAIN_PATH} security default-keychain -s ${KEYCHAIN_PATH} security unlock-keychain -p ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} ########## BUILD with DEBUG CONFIGURATION ########## # Environment Variables CONFIGURATION="Debug" OUTPUT_APP_DIR="${SRCROOT}/artifacts/${CONFIGURATION}/app" OUTPUT_IPA_DIR="${SRCROOT}/artifacts/${CONFIGURATION}/ipa" # create output directory mkdir -p $OUTPUT_APP_DIR mkdir -p $OUTPUT_IPA_DIR # build project. creating .app file xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk "${SDK}" -configuration ${CONFIGURATION} -target ${PROJECT_NAME} clean build install DSTROOT="${OUTPUT_APP_DIR}" # create .ipa file xcrun -sdk "${SDK}" PackageApplication "${OUTPUT_APP_DIR}/Applications/${PROJECT_NAME}.app" -o "${OUTPUT_IPA_DIR}/${PROJECT_NAME}.ipa" --sign "${CODE_SIGN_IDENTITY}" --embed "${PROVISIONING_PATH}"
と、こんな感じでビルドスクリプトを書いて、"Build Now"
すると、workspaceに.ipaファイルが出来ますので、それをインストールしてダウンロード。
ホントはここをOTAにしたいところですが、まだ先の話。
(いずれはします。)
で、これを書いたのでは、User Interaction is not allowedってエラーが起きて、
解決方法を書いておきたかったからなのですが、
それはまた次回書きます。
0 件のコメント:
コメントを投稿