XCODE PLAYGROUND · 2. XCODE PLAYGROUND 33 2 XCODE PLAYGROUND , - Hello World . . Xcode -
Xcode bot
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/#