SlideShare a Scribd company logo
Copyright © DeNA Co.,Ltd. All Rights Reserved.
AKIBA.swift 第10回
2017/01/31 (Tue)
平田敏之@DeNA
Xcodeの管理を楽に
– Jenkins編 -
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 平田 敏之@DeNA
⁃ 経歴
• GWの開発 → ホムペサービスの開発、iOSアプリの開発 → SWET
⁃ SWET (Software Engineer in Test)
• 事業サポートチーム / テスト基盤チーム
• ミッション
⁃ DeNAサービス全般の品質向上
⁃ DeNAエンジニアの開発生産性向上
⁃ 私がやっていること(の一部)
• クライアントアプリ周りのテスト戦略、自動テストの開発
• CI/CD環境整備
• テスト基盤環境の開発
• iOS Test Night主催(#3は2017/3/13(月)開催)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
はじめに
 バージョン管理でツラミを経験していませんか?
 そのツラミを軽減するためのサービスについて以下で発表
⁃ iOS Test Night #2
• 「バージョンアップの対応を軽減するためのサービスの構築」
• 自分たちでコントールしづらい箇所の管理を以下に軽減するか
• 発表資料:http://www.slideshare.net/tarappo/ss-71179542
 Xcodeの管理は特に大変
⁃ そこで今回は「Xcodeの管理編」
• (iOS Test Night#2の発表時には間に合わなかった話)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Xcodeのバージョンの管理のツラミ
Xcodeで苦労した経験がない人はいますか?
 1) Xcodeは複数バージョン保持していないといけない
⁃ 特にβリリースの時期は…
• ローカル環境だとxcode-installで管理している人もいるのでは
• https://github.com/KrauseFx/xcode-install
 2) Xcodeのバージョンアップで(よく)あること
⁃ ビルドが通らない
• 関連するライブラリも当然ながら
⁃ 設定が増えている
• 設定しておかないとビルドが..
⁃ サポートが打ち切られた
• この新バージョンから◯◯が使えなくなった
⁃ 例) Swift2.3…
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Xcodeのバージョンの管理における対応
 1) Xcodeの複数バージョン管理
⁃ 管理方法はKyobashi.swift #2で発表
• 発表資料 http://www.slideshare.net/tarappo/iosci
⁃ 上記をさらに改良したJenkinsプラグインをそろそろ公開
• 「Application Detector Plugin」
 2) Xcodeの新バージョンが出たら自動で(軽く)動作確認
⁃ 1)のJenkinsプラグインとAnsibleを併用し動作確認
⁃ 動作結果次第で調査をするしないを決める
Copyright © DeNA Co.,Ltd. All Rights Reserved.
1) Xcodeの複数バージョン管理(Jenkinsプラグイン)
 自身でアプリ周りの定義をすることが可能
⁃ 従ってXcode以外も対応可能でありUnityなどでも使える
 ビルド時に利用するバージョンを選択可能
⁃ 指定したバージョンがインストールされているJenkins(slave)で動作する
設定画面
ビルドパラメータ
固定化する場合
Copyright © DeNA Co.,Ltd. All Rights Reserved.
1) Xcodeのインストール方法
 Jenkinsの構成管理はAnsibileを利用
⁃ Jenkins jobを使ってJenkins自らにセットアップさせている
• iOSの場合は(主に)以下 / Androidなどのセットアップもやっています
⁃ Xcodeのインストール
• 複数指定可能
⁃ certificateファイルのimport
⁃ Provisioning Profileの設置
• 複数Developer対応
Jenkinsのslaveであれば複数マシン一気にセットアップ可能
Copyright © DeNA Co.,Ltd. All Rights Reserved.
2) バージョンアップ動作確認用システム(Xcodeの場合の挙動)
Xcodenのインストール
(Ansible)
バージョンチェック
システム
1日1回チェック
CocoaPods
Gem
Xcode
Rundeck
4) 動作確認結果を通知
1) 新バージョン通知
サンプルアプリ
(swift3)
2) Xcodeのインストー
ル
3) 動作確認
エラーが出たら調査
Copyright © DeNA Co.,Ltd. All Rights Reserved.
サンプルアプリでやっている動作確認の内容
 サンプルアプリとは?
