Help us understand the problem. What is going on with this article?

iPhoneアプリをGradleでビルドしてDeployGateで自動配布する方法

More than 5 years have passed since last update.

iOSアプリをビルドする際に、普通だったらxcodeでボタンぽちぽちしてビルドして〜ってやると思います
このやり方だと、xcodeのUIがある日突然変わった時など、結構困りますよね(自分だけ?)
そんなとき、コマンドでビルドからその先まで出来たら簡単ってこと、あると思います!
ってことで今回はGradleでビルドからDeployGateにアップロードするまでを自動化してみたいと思います

DeployGateの準備

DeployGateがつい先日iOS対応しましたね
ただ、普通にアカウント作ってもipaファイルをアップロードすることは今の所出来ません
beta programというものに入るとアップロード出来るようになります
まだアカウント持ってない人やbeta programに入ってない方は先にやっておいて下さい
https://deploygate.com/beta_program

gradleの準備

まずは今回使うビルドシステムであるgradleを準備しないと始まりませんね
OSXだとhomebrewで入ります、入れましょう

$ brew install gradle

ちなみに、今だとgradle-1.10がインストールされました

build.gradleの準備

次に、ビルドしたいiOSアプリのプロジェクト直下にbuild.gradleファイルを作ります
こんな感じになりました
ちなみに、Testっていう名前のプロジェクトです

buildscript {
    repositories {
        maven {
            url('http://openbakery.org/repository/')
        }
        mavenCentral()
    }
    dependencies {
        classpath group: 'org.openbakery', name: 'xcodePlugin', version: '0.9.+'
        classpath 'com.deploygate:gradle:0.5'
    }
}
apply plugin: 'xcode'
apply plugin: 'deploygate'

xcodebuild {
    sdk = 'iphoneos'
    target = 'Test'
    scheme = 'Test'
    workspace = 'Test.xcworkspace' //cocoapodを使用している時のみ指定
    signing {
        identity = 'iPhone Distribution: NAME (...)' //キーチェーンアクセスの証明書に載っているのを書く
        mobileProvisionURI = 'file://localhost/(.mobileprovisionまでのfile path)' //プロジェクト直下にデベロッパーサイトからダウンロードしたTest.mobileprovisionを置いておくと便利
    }
}

deploygate {
    userName = 'deploygateのユーザー名'
    token = 'deploygateのapi token'

    apks {
        ios {
            sourceFile = file("ipaファイルまでのfile path")
            message = "message"
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}

個別に詳しくはコメントで書いてあります

wrapperのダウンロード

用意したら、次にwrapperタスクを実行しましょう
これで他の人も同じバージョンのgradleを使用することが出来て便利ですね

$ gradle wrapper

以後は作成した./gradlewをgradleコマンドの変わりに使用します

ビルドの実行

さてビルドをしましょう!

$ ./gradlew codesign

これで問題なければipaファイルが作成されます!
そのfile pathをdeploygate内のsourceFileに書きましょう
これで以後、このように一発でDeployGateにアップロード出来ます

$ ./gradlew codesign uploadDeployGate

便利!!!!!!!!!!!!!!!!!!

おわりに

build.gradle内のコメントにも書いてありますが、テスト端末が増えて来てUDIDが増えてくると.mobileprovisionの管理が大変になってくる気がします
そんな時はプロジェクト直下に.mobileprovisionを置いておき、UDIDが増減して新しくなるたびに上書きして保存すれば常に一個で管理出来るので便利かなと思いました

あと、今回使った便利なgradleプラグインのgradle-xcodePluginにDeployGateも組込みたいですね

参考

https://github.com/openbakery/gradle-xcodePlugin

https://github.com/DeployGate/gradle-deploygate-plugin

iPhoneアプリをmakeコマンド一発でビルドしてDeployGateで自動配布する方法

ipaファイル生成とDeployGateへのアップロードをXcode上で自動化する

henteko
物を作ってます
https://henteko07.com
deploygate
毎日のフィードバックで、アプリ開発をもっと楽しく。DeployGateを運営しています。
https://deploygate.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした