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
98
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
33
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
520
RubyMotion 2.0
watson
6
2.9k
Differences CRuby/MacRuby/RubyMotion
watson
5
5.8k
Other Decks in Technology
See All in Technology
Continuous Delivery! It is not what you think it is
tdpauw
0
180
bet_ai_day_2026_session02
agenticsec
1
700
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
170
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
100
Claude Codeの体系的な理解と知識のフック
oikon48
10
6.6k
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
220
AIエージェントを雇う前に決める5つのこと
knishioka
1
140
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
110
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
1
200
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
120
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
170
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
130
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.7M
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
490
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
320
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
510
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
360
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
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
ϓϥοτϑΥʔϜͱλεΫ໊Λׂ͠ͳ͍Ͱ ɾТɾʆ
ఏڙ גࣜձࣾϢϏϨδ