1. henteko

    No comment

    henteko
Changes in body
Source | HTML | Preview
@@ -1,106 +1,106 @@
-iOSアプリをビルドする際に、普通だったらxcodeでボタンぽちぽちしてビルドして〜ってやると思います
-このやり方だと、xcodeのUIがある日突然変わった時など、結構困りますよね(自分だけ?)
-そんなとき、コマンドでビルドからその先まで出来たら簡単ってこと、あると思います!
+iOSアプリをビルドする際に、普通だったらxcodeでボタンぽちぽちしてビルドして〜ってやると思います
+このやり方だと、xcodeのUIがある日突然変わった時など、結構困りますよね(自分だけ?)
+そんなとき、コマンドでビルドからその先まで出来たら簡単ってこと、あると思います!
ってことで今回は[Gradle](http://www.gradle.org/)でビルドから[DeployGate](https://deploygate.com)にアップロードするまでを自動化してみたいと思います
# DeployGateの準備
-DeployGateがつい先日iOS対応しましたね
-ただ、普通にアカウント作ってもipaファイルをアップロードすることは今の所出来ません
-beta programというものに入るとアップロード出来るようになります
-まだアカウント持ってない人やbeta programに入ってない方は先にやっておいて下さい
+DeployGateがつい先日iOS対応しましたね
+ただ、普通にアカウント作ってもipaファイルをアップロードすることは今の所出来ません
+beta programというものに入るとアップロード出来るようになります
+まだアカウント持ってない人やbeta programに入ってない方は先にやっておいて下さい
https://deploygate.com/beta_program
# gradleの準備
-まずは今回使うビルドシステムであるgradleを準備しないと始まりませんね
+まずは今回使うビルドシステムであるgradleを準備しないと始まりませんね
OSXだとhomebrewで入ります、入れましょう
```shell-session
$ brew install gradle
```
ちなみに、今だとgradle-1.10がインストールされました
# build.gradleの準備
-次に、ビルドしたいiOSアプリのプロジェクト直下にbuild.gradleファイルを作ります
-こんな感じになりました
+次に、ビルドしたいiOSアプリのプロジェクト直下にbuild.gradleファイルを作ります
+こんな感じになりました
ちなみに、Testっていう名前のプロジェクトです
```groovy
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を使用することが出来て便利ですね
+用意したら、次にwrapperタスクを実行しましょう
+これで他の人も同じバージョンのgradleを使用することが出来て便利ですね
```shell-session
$ gradle wrapper
```
-以後は作成した./gradlewをgradleコマンドの変わりに使用します
+以後は作成した./gradlewをgradleコマンドの変わりに使用します
# ビルドの実行
さてビルドをしましょう!
```shell-session
$ ./gradlew codesign
```
-これで問題なければipaファイルが作成されます!
-そのfile pathをdeploygate内のsourceFileに書きましょう
-これで以後、このように一発でDeployGateにアップロード出来ます
+これで問題なければipaファイルが作成されます!
+そのfile pathをdeploygate内のsourceFileに書きましょう
+これで以後、このように一発でDeployGateにアップロード出来ます
```shell-session
$ ./gradlew codesign uploadDeployGate
```
便利!!!!!!!!!!!!!!!!!!
# おわりに
-build.gradle内のコメントにも書いてありますが、テスト端末が増えて来てUDIDが増えてくると.mobileprovisionの管理が大変になってくる気がします
+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で自動配布する方法](http://qiita.com/k_kinukawa/items/42c240a9e9e8b6cb4923)
[ipaファイル生成とDeployGateへのアップロードをXcode上で自動化する](http://qiita.com/kaz3439/items/503bb16548b395eef155)