LoginSignup
32
35

More than 5 years have passed since last update.

macでUnityのビルド〜HockeyAppへアップロードまでを自動化する手順

Posted at

Jenkinsのインストール

OS XにJenkinsをHomebrewでセットアップする
の記事を参考にインストールおよび起動コマンドのカスタマイズを行う。

Jenkinsプラグインのインストール

CloudBees Folders Plugin フォルダを作成し、ジョブを階層的に管理できるようになります
Git Plugin Gitを使用する為に必要です
Gitlab Hook Plugin Gitlab用にカスタマイズされており便利です
HockeyApp Plugin HockeyAppへのアップロードなどを簡単に行えるようになります
Xcode Plugin Xcodeでビルドするのに必要です
Build Pipeline Plugin ビルドパイプラインを作成できます
Unity3dBuilder Plugin Unityでのビルドを簡単に行えます

Unityのインストール

今回インストールするバージョンは5.0.2f1と5.1.0b6です。

Unity 5.0.2f1のインストール

  1. こちらよりダウンロードします。 ※パッチ適用版をダウンロードする場合はこちら
  2. ダウンロードしたdmgファイルを実行します。
  3. 画面に従いインストールします。
  4. アプリケーションフォルダ配下に「Unity」フォルダが作成されます。
  5. 「Unity」フォルダを「Unity5.0.2f1」にリネームします。
  6. 「Unity5.0.2f1」フォルダ内の「Unity」アプリケーションのエイリアスを作成し、デスクトップにコピーする。
  7. デスクトップにコピーしたエイリアスを「Unity5.0.2f1」にリネームします。
  8. デスクトップに配置したエイリアス「Unity5.0.2f1」を実行し、Unityが正常に起動するか確認。

Unity 5.1.0b6のインストール

  1. ベータ版はこちらよりダウンロードします。
  2. ダウンロードしたdmgファイルを実行します。
  3. 画面に従いインストールします。
  4. アプリケーションフォルダ配下の「Unity」フォルダを「Unity5.1.0b6」にリネームします。
  5. 「Unity5.1.0b6」フォルダ内の「Unity」アプリケーションのエイリアスを作成し、デスクトップにコピーする。
  6. デスクトップにコピーしたエイリアスを「Unity5.1.0b6」にリネームします。
  7. デスクトップに配置したエイリアス「Unity5.1.0b6」を実行し、Unityが正常に起動するか確認。

JDKのアップデート

Oracle Java SE Development KitのページよりJDKをダウンロードし、インストールする

Android SDKのインストール

Android DevelopersよりSDKをダウンロードする

Xcodeのインストール

AppStoreよりXcodeをインストールする

開発証明書およびプロビジョニングファイルのインストール

※このあたりの詳細は別途記事を書きます

まだ開発証明書を作成したことがない場合

  1. 新規に証明書をApple Developer Centerに登録する
  2. プロビジョニングファイルを作成し、開発マシンにインストールする

すでに別のマシンで開発証明書を作成している場合

  1. 開発証明書を作成したマシンでp12証明書ファイルを作成する
  2. 作成したp12ファイルを持ってきてインストールする
  3. プロビジョニングファイルをダウンロードし、開発マシンにインストールする

※プロビジョニングファイルがインストールされているかは下記のフォルダ配下のファイルを見ることで判断できます。

/Users/[ユーザ名]/Library/MobileDevice/Provisioning Profiles

プロビジョニングファイルの整理をしたい時は上記フォルダ内のファイルをすべて削除してから必要なプロビジョニングファイルを入れると良いです。

Gitlabの設定

秘密鍵/公開鍵の作成

/Users/[ユーザ名]/.ssh にid_rsaおよびid_rsa.pubがない場合は下記のコマンドを実行します。

ssh-keygen -t rsa

公開鍵の登録

/Users/[ユーザ名]/.ssh/id_rsa.pub の内容をプロジェクトの「Settings」-「Deploy Keys」に登録します。

ビルド用のワークスペースを作成する

私の場合はデスクトップにプロジェクト名のフォルダを作成し、下記のような構成にしています。

プロジェクト名が「sample」の場合

sample
 └android → androidビルド用のワークスペース
 └ios     → iOSビルド用のワークスペース
 └logs    → ビルドログ格納用

Jenkinsにジョブを追加

フォルダの作成

  1. Jenkinsで「新規ジョブ作成」もしくは「新しいジョブ」をクリックします。
    jenkins_001.png

  2. ジョブ名にはフォルダ名を入力し、「Folder」にチェックを入れ「OK」ボタンを押します。
    jenkins_002.png

  3. 表示用フォルダ名やフォルダの説明文章を入力することもできます。
    jenkins_003.png

  4. 表示用フォルダ名やフォルダの説明文章を入力した場合は下記のように表示されます。
    jenkins_004.png

ビルド用ジョブの作成

