Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
fastlane 奮闘記
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Watson
January 26, 2018
Technology
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
fastlane 奮闘記
Watson
January 26, 2018
More Decks by Watson
See All by Watson
クラウドネイティブ時代に 進化し続けるFluentd
watson
0
28
RMagick, migrate to ImageMagick 7 #RubyKaigi #RubyKaigi2019
watson
0
10k
Magick
watson
0
12k
Improve JSON Performance
watson
2
1.1k
How to optimize Ruby internal.
watson
3
3.1k
iOS、AndroidアプリをRubyで
watson
1
510
RubyMotion 2.0
watson
6
2.8k
Differences CRuby/MacRuby/RubyMotion
watson
5
5.8k
Other Decks in Technology
See All in Technology
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.2k
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.7k
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
200
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
360
Kaggleで成長するために意識したこと
prgckwb
2
360
Claude Codeとハーネスについて考えてみる
oikon48
19
9.5k
SRE Next 2026 何でも屋からの脱却
bto
0
740
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
870
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
130
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
130
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
250
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
420
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
Rails Girls Zürich Keynote
gr2m
96
14k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
340
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
940
KATA
mclloyd
PRO
35
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Transcript
GBTUMBOFฃಆه 4IJ[VP'VKJUB
w ॴଐɿגࣜձࣾϢϏϨδ w 5XJUUFSɿ!XBUTPO
GBTUMBOFͱʁ w J04"OESPJEΞϓϦͷϦϦʔε࡞ۀΛࣗಈԽ͢Δπʔϧ w 3VCZ w SBLFΈ͍ͨͳͷ w ༗ࢤʹΑΔେྔͷϓϥάΠϯ w
IUUQTEPDTGBTUMBOFUPPMTQMVHJOTBWBJMBCMFQMVHJOT
GBTUMBOFىಈ͍
w SBLF UJNFCVOEMFFYFDSBLFIEFWOVMM CVOEMFFYFDSBLFIEFWOVMMTVTFSTTZTUFNDQVUPUBM UJNFCVOEMFFYFDGBTUMBOFIEFWOVMM CVOEMFFYFDGBTUMBOFIEFWOVMMTVTFSTTZTUFNDQVUPUBM w GBTUMBOF TFDWTTFD
w 3VCZඪ४ϥΠϒϥϦ QSPpMF require 'profiler' RubyVM::InstructionSequence.compile_option = { :trace_instruction =>
true, :specialized_instruction => false } Profiler__::start_profile ௐ͍ࠪͨ͠ίʔυ Profiler__::print_profile(STDERR) Profiler__::stop_profile
QSPpMF݁Ռ $ bundle exec fastlane -h > /dev/null % cumulative
self self total time seconds seconds calls ms/call ms/call name 50.48 0.53 0.53 953 0.56 5.38 Kernel#require 29.52 0.84 0.31 4 77.50 77.50 IO.select 6.67 0.91 0.07 2 35.00 35.00 Socket.getaddrinfo 6.67 0.98 0.07 427 0.16 0.49 Spaceship::Base.attr 2.86 1.01 0.03 2 15.00 15.00 OpenSSL::X509::Store 2.86 1.04 0.03 1215 0.02 0.03 Module#define_method 1.90 1.06 0.02 1 20.00 20.00 IO.read 1.90 1.08 0.02 1725 0.01 0.01 Symbol#to_s 1.90 1.10 0.02 321 0.06 2.52 Array#each 1.90 1.12 0.02 423 0.05 0.07 Module#class_eval 1.90 1.14 0.02 933 0.02 0.11 nil# 1.90 1.16 0.02 8160 0.00 0.00 Module#method_added 0.95 1.17 0.01 4 2.50 2.50 Range#each 0.95 1.18 0.01 15 0.67 1.33 Kernel#eval 0.95 1.19 0.01 183 0.05 0.05 Array#hash 0.95 1.20 0.01 66 0.15 0.15 Array#inspect 0.95 1.21 0.01 36 0.28 0.28 Forwardable._delegat 0.95 1.22 0.01 159 0.06 0.06 Module#private 0.95 1.23 0.01 387 0.03 0.03 Hash#[]=
,FSOFMSFRVJSF ϩʔυ͢ΔϑΝΠϧͷύεΛऔಘ ϑΝΠϧΛಡΈࠐΉ QBSTF͠ߏจੜ 3VCZ*OTUSVDUJPO4FRVFODFੜ
Ϋϥεɺϝιουఆٛ
None
CPPUTOBQͱʁ w SFRVJSF࣌ʹ͕͔͔࣌ؒΔͷΛDBDIF͢ΔϥΠϒϥϦ w SFRVJSF͢ΔϑΝΠϧύε w 3VCZ*OTUSVDUJPO4FRVFODF
#VOEMFSͱີʹґଘͯͯ͠ɺCVOEMFSΘͳ͍߹ʹྫ֎ى͜ ͯͨ͠ɻ͚ͨ͠Ͳ͞ ɾТɾ
GBTUMBOFͲ͏ͳͬͨʁ w #FGPSF UJNFCVOEMFFYFDGBTUMBOFIEFWOVMM CVOEMFFYFDGBTUMBOFIEFWOVMMTVTFSTTZTUFNDQVUPUBM UJNFCVOEMFFYFDGBTUMBOFIEFWOVMM CVOEMFFYFDGBTUMBOFIEFWOVMMTVTFSTTZTUFNDQVUPUBM w "GUFS TFDˠTFD
None
໊લۭؒͳ͍
΄͔ͬͨ͠ͷ platform :ios do namespace :update do lane :build_number do
... end lane :version do ... end end end $ bundle exec fastlane update:version
None
ଥڠͨ͠ lane :"update:build_number" do ... end lane :”update:version" do ...
end
ࢦఆͨ͠λεΫ͕ೝࣝ͞ΕͣɺλεΫҰཡ͕දࣔ͞Εͨ
ҾΛίϩϯͰׂ͢ΔṖͷίʔυ ɾТɾʆ
͜Μͳͷαϙʔτͯͨ͠ platform :ios do lane :hogehoge do |arg| # key:value
͕ {:key=>"value"} ͱͯ͠ arg ʹ͞ΕΔ p arg end end $ bundle exec fastlane hogehoge key:value
ϓϥοτϑΥʔϜͱλεΫ໊Λׂ͠ͳ͍Ͱ ɾТɾʆ
ఏڙ גࣜձࣾϢϏϨδ