⁃ 以下の目的で作られたアプリ(Swift3対応済)
• 各ライブラリの動作チェック用
• テスティングフレームワークのテスト用
 やっていること
⁃ バージョンアップしたライブラリに応じてやることが決まる
• ライブラリとおこなうべきアクション(fastlaneのlane)の定義書がある
⁃ Xcodeの場合は以下をおこなう
• アプリのビルド
• UI自動テスト
⁃ EarlGrey
⁃ XCUITest
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に
 自動化できそうなことは自動化してやるべきことに注力しましょう
⁃ [注意]
• 費用対効果があるので何でも自動化すればいいわけではない
⁃ 自動化のために使えるツールで公開できるものはどんどん公開して
いきますので是非ご利用ください
 まずは、
⁃ Xcode複数バージョン管理用のJenkinsプラグイン
• 公開予定なので是非ご利用ください

More Related Content

PPTX
バージョンアップの対応を軽減するためのサービスの構築
PPTX
UIテストの実行時間の短縮の方法
PPTX
iOSアプリにおけるリリースフローとCI環境
PPTX
iOSアプリ開発のCI環境 - Jenkins編 -
PPTX
Xcode10での テスト周りの進化をふりかえる
PPTX
fastlane x iOSアプリのCI
PPTX
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
PPTX
Bluepillを使ったiOS自動テストの並列化
バージョンアップの対応を軽減するためのサービスの構築
UIテストの実行時間の短縮の方法
iOSアプリにおけるリリースフローとCI環境
iOSアプリ開発のCI環境 - Jenkins編 -
Xcode10での テスト周りの進化をふりかえる
fastlane x iOSアプリのCI
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Bluepillを使ったiOS自動テストの並列化

What's hot (20)

PPTX
バージョンアップ対応を軽減するサービス:マスティフ
PPTX
iOSアプリの自動テストをはじめよう
PPTX
2017年のiOSアプリ開発におけるCI事情
PPTX
Pull request時の画面差分取得の自動化
PPTX
スマホアプリディレクターが考えていること
PPTX
DroidKaigi_devicefarm
PDF
iOSで利用できるデバイスファームのメリット・デメリットの紹介
PPTX
Androidアプリ開発のテスト環境
PPTX
Dangerでpull requestレビューの指摘事項を減らす
PPTX
fastlane snapshotの並列実行についてまとめてみた
PDF
iOSにおけるコードレビューを一歩先へ進める
PPTX
DeNAにおけるSWETの役割
PPTX
Android e2e testing at mercari
PPTX
コードレビューをより良くする Danger x Android
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
PPTX
JaSST'16 Tokyo モバイルセッション
PPTX
DeNAが取り組む Software Engineer in Test
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
PDF
OpenSTFを ECSに乗せてみた話
PPTX
5minQues - SWET近況報告
バージョンアップ対応を軽減するサービス:マスティフ
iOSアプリの自動テストをはじめよう
2017年のiOSアプリ開発におけるCI事情
Pull request時の画面差分取得の自動化
スマホアプリディレクターが考えていること
DroidKaigi_devicefarm
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Androidアプリ開発のテスト環境
Dangerでpull requestレビューの指摘事項を減らす
fastlane snapshotの並列実行についてまとめてみた
iOSにおけるコードレビューを一歩先へ進める
DeNAにおけるSWETの役割
Android e2e testing at mercari
コードレビューをより良くする Danger x Android
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
JaSST'16 Tokyo モバイルセッション
DeNAが取り組む Software Engineer in Test
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
OpenSTFを ECSに乗せてみた話
5minQues - SWET近況報告
Ad

