iOSアプリをビルドする際に、普通だったらxcodeでボタンぽちぽちしてビルドして〜ってやると思います
このやり方だと、xcodeのUIがある日突然変わった時など、結構困りますよね(自分だけ?)
そんなとき、コマンドでビルドからその先まで出来たら簡単ってこと、あると思います!
ってことで今回はGradleでビルドからDeployGateにアップロードするまでを自動化してみたいと思います
DeployGateの準備
DeployGateがつい先日iOS対応しましたね
ただ、普通にアカウント作ってもipaファイルをアップロードすることは今の所出来ません
beta programというものに入るとアップロード出来るようになります
まだアカウント持ってない人やbeta programに入ってない方は先にやっておいて下さい
DeployGate - 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も組込みたいですね
参考
openbakery/gradle-xcodePlugin · GitHub
DeployGate/gradle-deploygate-plugin · GitHub
Xcode - iPhoneアプリをmakeコマンド一発でビルドしてDeployGateで自動配布する方法 - Qiita
iOS - ipaファイル生成とDeployGateへのアップロードをXcode上で自動化する - Qiita