Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
gree_tech
PPTX, PDF
393 views
長寿なゲーム事業におけるアプリビルドの効率化
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-10
Engineering
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 116
2
/ 116
3
/ 116
4
/ 116
5
/ 116
6
/ 116
7
/ 116
8
/ 116
9
/ 116
10
/ 116
11
/ 116
12
/ 116
13
/ 116
14
/ 116
15
/ 116
16
/ 116
17
/ 116
18
/ 116
19
/ 116
20
/ 116
21
/ 116
22
/ 116
23
/ 116
24
/ 116
25
/ 116
26
/ 116
27
/ 116
28
/ 116
29
/ 116
30
/ 116
31
/ 116
32
/ 116
33
/ 116
34
/ 116
35
/ 116
36
/ 116
37
/ 116
38
/ 116
39
/ 116
40
/ 116
41
/ 116
42
/ 116
43
/ 116
44
/ 116
45
/ 116
46
/ 116
47
/ 116
48
/ 116
49
/ 116
50
/ 116
51
/ 116
52
/ 116
53
/ 116
54
/ 116
55
/ 116
56
/ 116
57
/ 116
58
/ 116
59
/ 116
60
/ 116
61
/ 116
62
/ 116
63
/ 116
64
/ 116
65
/ 116
66
/ 116
67
/ 116
68
/ 116
69
/ 116
70
/ 116
71
/ 116
72
/ 116
73
/ 116
74
/ 116
75
/ 116
76
/ 116
77
/ 116
78
/ 116
79
/ 116
80
/ 116
81
/ 116
82
/ 116
83
/ 116
84
/ 116
85
/ 116
86
/ 116
87
/ 116
88
/ 116
89
/ 116
90
/ 116
91
/ 116
92
/ 116
93
/ 116
94
/ 116
95
/ 116
96
/ 116
97
/ 116
98
/ 116
99
/ 116
100
/ 116
101
/ 116
102
/ 116
103
/ 116
104
/ 116
105
/ 116
106
/ 116
107
/ 116
108
/ 116
109
/ 116
110
/ 116
111
/ 116
112
/ 116
113
/ 116
114
/ 116
115
/ 116
116
/ 116
More Related Content
PPTX
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
by
gree_tech
PPTX
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
by
gree_tech
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
by
gree_tech
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
by
gree_tech
PDF
Googleのインフラ技術から考える理想のDevOps
by
Etsuji Nakai
PPTX
消滅都市5周年の運営を支えた技術とその歴史
by
gree_tech
PDF
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
by
Issei Hiraoka
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
by
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
by
gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
by
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
by
gree_tech
Googleのインフラ技術から考える理想のDevOps
by
Etsuji Nakai
消滅都市5周年の運営を支えた技術とその歴史
by
gree_tech
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
by
Issei Hiraoka
What's hot
PDF
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
by
Google Cloud Platform - Japan
PPTX
Dangerでpull requestレビューの指摘事項を減らす
by
Shunsuke Maeda
PPTX
今さら聞けない人のためのDevOps超入門
by
VirtualTech Japan Inc.
PPTX
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
by
Saki Homma
PPTX
kintoneの開発プロセスとプロジェクト管理ツール
by
Yuki Okada
PPTX
DeNAにおけるSWETの役割
by
Toshiyuki Hirata
PDF
保守性の高いアプリケーション設計について
by
TomomitsuKusaba
PDF
OWIN - .NETにおけるPSGI -
by
将 高野
PPTX
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
by
gree_tech
PDF
iOSで利用できるデバイスファームのメリット・デメリットの紹介
by
Shunsuke Maeda
PDF
Visual Studio 拡張機能の作り方
by
Yuki Igarashi
PPTX
DataEngConf NYC’18 セッションサマリー #1
by
gree_tech
PPTX
2017年のiOSアプリ開発におけるCI事情
by
Toshiyuki Hirata
PDF
iOSにおけるコードレビューを一歩先へ進める
by
Shunsuke Maeda
PDF
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
by
Serverworks Co.,Ltd.
PPTX
バージョンアップ対応を軽減するサービス:マスティフ
by
Toshiyuki Hirata
PDF
クラウド&コンテナ活用でDevOpsを加速させる!
by
Kazuto Ohara
PDF
夏サミ 2013 A2 セッション資料 #natsumiA2
by
智治 長沢
PPTX
Android e2e testing at mercari
by
Vishal Banthia
PDF
decode17
by
Yahoo!デベロッパーネットワーク
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
by
Google Cloud Platform - Japan
Dangerでpull requestレビューの指摘事項を減らす
by
Shunsuke Maeda
今さら聞けない人のためのDevOps超入門
by
VirtualTech Japan Inc.
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
by
Saki Homma
kintoneの開発プロセスとプロジェクト管理ツール
by
Yuki Okada
DeNAにおけるSWETの役割
by
Toshiyuki Hirata
保守性の高いアプリケーション設計について
by
TomomitsuKusaba
OWIN - .NETにおけるPSGI -
by
将 高野
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
by
gree_tech
iOSで利用できるデバイスファームのメリット・デメリットの紹介
by
Shunsuke Maeda
Visual Studio 拡張機能の作り方
by
Yuki Igarashi
DataEngConf NYC’18 セッションサマリー #1
by
gree_tech
2017年のiOSアプリ開発におけるCI事情
by
Toshiyuki Hirata
iOSにおけるコードレビューを一歩先へ進める
by
Shunsuke Maeda
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
by
Serverworks Co.,Ltd.
バージョンアップ対応を軽減するサービス:マスティフ
by
Toshiyuki Hirata
クラウド&コンテナ活用でDevOpsを加速させる!
by
Kazuto Ohara
夏サミ 2013 A2 セッション資料 #natsumiA2
by
智治 長沢
Android e2e testing at mercari
by
Vishal Banthia
decode17
by
Yahoo!デベロッパーネットワーク
Similar to 長寿なゲーム事業におけるアプリビルドの効率化
PPTX
Unity ゲーム開発
by
Katsutoshi Makino
PDF
Spring3.1概要x di
by
Yuichi Hasegawa
PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
PDF
バージョンアップに負けないためのプラクティス
by
Yuji Tokuda
PDF
0621 ndk game
by
cat kaotaro
PDF
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (1)
by
gree_tech
PDF
ソーシャルゲーム開発パッケージ化とネイティブアプリの取り組みと開発ノウハウ
by
Genki Yamada
PPTX
devsami kansai 2012 #c2
by
Yushi_Takagi
PDF
Redmine Applied for Large Scale
by
Rakuten Group, Inc.
PDF
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
PDF
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
by
Drecom Co., Ltd.
PPTX
Jenkinsを使おうよ
by
Yohei Oda
PDF
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
PPTX
Cibc lecture imagire
by
Takashi Imagire
PPTX
Game Development and Automation @ Agile Sapporo 2018 #1
by
Michael Tedder
PPTX
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
by
Ryusaburo Tanaka
PDF
CEDEC 2013 Unity on Windows 8
by
Akira Onishi
PDF
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
by
Mori Tetsuya
KEY
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
PDF
セプテーニさんでのセミナー
by
Tokusei Noborio
Unity ゲーム開発
by
Katsutoshi Makino
Spring3.1概要x di
by
Yuichi Hasegawa
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
バージョンアップに負けないためのプラクティス
by
Yuji Tokuda
0621 ndk game
by
cat kaotaro
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (1)
by
gree_tech
ソーシャルゲーム開発パッケージ化とネイティブアプリの取り組みと開発ノウハウ
by
Genki Yamada
devsami kansai 2012 #c2
by
Yushi_Takagi
Redmine Applied for Large Scale
by
Rakuten Group, Inc.
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
by
Drecom Co., Ltd.
Jenkinsを使おうよ
by
Yohei Oda
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
Cibc lecture imagire
by
Takashi Imagire
Game Development and Automation @ Agile Sapporo 2018 #1
by
Michael Tedder
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
by
Ryusaburo Tanaka
CEDEC 2013 Unity on Windows 8
by
Akira Onishi
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
by
Mori Tetsuya
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
セプテーニさんでのセミナー
by
Tokusei Noborio
More from gree_tech
PPTX
REALITY iOSアプリを支える開発効率化
by
gree_tech
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
PPTX
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
PPTX
Cloud Spanner をより便利にする運用支援ツールの紹介
by
gree_tech
PPTX
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
by
gree_tech
PPTX
シェアドサービスとしてのデータテクノロジー
by
gree_tech
PDF
WFSエンジニア組織のデザイン〜コンテンツ開発に集中するために〜
by
gree_tech
PPTX
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
by
gree_tech
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
by
gree_tech
PPTX
組み込み開発のテストとゲーム開発のテストの違い
by
gree_tech
PPTX
翻訳QAでのテスト自動化の取り組み
by
gree_tech
PPTX
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
by
gree_tech
PDF
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
by
gree_tech
PDF
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
by
gree_tech
PDF
Lua文化の伝承!? WFSにおけるイベントスクリプト活用術〜すべてはより良いコンテンツ制作のために〜
by
gree_tech
PPTX
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
by
gree_tech
PPTX
海外展開と負荷試験
by
gree_tech
PPTX
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
by
gree_tech
PPTX
データエンジニアとアナリストチーム兼務になった件について
by
gree_tech
PPTX
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
by
gree_tech
REALITY iOSアプリを支える開発効率化
by
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
by
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
by
gree_tech
シェアドサービスとしてのデータテクノロジー
by
gree_tech
WFSエンジニア組織のデザイン〜コンテンツ開発に集中するために〜
by
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
by
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
by
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
by
gree_tech
翻訳QAでのテスト自動化の取り組み
by
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
by
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
by
gree_tech
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
by
gree_tech
Lua文化の伝承!? WFSにおけるイベントスクリプト活用術〜すべてはより良いコンテンツ制作のために〜
by
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
by
gree_tech
海外展開と負荷試験
by
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
by
gree_tech
データエンジニアとアナリストチーム兼務になった件について
by
gree_tech
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
by
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
1.
長寿なゲーム事業におけるアプ リビルドの効率化 グリー株式会社 ソフトウェアエンジニア 石川 一太
2.
• 2015年 グリー株式会社
入社 • 2017年 ハコニワ チーム • 2018年 釣り★スタ チーム • 2020年 JapanGame4部ENグループ アプリチーム 所属 石川 一太 ソフトウェアエンジニア アプリチーム所属 自己紹介 2 アプリ側を主に担当
3.
長寿なゲーム事業におけるアプリビルドの効率化 3
4.
Webサービス主体のプラットフォーム ゲーム事業で アプリビルドの効率化や横断的対応についての事例を 紹介します。 4
5.
各サービスの説明 アプリチームが担当している 5
6.
• サービス開始 2007年 5月〜 釣り★スタ 14周年 6 •
アプリは2011 年〜 • WebViewApp + Cocos2D-JS GREE SDK
7.
• サービス開始 2007年 7月〜 アバター 14周年 7 •
アプリは2016 年〜 • WebViewApp GREE SDK
8.
• サービス開始 2007年 7月〜 踊り子クリノッペ 14周年 8 •
アプリは2011 年〜 • WebViewApp GREE SDK
9.
• サービス 開始 2008年 8 月〜 探検ドリランド 13周年 9 •
アプリは 2011年〜 • WebView App GREE SDK
10.
• サービス開始 2008年 9月〜 ハコニワ 13周年 10 •
アプリ(v2)は 2018年〜 • WebViewApp GREE SDK
11.
• サービス開始 2010年 6月〜 モンプラ 11周年 11 •
アプリは2011 年〜 • WebViewApp GREE SDK
12.
• サービス開始 2010年 9月〜 海賊王国コロンブス 11周年 12 •
アプリは2011 年〜 • WebViewApp GREE SDK
13.
長寿 サービス いずれも 13
14.
どれが好き? ⓘ Start presenting
to display the poll results on this slide.
15.
各プロダクト説明まとめ 15 タイトル 周年 アプリ開始
搭載GREE SDK 釣り★スタ 14周年 2011年〜 WebViewApp + Cocos2D-JS 踊り子クリノッペ 14周年 2011年〜 WebViewApp 探検ドリランド 13周年 2011年〜 海賊王国コロンブス 11周年 2011年〜 モンプラ 11周年 2011年〜 アバター 14周年 2016年〜 ハコニワ 13周年 2018年〜(v2)
16.
横断対応に至るまでの経緯 アプリチームとして 16
17.
横断的に対応していたわけではない もともとは 17
18.
釣り★スタ アプリのビルド効率化 横断対応へのきっかけ 18
19.
• サービス開始 2007年 5月〜 釣り★スタ 14周年 19 •
アプリは2011 年〜 • WebViewApp + Cocos2D-JS GREE SDK
20.
開発環境は使用されてますか? 20
21.
XcodeやAndroid Studioは使 用されていますか? ⓘ Start
presenting to display the poll results on this slide.
22.
2018年 3月ごろ ふりかえり 22
23.
当時 ネイティブ化によりCocos2D-JSが搭載され ビ ルドに時間が掛かっていた 釣り★スタのビルド問題 23
24.
釣り★スタ アプリのビルド環境 24 当初は最小限のビルド環境しか無かった
25.
• 作業用のPCでビルド • ビルド専用PCもやってくるが効率面ではほとんど恩恵なしのイ メージ •
ビルドPCと作業PCを兼ねていれば ビルド中は業務上の対応と かほとんど何もできない • うっかりビルド中ブランチ切り替えてしまったら問題 • アプリ配布のためのアップロードは手動 • 配布枠への手動アップロードに結構時間がかかる • アプリ枠を間違えてアップロードしてしまうことも • Androidのビルド時間は長め 当時の状況 25
26.
釣り★スタ アプリのビルド環境 26 1環境あたりのビルド時間 x
環境数 = 何時間?
27.
釣り★スタ アプリのビルド環境 27 30分 x
20枠= 10時間
28.
ビルド中は 28 もちろんビルド中のアプリ自体にはさわれな いが、高負荷のため軽めの作業しか並行でき ない。
29.
ビルド後も 29 ● 対象環境への接続確認 ● 配布のためのアップロードも手動 追加の手間も掛かっていた
30.
確実にやってくる更新として 30 ● GREE SDKの更新 ●
広告系ライブラリの更新 ● アイコンの差し替え・戻し この辺りの更新が数ヶ月に一回発生す るたびに丸一日近く何もできないに等 しい
31.
Jenkins環境欲しいですよね 31
32.
業務中にも早く効率化したい状況ではあったのだけど、 負の連鎖的な作業に追われてできなかった 32
33.
Web系の部署なので状況的にCI化が後回しに? 33
34.
ビルド以外何もできない状況・・・・ 34 配属された当初 エンジニアの本来の仕事はビルドだけではないですよね
35.
CI/CD化は、どこかでやらなければならなかったが 釣り★スタである案件が上がってそれが転機になった 35
36.
あまりにも作業効率が悪かったので、Androidのビル ドである効率化を図ります その前に 36
37.
とにかくAndroid Studioのビルドが遅いもっと早 くしたい! 37
38.
ccacheの導入 38
39.
39 ccache ccacheとは、CまたはC++のコンパイラが出力す るデータをキャッシュするソフトウェア開発ツール。 2回目以降のビルドにおいてはコンパイルを避け、 出力結果を再利用する。
40.
40 釣り★スタアプリ ではAndroidのNDKビルドの高 速化を狙って導入。 キャッシュへのヒット率にもよるが、当時の記録に よれば、導入時には12分かかってたビルドが2回目 以降に1分くらいに短縮。 ccacheの効果
41.
41 ccache キャッシュヒット率の確認 $ ccache
-s cache directory /Users/kazuta.ishikawa/.ccache primary config /Users/kazuta.ishikawa/.ccache/ccache.conf secondary config (readonly) /usr/local/etc/ccache.conf stats zero time Thu Apr 2 15:49:07 2020 cache hit (direct) 15768 cache hit (preprocessed) 24 cache miss 9894 cache hit rate 61.48 % compiler produced no output 1 ccache internal error 32 cache file missing 12 cleanups performed 0 files in cache 29802 cache size 4.9 GB max cache size 15.0 GB
42.
42 ccache キャッシュクリア $ ccache
-C Cleared cache
43.
• AndroidのNDKビルドの高速化が目的で導入 • インストールにはMacOSの場合
/system以下のread only file systemにアクセスする必要があってPCの権限 変更が必要 ccache 43 まとめ
44.
44 2019年 2月ごろ ふりかえり
45.
釣り★スタへの追加機能である案件の開発が始まり、 ビルド環境の整備が急務に 45 非効率な状況が続いていたのですが・・・
46.
• 追加機能の開発は外部に依頼 • セキュリティ上の問題から外部へはプラットフォ ーム側のコードは渡せない •
受け取ったコードの取り込みは社内で対応 • マージ後のビルドも社内環境でやる必要 • 追加機能の実装はC++でもらう形 • コード反映したらただちに検証確認をできるよう に • アプリ配布枠の増加 46 状況
47.
釣り★スタ 本体が最優先 追加機能によって釣り★スタ本体に影響がでてはならない ただし 47
48.
結局 48 CI/CD環境の導入 しかなさそう
49.
1. Slackでビルドコマンドを送信 2. hubotでjenkinsと連携 3.
jenkins 4. AppCenterへバイナリアップロード 5. 成果物アップロード完了をSlackへ通知 CI/CD化へ向けての構想 49
50.
ビルド用PC (Mac Pro)の導入 導入 50
51.
導入 51 Jenkins
52.
外部ネットワークから社内環境でビルドした い 要件 52
53.
外部会社から社内のビルド環境で釣り★スタ アプリ を更新する必要 53
54.
理由 • セキュリティ上の問題から外部へはプラットフォー ム側のコードは渡せない • 開発会社にビルドに必要なだけのPCが存在しなかっ た
55.
Slackからコマンド打って、 もらったC++コードをマージ→ビルド 思いつくのは 55
56.
Xcodeプロジェクトのマージの自動化 ここが問題に 56
57.
Android.mkをshellから書き換えればプロジ ェクトへファイルを追加できてビルド対象に なるが Android Studioの場合は 57
58.
Xcodeのプロジェクト構成を変える時に UIでファイルを追加するときは意識しないけど Xcodeの場合は 58
59.
Xcodeのプロジェクトファイルに追加設定しないと、 ビルド対象とはならないため、 なんかしらの方法でXcodeのプロジェクトファイルを 書き換えてあげる必要 方法は? 59
60.
Xcodeのプロジェクト ファイルは直接ファイル内を 書き換える想定で作られていない そもそも 60 ファイルの中身みてみるとハッシュ値があったりで
61.
Rubyのgemであるxcodeprojを使ってプロジェクト ファイルを書き換えることに そこで 61
62.
xcodeproj 書き換えの実際 1. 62 aTarget.resources_build_phase.remove_file_reference(file) ●
targetにあるresources build phaseのfileの参照を外す 〜 中略 〜 resources = project['Resources'] resources['DebugFiles'].remove_from_project ● ’DebugFiles’をプロジェクトより削除
63.
xcodeproj 書き換えの実際 2. 63 project_path
= ENV['WORKSPACE'] + '/frameworks/runtime- src/proj.ios_mac/tsurista.xcodeproj' project = Xcodeproj::Project.open(project_path) classes = project['Classes'] i = classes.new_file(file) target.add_file_references(i) ● new_fileでメイングループに新しいファイル参照を作成して targetにファイルを追加
64.
Jenkinsからxcodeのプロジェクトファイルを書き換 えることが可能に ビルド前の準備として荷物になりそうな不要なファイ ル群などを削除できたりする 64 xcodeprojの導入
65.
Slackとjenkinsの連携 65
66.
hubotを使ってjenkinsのジョブを実行 Slackとjenkinsの連携は 66
67.
@tsuri_app jenkins build
TsuriApp-iOS, BRANCH=release/3.2.7&BUILD_ENV=app01- aws.env&ENABLE_UPLOAD=true コマンド 例) 67 Slackに下のコマンドで書き込めばjenkinsジョブが 実行される
68.
ビルド後 配布完了時には 68
69.
AppCenterへアップロード完了したことをSlackへ通 知 配布完了時には 69
70.
70 2020年 12月ごろ ふりかえり
71.
釣り★スタだけでなく他のプロダクトも対応する流れ に 効率化が進めば 71
72.
WebViewApp CI/CDへの対応状況 72 ● AvaMee(アバタ ー) ● クリノッペ ●
ハコニワ ● 釣り★スタ WebViewApp +Cocos2D-JS GREE SDK
73.
GREE platform SDKが共通で使用されるのでビルド環 境も共通化しやすい 共通化 73
74.
環境を整えてしまえば共通の SDKの上に乗っかっているので jenkinsのジョブも共通で同じように対応できる プラットフォームならでは 74
75.
メンテ中の出来事 75
76.
macOS Mojave から
Catalina にアップデート後 ビルドPCのOSアップデートで 76
77.
ビルドが通らなくなった Catalinaへ更新 77
78.
見てみれば、 釣り★スタで使用している SDK フォルダが消失 Mac OSの権限周りの変更で 78
79.
OSのファイルシステムのセキュリティに影響される ような ルートディレクトリ付近にSDKを置いていたのも問題 そもそも 79
80.
80 2021年 6月 ごろ ふりかえり
81.
さらに横断対応の範囲が広がる 81 ここまでは アプリチームが楽することだけ 考えて対応していたが・・・
82.
WebViewApp 横断的対応の状況 82 ● モンプラ ● AvaMee(アバター) ●
クリノッペ ● 探検ドリランド ● 海賊王国コロンブス ● ハコニワ ● 釣り★スタ WebViewApp +Cocos2D-JS GREE SDK
83.
釣り★スタでのCI/CD化の恩恵が大きかった 83
84.
事業部的な恩恵度を考えれば必然的に横断対応へ 84
85.
アバタ ー クリノ ッペ 探検 海賊 ハコニ ワ 釣りス タ • 各プロダクトで個々にアプリビルドを担当していた 横断対応以前の状況 85 モンプ ラ
86.
横断対応以前の状況 86 各プロダクト毎に最小限のビルド環境しか無かった
87.
釣り★スタと違い 87 WebViewベースアプリのためビルド時間はそ れほどかからないが
88.
やはりビルド中は 88 もちろんビルド中のアプリ自体にはさわれな いし、軽めの作業しか並行できない。
89.
ビルド後も 89 ● 対象環境への接続確認 ● 配布のためのアップロードも手動 追加の手間も掛かっていた
90.
確実にやってくる更新として 90 ● GREE SDKの更新 ●
広告系ライブラリの更新 ● アイコンの差し替え・戻し この辺りの更新が数ヶ月に一回発生す るたびに丸一日近く何もできないに等 しい
91.
• 主にサーバサイド エンジニアがアプリのリリースまで担当 •
アプリ側は大抵慣れていない作業に • 年に数回のアプリビルド • 証明書とかOSとか開発環境の更新が必要になることも • 作業用PCでのビルド作業 • ビルド中は他の作業が滞る • たまの対応で慣れない作業でQA環境の追加にも三日ほどかかるこ とも • この間に事業面の施策対応とか対応できない状況に 横断対応以前の状況 91
92.
釣り★スタのCI/CD対応 以前と同じ状況ですね 要は 92
93.
アプリチームで横断的対応が決定 93 状況改善すべく
94.
一気に各プロダクトから依頼が アプリチームで横断的対応が決定 94
95.
ビルドで楽できると思ってたら 95
96.
各プロダクト × 各環境数
= で作業量が 一気に増大 96
97.
ビルド時間で一日が埋まる状況だったのが 97
98.
ビルド設定を追加するだけで1日が終わる 状況に 依頼が集中した結果 98
99.
一度 設定してしまえば だけど結果として・・・ 99
100.
ビルドの度に奪われる時間がなくなった 100
101.
もうビルドのたびにマシンを奪わ れなくて済む! 101
102.
注意点 プロダクト毎に開発環境事情が異なるので接続先確認は しっかりやる
103.
メンテ中の出来事 103
104.
あるプロダクトでXcode13にアップデートしたところ 次のようなメッセージでビルドが通らなかったことが Xcode13でのビルド 104
105.
Xcode13でのビルド 105 note: The Legacy
Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings. Xcode13に対応していない古いプロジェクト設定だと下のメッセージ が表示されてビルドが失敗する
106.
暫定的な対応となりますが、 Xcode13でのビルド 106 /app.xcodeproj/project.xcworkspace/xcsharedd ata/WorkspaceSettings.xcsettings 以下を追加でビルドが通るように <key>DisableBuildSystemDeprecationDiagnostic</key> <true/>
107.
横断的対応への要点 107
108.
横断的対応への要点 108 プラットフォーム SDKの 長所である共通性を活かす ● GREE
SDK更新のたびに書き換える必要 がでてくるのでSDKを書き換えてのカス タム実装などはやらない ● 新OSヘの対応はプラットフォームの利点 を生かしてGREE SDKの更新のみで対応 していく
109.
横断対応していく上でメンテ性は大切 横断的対応への要点 109
110.
CI/CD化により以前の非効率な状況は解消し た! 110
111.
7プロダクトCI/CD化完了 111 2021年9月ごろ
112.
まとめ 112
113.
ビルド効率化が遅れていた中で、単なる機械的な定 型作業であったアプリ配布までの自動化を進め、横 断的対応や施策開発に向けて、以上のようなことを やって乗り切ることが出来ました。 113
114.
ゲーム事業としての本質である施策面へ 注力できる環境を整えていきたい さらに、アプリチームとして
115.
115 楽したい すべてに共通な
116.
116
Download