CordovaでのGradleによるiOS Xcode buildからの〜testFlight!!! 日本語のプロジェクト名もOK
Cordovaによるプロジェクトを進めているが、一つ困ったことがあった。
Xcodeのビルドが面倒なのよ。。。(笑
面倒な理由が以下の例
- 日本語でプロジェクト名が作れない。・・・Buildさえ出来ないからね。。。
- なんか、色々とAppleに引きずられて、自動ビルドとかの文化が無いんじゃないの?
- コマンドラインツールもあるのでshellでなんとかなりそうだけど、コマンドもカオスだよね
- AdHocリリースするのは良いんだけど、いちいちプロビジョニングとか、開発者に渡さないとならんし、めんどくせぇ。。。
- まあ、その他諸々。
で、いろいろ調べましたよ。うん、いろいろと。
Gradleの Xcode Build プラグインを作ってくれてる、神な人が・・・!
素晴らしすぎます!
testFlightや、HockeyAppなどにも対応してるので、
gradleコマンドで、一発でAdHocがリリースできます。
※ 残念ながら、testFlightは2015/2/26で終了・・・現在iTunes Connect版を作成中?みたい
ここに、アプリ名や、BundleIDなどの設定をすれば、自由にコントロールできる。
ミニマムだと、こんな感じですかねー(確認はしてないので、調整して下さい)
これを、Cordovaなら、/platforms/ios/build.gradle
として保存します。
buildscript {
repositories {
maven {
url('http://openbakery.org/repository/')
}
mavenCentral()
}
dependencies {
classpath group: 'org.openbakery', name: 'xcodePlugin', version: '0.9.+'
}
}
apply plugin: 'xcode'
xcodebuild {
sdk = 'iphoneos'
target = 'target-project'
scheme = 'target-project'
configuration = 'Debug'
sdk = 'iphoneos'
signing {
identity = 'jp.hoge.target-project'
certificateURI = 'file://localhost/target-project/platforms/ios/Development.p12'
certificatePassword = signingCertificatePassword // e.g. 'secret'
mobileProvisionURI = 'file://localhost/target-project/platforms/ios/Development.mobileprovision'
}
infoplist {
bundleIdentifier = 'テスト用のBundleID'
bundleDisplayName = 'テスト用のアプリ名(日本語名でもOK)'
version = 0.0.1 // 適当に日付とかで組み立てればOK
}
testflight {
apiToken = 'testFlight API Token'
teamToken = 'testFlight team Token'
notes = 'Release notes for the build'
}
}
さらに、gulp.jsによるスクリプトと組み合わせるよー
これで、本体ビルドして、gradleを自動実行させることが可能になりました。
まずは準備。次のフォルダを用意します。
src/platforms/ios
このフォルダに、次のファイルをコピー
Development.p12 // CodeSignの鍵
Development.mobileprovision // CodeSignのプロビジョニングファイル
build.gadle // 上記のxcode buildタスクの入った、gradleファイル
このフォルダをリポジトリ管理して、再配布を簡略化してます。
セキュリティ的にどーのこーのとかいうプロジェクトだったら、
どこかセキュリティ的にもーまんたいなサイトに置いておけば良いんじゃ無かろうかと。
そして、Gulpの準備
必要なモジュールをインストールして。。。
npm install --save-dev run-sequence
npm install --save-dev gulp-shell
こちらが、ミニマムなコード
var runSequence = require('run-sequence');
var shell = require("gulp-shell");
////////////////////
// gradle build ios
////////////////////
gulp.task('gradle-ios', function () {
runSequence('build', 'cordova-build-ios', 'platforms-ios-copy', 'gradle-build-ios');
});
// build ios platform.
gulp.task('cordova-build-ios', shell.task([
'cordova build ios'
]));
// copy local platform.
gulp.task('platforms-ios-copy', function () {
return gulp.src(['src/platforms/ios/**/*.*'])
.pipe(gulp.dest('platforms/ios'));
});
// packaging Android
gulp.task('gradle-build-ios', shell.task([
'cd ./platforms/ios;gradle --daemon integration' // integrationはGradleタスクなので、プロジェクトに応じて設定してね。
]));
そして、たぶん、みんなが幸せになれるコマンドを叩く。
gulp gradle-ios
神プラグインに感謝。
Author And Source
この問題について(CordovaでのGradleによるiOS Xcode buildからの〜testFlight!!! 日本語のプロジェクト名もOK), 我々は、より多くの情報をここで見つけました https://qiita.com/madaran0805/items/43ead2add4fd9335f017著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .