Xcode bot

30
XCODE BOT @TachibanaKaoru 2014/02/12

description

 

Transcript of Xcode bot

Page 1: Xcode bot

XCODE BOT@TachibanaKaoru

2014/02/12

Page 2: Xcode bot

自己紹介

• @TachibanaKaoru

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

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

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

Page 3: Xcode bot

XCODE BOTについて

Page 4: Xcode bot

BOTとは

• Apple 公式 CI ツール

• Xcode5とMavericksが必要

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

Page 5: Xcode bot

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

Page 6: Xcode bot

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

Page 7: Xcode bot

BOTとは

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

Page 8: Xcode bot

BOTとは

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

Page 9: Xcode bot

BOTとは

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

Page 10: Xcode bot

BOTとは

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

Page 11: Xcode bot

BOTとは

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

Page 12: Xcode bot

BOT の設定

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

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

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

Page 13: Xcode bot
Page 14: Xcode bot

BOT の設定

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

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

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

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

Page 15: Xcode bot

BOT の設定

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

Page 16: Xcode bot

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

Provisioning Profile周辺だと思います。

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

Page 17: Xcode bot

BOTで困ったとき

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

Page 18: Xcode bot

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

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

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

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

Page 19: Xcode bot

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

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

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

Page 20: Xcode bot

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

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

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

• ただし、chownなどが必要

Page 21: Xcode bot

BOTの良いところ

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

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

Page 22: Xcode bot

BOTの良いところ

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

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

Page 23: Xcode bot

BOTの良いところ

• 将来性がある

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

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

Page 24: Xcode bot

BOTの悪いところ

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

• Androidは無理。

Page 25: Xcode bot

BOTの悪いところ

• CocoaPodsは難しそうです。

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

Page 26: Xcode bot

BOTの悪いところ

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

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

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

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

Page 27: Xcode bot

BOTの悪いところ

• プラグインがない

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

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

• 応用がきかない

Page 28: Xcode bot

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

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

• CocoaPodsよりSubmoduleが好き

• Apple好き

Page 29: Xcode bot

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

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

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

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

Page 30: Xcode bot

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

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

• 公式情報はこちら

• Xcode Continuous Integration Guide

• Scheme Configuration Help

• Log Navigator Help

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