androidのビルド用ジョブ作成

  1. Jenkinsで「新規ジョブ作成」もしくは「新しいジョブ」をクリックします。

  2. ジョブ名に「android_build」、「フリースタイル・プロジェクトのビルド」にチェックを入れ「OK」ボタンを押します。
    jenkins_005.png

  3. 「ビルドのパラメータ化」にチェックを入れ、「パラメータの追加」より下記のように設定する。


    タイプ
    テキスト
    名前
    branch_name
    デフォルト値
    develop
    説明
    ビルドするブランチ名を指定します。

    タイプ
    テキスト
    名前
    target_path
    デフォルト値
     
    説明
    AssetsフォルダとProjectSettingsフォルダがトップディレクトリ以外に存在する場合に指定してください ※先頭は/から開始してください。

    タイプ
    テキスト
    名前
    bundle_id
    デフォルト値
    [デフォルトのバンドルIDを指定]
    説明
    バンドルIDを変更したい場合に指定してください

    タイプ
    テキスト
    名前
    bundle_version
    デフォルト値
     
    説明
    バンドルバージョンを変更したい場合に指定してください

    タイプ
    テキスト
    名前
    bundle_version_code
    デフォルト値
     
    説明
    バンドルバージョンコード(Android用)を変更したい場合に指定してください。

    タイプ
    テキスト
    名前
    unity_version
    デフォルト値
    4.6.3
    説明
    ビルドするUnityのバージョンを変更したい場合に指定してください。
  4. 「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
    /Users/[ユーザ名]/Desktop/sample/android

  5. 「ソースコード管理」の「Git」にチェックを入れ、「Repositories」の「Repository URL」にはgitリポジトリのURLを入力します。

  6. 「Branches to build」の「Branch Specifier (blank for 'any')」には「$branch_name」を入力します。

  7. 「ビルド」の「ビルド手順の追加」より「シェルの実行」を選択し、下記の内容を記載します。

#!/bin/bash
echo "##################################"
echo "# Build Parameter                #"
echo "##################################"
echo "branch_name        : ${branch_name}"
echo "target_path        : ${target_path}"
echo "bundle_id          : ${bundle_id}"
echo "bundle_version     : ${bundle_version}"
echo "bundle_version_code: ${bundle_version_code}"
echo "unity_version      : ${unity_version}"
echo "##################################"
echo "# Build apk file.                #"
echo "##################################"

8.「ビルド後の処理」より「Upload to HockeyApp」を選択し、下記のような設定をする。

jenkins_006.png

「Release Notes」の箇所はバージョン管理のチェンジログから持ってくるのであれば「Use Change Log」を使用してください。

iOS用のビルド用ジョブ作成

XcodeProjectファイルの作成

1.Jenkinsで「新規ジョブ作成」もしくは「新しいジョブ」をクリックします。

2.ジョブ名に「ios_build_xcodeproject」、「フリースタイル・プロジェクトのビルド」にチェックを入れ「OK」ボタンを押す。

3.「ビルドのパラメータ化」にチェックを入れ、「パラメータの追加」より下記のように設定する。


タイプ
テキスト
名前
branch_name
デフォルト値
develop
説明
ビルドするブランチ名を指定します。

タイプ
テキスト
名前
target_path
デフォルト値
 
説明
AssetsフォルダとProjectSettingsフォルダがトップディレクトリ以外に存在する場合に指定してください ※先頭は/から開始してください。

タイプ
テキスト
名前
bundle_id
デフォルト値
[デフォルトのバンドルIDを指定]
説明
バンドルIDを変更したい場合に指定してください

タイプ
テキスト
名前
bundle_version
デフォルト値
 
説明
バンドルバージョンを変更したい場合に指定してください

タイプ
テキスト
名前
unity_version
デフォルト値
4.6.3
説明
ビルドするUnityのバージョンを変更したい場合に指定してください。

4.「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
/Users/[ユーザ名]/Desktop/sample/ios

5.「ソースコード管理」の「Git」にチェックを入れ、「Repositories」の「Repository URL」にはgitリポジトリのURLを入力します。

6.「Branches to build」の「Branch Specifier (blank for 'any')」には「$branch_name」を入力します。

7.「ビルド」の「ビルド手順の追加」より「シェルの実行」を選択し、下記の内容を記載します。

#!/bin/bash
echo "##################################"
echo "# Build Parameter                #"
echo "##################################"
echo "branch_name        : ${branch_name}"
echo "target_path        : ${target_path}"
echo "bundle_id          : ${bundle_id}"
echo "bundle_version     : ${bundle_version}"
echo "unity_version      : ${unity_version}"
echo "##################################"
echo "# Build xcodeproject file.       #"
echo "##################################"

8.「ビルド後の処理」より「Trigger parameterized build on other projects」を選択し、下記のような設定をする。


Projects to build

ios_build_ipa

Add Parameters

Current build parameters

ipaファイルの作成

1.フリースタイルビルドの新規ジョブを作成し、ジョブ名を「ios_build_ipa」とする。

2.「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
/Users/[ユーザ名]/Desktop/sample/ios

3.「ビルド」の「ビルド手順の追加」より「Xcode」を選択し、下記の通り設定する。

Target
Unity-iPhone
Clean before build
☑️チェックを入れる
Configuration
Release
Pack application and build ipa?
☑️チェックを入れる
.ipa filename pattern
作成後のipaファイル名を指定(\${VERSION} と \${BUILD_DATE}を使用できます)
Code Signing Identity
署名
Unlock Keychain?
☑️チェックを入れる
Keychain path
$\{HOME}/Library/Keychains/login.keychain
Keychain password
キーチェーンにアクセスするためのパスワード
Custom xcodebuild arguments
CODE_SIGN_RESOURCE_RULES_PATH="$(SDKROOT)/ResourceRules.plist"
Xcode Project Directory
${WORKSPACE}/ios
Xcode Project File
Unity-iPhone.xcodeproj
Build output directory
${WORKSPACE}/ios/build

4.「ビルド後の処理」より「Upload to HockeyApp」を選択し、「androidのビルド用ジョブ作成」の8と同様の設定をする。

Jenkinsからビルドの実施

android_buildのジョブを選択し、左側の「パラメータ付きビルド」より各種パラメータを設定して「ビルド」を押すとandroidとiOSのビルドおよびアップロードが自動で行われるようになります。

32
35
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
32
35