LoginSignup
11
11

More than 5 years have passed since last update.

JenkinsでCocos2d-xのiOSアプリをビルドしてみる

Last updated at Posted at 2014-12-03

概要

Jenkinsを使って、iOSアプリのビルドからHockeyAppへのアップロードを自動化する。
ジョブはスレーブのMacに実行させる。
Gitのリポジトリを監視し、変更があればビルドして、HockeyAppへアップロードする。
今回は Cocos2d-x の iOS アプリをビルドする。

環境

  • master
    • CentOS 6.6 (Final)
    • Jenkins 1.580.1
  • slave
    • OS X Yosemite 10.10.1
    • iOSアプリをビルドできる環境

前提

準備

Git Pluginをインストール

masterのJenkinsにアクセスして、以下を実施する。

  1. [Jenkinsの管理] > [プラグインの管理] を選択する
  2. [利用可能] タブを選択し、[フィルター] に [Git Plugin] と入力する
  3. 一覧の [Git Plugin] をチェックする
  4. 画面下部の [ダウンロードして再起動後にインストール] を選択する

しばらくして再アクセスすると、プラグインが利用可能になっている。

認証情報を追加する

Git-hubなどにアクセスする際に使用する認証情報を登録する。

  1. [Jenkinsの管理] > [認証情報の管理] を選択する
  2. [認証情報の追加] > [SSHユーザ名と秘密鍵] を選択する
  3. [ユーザ名][説明]を入力し、[秘密鍵]を要件に合わせて選択して入力する
  4. 画面下部の [保存] を選択する

iOSのプロビジョニングプロフィールのUUIDを確認する

$ cd ~/Library/MobileDevice/Provisioning Profiles
$ ls -l

一覧のファイル名からあたりをつける。

ジョブを作成する

ジョブを追加

  • [新規ジョブ作成] を選択する
    • ジョブ名に空白は含まないようにする
  • [フリースタイル・プロジェクトのビルド] を選択

古いビルドの破棄

実行するノードを制限

ソースコード管理

  • Git-hubやbitbucketのリポジトリのURLを設定する
  • Credentialsは追加した認証情報を選択する

ビルド・トリガ

  • 15分に一回確認する

ビルド手順を追加する

[ビルド手順の追加] > [シェルの実行] を選択して、以下コマンドを実行する。

環境のクリア

# git clean
git clean -f -d
git checkout -- .

# clean
rm -rf bin/

# xcode clean
xcodebuild \
    -project "${WORKSPACE}/proj.ios_mac/置き換える.xcodeproj" \
    -configuration Release \
    -target "置き換える" \
    -sdk iphoneos8.1 \
    CONFIGURATION_BUILD_DIR="${WORKSPACE}/bin/release/ios" \
    clean

ビルド

xcodebuild \
    -project "${WORKSPACE}/proj.ios_mac/置き換える.xcodeproj" \
    -configuration Release \
    -target "置き換える" \
    -sdk iphoneos8.1 \
    CONFIGURATION_BUILD_DIR="${WORKSPACE}/bin/release/ios" \
    PROVISIONING_PROFILE="置き換える" \
    CODE_SIGN_IDENTITY="iPhone Distribution: 置き換える"

リネームと圧縮

pushd bin/release/ios
mv "置き換える iOS.app" "置き換える.app"
mv "置き換える iOS.app.dSYM" "置き換える.app.dSYM"
zip -9r "置き換える.app.dSYM.zip" "置き換える.app.dSYM"
popd

ipaファイルを作成

xcrun \
    -sdk iphoneos8.1 \
    PackageApplication \
    -v "${WORKSPACE}/bin/release/ios/置き換える.app" \
    -o "${WORKSPACE}/bin/release/ios/置き換える.ipa"

HockeyAppにアップロード

curl \
    -F "status=2" \
    -F "notify=0" \
    -F "notes=Some new features and fixed bugs." \
    -F "notes_type=0" \
    -F "ipa=@bin/release/ios/置き換える.ipa" \
    -F "dsym=@bin/release/ios/置き換える.app.dSYM.zip" \
    -H "X-HockeyAppToken: 置き換える" \
    https://rink.hockeyapp.net/api/2/apps/置き換える/app_versions/upload

参考サイト

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11