Viewers also liked (7)

PDF
Unowned / Weak References with Closure
PPTX
AWS Startup Tech - 宇宙と雲の間に CTO安川
PPTX
JAWS UG TOHOKU 秋田支部 | IoT 通信プラットフォーム SORACOM 仕組みとサービス& IoT 最新事例
PDF
最強のセキュリティでIoTを実装する方法
PDF
Windows Azureを利用したDevOps入門
PPTX
日経ITpro EXPO2015 ソラコム特別講演: IoTのキャズムを超える by CEO玉川
PPTX
SORACOM Dev Conf #0: 新機能発表!
Unowned / Weak References with Closure
AWS Startup Tech - 宇宙と雲の間に CTO安川
JAWS UG TOHOKU 秋田支部 | IoT 通信プラットフォーム SORACOM 仕組みとサービス& IoT 最新事例
最強のセキュリティでIoTを実装する方法
Windows Azureを利用したDevOps入門
日経ITpro EXPO2015 ソラコム特別講演: IoTのキャズムを超える by CEO玉川
SORACOM Dev Conf #0: 新機能発表!
Ad

Similar to Xcodeの管理を楽に - Jenkins編 - (20)

PDF
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
PDF
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
PPTX
Open STF Plugin 作ってみた
PDF
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
PPTX
STFとAppiumをもちいたAndroidアプリの自動テスト
PDF
【Agile Conference tokyo 2011】 継続的フィードバック
PDF
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
PDF
ヒーロー島 Visual Studio 2012
PDF
楽天エンジニアライフ
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PPTX
devsami kansai 2012 #c2
PDF
ここが良かったDatadog
PDF
【サイボウズ インターンシップ2025】Webアプリケーション開発(kintone)コース説明資料
PDF
QualityとDeliveryを両立させるために僕らがやったこと
PDF
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
PPTX
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
PDF
ソフトウェア開発の現場風景
PDF
Trac Plugin Developement with Jenkins
PDF
.NET アプリを改善して実践する継続的インテグレーション
PDF
2014-04-22 Ques #4 Automation Testing of Mobage Platform
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Open STF Plugin 作ってみた
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
STFとAppiumをもちいたAndroidアプリの自動テスト
【Agile Conference tokyo 2011】 継続的フィードバック
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
ヒーロー島 Visual Studio 2012
楽天エンジニアライフ
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
devsami kansai 2012 #c2
ここが良かったDatadog
【サイボウズ インターンシップ2025】Webアプリケーション開発(kintone)コース説明資料
QualityとDeliveryを両立させるために僕らがやったこと
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
ソフトウェア開発の現場風景
Trac Plugin Developement with Jenkins
.NET アプリを改善して実践する継続的インテグレーション
2014-04-22 Ques #4 Automation Testing of Mobage Platform

More from Toshiyuki Hirata (7)

PDF
iOSにおけるパフォーマンス計測
PDF
iOSにおけるパフォーマンス計測
PDF
iOSにおける自動テストの並列化
PDF
UIテスト(Espresso)の高速化をさらにすすめる
PDF
UIテストの実行時間を短縮させる方法
PDF
我が家のLINEを中心とした情報共有
PDF
レビューのコストを削減するための施策
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおける自動テストの並列化
UIテスト(Espresso)の高速化をさらにすすめる
UIテストの実行時間を短縮させる方法
我が家のLINEを中心とした情報共有
レビューのコストを削減するための施策

