SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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/#

Contenu connexe

En vedette

コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapコードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapTomohiro Kumagai
 
使った気になれるFirebase
使った気になれるFirebase使った気になれるFirebase
使った気になれるFirebaseFukase Motohiko
 
AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話Tomohiro Kumagai
 
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorpSwift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorpTomohiro Kumagai
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)Kenji Tanaka
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3toyship
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileTomohiro Kumagai
 
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftTomohiro Kumagai
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeTomohiro Kumagai
 

En vedette (9)

コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapコードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
 
使った気になれるFirebase
使った気になれるFirebase使った気になれるFirebase
使った気になれるFirebase
 
AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話
 
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorpSwift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
 
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
 

Similaire à Xcode bot

福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介Mori Shingo
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behaviortoyship
 
デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和schoowebcampus
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationYuichiro Saito
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~Saki Homma
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)Yoshiki Ushida
 
Creators'night#3今井
Creators'night#3今井 Creators'night#3今井
Creators'night#3今井 Daisuke Imai
 
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布Xcode7時代のアプリ配布
Xcode7時代のアプリ配布toyship
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会codeal
 
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?kyu buns
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Tomohiro Kumagai
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakataVOYAGE GROUP
 
Watch kit解説と実際のtips
Watch kit解説と実際のtipsWatch kit解説と実際のtips
Watch kit解説と実際のtips篤 富田
 
20190628 iot central_demo
20190628 iot central_demo20190628 iot central_demo
20190628 iot central_demoSyota Yano
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~Saki Homma
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏Yuta Matsumura
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜Mitsuru Katoh
 

Similaire à Xcode bot (20)

福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behavior
 
デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)
 
Creators'night#3今井
Creators'night#3今井 Creators'night#3今井
Creators'night#3今井
 
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
AppCodeNight testcode
AppCodeNight testcodeAppCodeNight testcode
AppCodeNight testcode
 
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
Watch kit解説と実際のtips
Watch kit解説と実際のtipsWatch kit解説と実際のtips
Watch kit解説と実際のtips
 
20190628 iot central_demo
20190628 iot central_demo20190628 iot central_demo
20190628 iot central_demo
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
 
D+IOプロジェクト
D+IOプロジェクトD+IOプロジェクト
D+IOプロジェクト
 

Plus de toyship

Can we live in a pure Swift world?
Can we live in a pure Swift world?Can we live in a pure Swift world?
Can we live in a pure Swift world?toyship
 
Swift Protocol and Selector
Swift Protocol and SelectorSwift Protocol and Selector
Swift Protocol and Selectortoyship
 
My first tvOS
My first tvOSMy first tvOS
My first tvOStoyship
 
3D touch for iOS
3D touch for iOS3D touch for iOS
3D touch for iOStoyship
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9toyship
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so ontoyship
 
はじめてのWKInterfaceController
はじめてのWKInterfaceControllerはじめてのWKInterfaceController
はじめてのWKInterfaceControllertoyship
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOStoyship
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するtoyship
 
AVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケールAVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケールtoyship
 

Plus de toyship (10)

Can we live in a pure Swift world?
Can we live in a pure Swift world?Can we live in a pure Swift world?
Can we live in a pure Swift world?
 
Swift Protocol and Selector
Swift Protocol and SelectorSwift Protocol and Selector
Swift Protocol and Selector
 
My first tvOS
My first tvOSMy first tvOS
My first tvOS
 
3D touch for iOS
3D touch for iOS3D touch for iOS
3D touch for iOS
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
はじめてのWKInterfaceController
はじめてのWKInterfaceControllerはじめてのWKInterfaceController
はじめてのWKInterfaceController
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOS
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
AVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケールAVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケール
 

Xcode bot