Xcode bot

Post on 15-Jan-2015

596 views 5 download

description

 

Transcript of Xcode bot

XCODE BOT@TachibanaKaoru

2014/02/12

自己紹介

• @TachibanaKaoru

• 渋谷のgenesixで働くiOSエンジニアです

• ブログ:http://www.toyship.org/

• こんなアプリとか作ってます。

XCODE BOTについて

BOTとは

• Apple 公式 CI ツール

• Xcode5とMavericksが必要

• Build,Test,Analysis,Archiveができます

BOTでCIしたことがある方は どのくらいいらっしゃいますか?

……お一人だけでした。 (>人<)

BOTとは

BOTのインテグレーション結果はブラウザからだけではなく、Xcodeの中でも見られます

BOTとは

サーバーにデバイスをつないでおくと、UnitTestを実行してくれます

BOTとは

テスト結果が(無駄に)かっこいい

BOTとは

BIG SCREENも(無駄に)かっこいい 仕事している気になれます

BOTとは

ipaだけではなく、dSYMファイルを含んだArchiveも インテグレーションごとの生成されます。 Deviceで直接アクセスすると、ここからアプリをインストールすることも可能です。

BOT の設定

• 基本的な手順はこの二つ

• リポジトリを Xcode serverに設定

• 設定されたリポジトリからBotを作成

BOT の設定

• 1つのBOT は下記の要素があります

• リポジトリ (Project Aなど)

• ブランチ ( v1.0, developingなど…)

• スキーマ (テストのみ,Archiveのみ、など)

BOT の設定

BOTで使うスキーマは、スキーマ管理画面から、スキーマの公開をすることが必要です。

BOTで困ったとき• おそらく誰もがひっかかるのは、証明書・

Provisioning Profile周辺だと思います。

• Mavericksのバージョンや「これをすれば絶対大丈夫」という方法はいまいちわかりません。いろいろといじっているうちにできた、という感じ。

BOTで困ったとき

• 次の三つを全部試せばおそらく大丈夫だと思います。

BOTで困ったとき• 1:Xcode Serverにチームアカウントを登録する。

• 会社なら会社用Apple ID + password

• 個人なら個人用Apple ID + password

• 複数のチームを登録することも可能。

BOTで困ったとき• 2:キーチェーンの証明書のコピー

• ログインキーチェーンからシステムキーチェーンへ関連証明書を全部コピー

• (最新のBotサーバーはここを自動でやってくれているような気もします。)

BOTで困ったとき• 3:下記のフォルダーのProvisioning Profileをすべて下記へコピー

• from: ~/Library/MobileDevice/Provisioning\ Profiles/

• to: /Library/MobileDevice/Provisioning\ Profiles/

• ただし、chownなどが必要

BOTの良いところ

• ipaおよびアーカイブファイルを作ってくれます。Provisioning Profileの配布も含めてやってくれます。

• これを自社内で全部できるのはセキュリティ上Good。

BOTの良いところ

• サーバーにつないでおくと、その端末でテストを走らせてくれます。

• USB Portの数だけ実機でテスト可能。

BOTの良いところ

• 将来性がある

• (今は全然だめですが、たぶんおそらく)将来的には自分で証明書やProvisioning

Fileの更新と取得をしてくれます。

BOTの悪いところ

• iOS、Mac以外には対応しない。

• Androidは無理。

BOTの悪いところ

• CocoaPodsは難しそうです。

• Git Submoduleには対応しています。

BOTの悪いところ

• CocoaPods対応については、このあたりの

Issueにトリックがあるらしい。

• https://github.com/CocoaPods/guides.cocoapods.org/issues/7

• https://github.com/CocoaPods/blog.cocoapods.org/issues/21

BOTの悪いところ

• プラグインがない

• コードカバレッジ測定したい…とかは無理

• ビルド前後スクリプトも難しい場合がある

• 応用がきかない

BOTが向いている人• あんまりビルドスクリプトたくさん書きたくない。シンプルにビルドできればいいよ

• とにかく簡単にipaを配布したい

• CocoaPodsよりSubmoduleが好き

• Apple好き

BOTが向いていない人• ビルドスクリプトバリバリ書くよ

• うちAndroidアプリもあるんだよね……

• CocoaPodsなしじゃ生きていけない!

• 最近 Apple 大きな顔しすぎじゃね?

詳しい情報は• もう少し詳しい設定方法をブログに書いてます。

• http://www.toyship.org/archives/1519

• 公式情報はこちら

• Xcode Continuous Integration Guide

• Scheme Configuration Help

• Log Navigator Help

• https://help.apple.com/advancedserveradmin/mac/3.0/#