Xcodeの管理を楽に - Jenkins編 -

  • 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. AKIBA.swift 第10回 2017/01/31 (Tue) 平田敏之@DeNA Xcodeの管理を楽に – Jenkins編 -
  • 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  平田 敏之@DeNA ⁃ 経歴 • GWの開発 → ホムペサービスの開発、iOSアプリの開発 → SWET ⁃ SWET (Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発 • iOS Test Night主催(#3は2017/3/13(月)開催)
  • 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. はじめに  バージョン管理でツラミを経験していませんか?  そのツラミを軽減するためのサービスについて以下で発表 ⁃ iOS Test Night #2 • 「バージョンアップの対応を軽減するためのサービスの構築」 • 自分たちでコントールしづらい箇所の管理を以下に軽減するか • 発表資料:http://www.slideshare.net/tarappo/ss-71179542  Xcodeの管理は特に大変 ⁃ そこで今回は「Xcodeの管理編」 • (iOS Test Night#2の発表時には間に合わなかった話)
  • 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. Xcodeのバージョンの管理のツラミ Xcodeで苦労した経験がない人はいますか?  1) Xcodeは複数バージョン保持していないといけない ⁃ 特にβリリースの時期は… • ローカル環境だとxcode-installで管理している人もいるのでは • https://github.com/KrauseFx/xcode-install  2) Xcodeのバージョンアップで(よく)あること ⁃ ビルドが通らない • 関連するライブラリも当然ながら ⁃ 設定が増えている • 設定しておかないとビルドが.. ⁃ サポートが打ち切られた • この新バージョンから◯◯が使えなくなった ⁃ 例) Swift2.3…
  • 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. Xcodeのバージョンの管理における対応  1) Xcodeの複数バージョン管理 ⁃ 管理方法はKyobashi.swift #2で発表 • 発表資料 http://www.slideshare.net/tarappo/iosci ⁃ 上記をさらに改良したJenkinsプラグインをそろそろ公開 • 「Application Detector Plugin」  2) Xcodeの新バージョンが出たら自動で(軽く)動作確認 ⁃ 1)のJenkinsプラグインとAnsibleを併用し動作確認 ⁃ 動作結果次第で調査をするしないを決める
  • 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1) Xcodeの複数バージョン管理(Jenkinsプラグイン)  自身でアプリ周りの定義をすることが可能 ⁃ 従ってXcode以外も対応可能でありUnityなどでも使える  ビルド時に利用するバージョンを選択可能 ⁃ 指定したバージョンがインストールされているJenkins(slave)で動作する 設定画面 ビルドパラメータ 固定化する場合
  • 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1) Xcodeのインストール方法  Jenkinsの構成管理はAnsibileを利用 ⁃ Jenkins jobを使ってJenkins自らにセットアップさせている • iOSの場合は(主に)以下 / Androidなどのセットアップもやっています ⁃ Xcodeのインストール • 複数指定可能 ⁃ certificateファイルのimport ⁃ Provisioning Profileの設置 • 複数Developer対応 Jenkinsのslaveであれば複数マシン一気にセットアップ可能
  • 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. 2) バージョンアップ動作確認用システム(Xcodeの場合の挙動) Xcodenのインストール (Ansible) バージョンチェック システム 1日1回チェック CocoaPods Gem Xcode Rundeck 4) 動作確認結果を通知 1) 新バージョン通知 サンプルアプリ (swift3) 2) Xcodeのインストー ル 3) 動作確認 エラーが出たら調査
  • 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. サンプルアプリでやっている動作確認の内容  サンプルアプリとは? ⁃ 以下の目的で作られたアプリ(Swift3対応済) • 各ライブラリの動作チェック用 • テスティングフレームワークのテスト用  やっていること ⁃ バージョンアップしたライブラリに応じてやることが決まる • ライブラリとおこなうべきアクション(fastlaneのlane)の定義書がある ⁃ Xcodeの場合は以下をおこなう • アプリのビルド • UI自動テスト ⁃ EarlGrey ⁃ XCUITest
  • 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. 最後に  自動化できそうなことは自動化してやるべきことに注力しましょう ⁃ [注意] • 費用対効果があるので何でも自動化すればいいわけではない ⁃ 自動化のために使えるツールで公開できるものはどんどん公開して いきますので是非ご利用ください  まずは、 ⁃ Xcode複数バージョン管理用のJenkinsプラグイン • 公開予定なので是非ご利用ください