Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Otemachi.swift x Kyobashi.swift #01: 「fastlane ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takeshi Ihara
August 03, 2017
Programming
1.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Otemachi.swift x Kyobashi.swift #01: 「fastlane x Jenkins」でアプリ配布を自動化してみた
https://nikkei.connpass.com/event/62123/
Takeshi Ihara
August 03, 2017
More Decks by Takeshi Ihara
See All by Takeshi Ihara
iOSDC20200921: Feature Flagを適切に分類することでA/Bテストの運用コストを下げる
nonchalant
3
1.4k
iOSDC 20190906: 動画アプリの投げ銭機能における 消耗型課金の仕組みと実装
nonchalant
3
6.4k
iOSDC 20190906: 動画アプリの投げ銭機能における 消耗型課金の仕組みと実装 with 発表ノート
nonchalant
2
650
Sign In with Apple
nonchalant
1
2.5k
iOSDC RejectCon 20180915: Factoryの自動生成によりテストを書きやすくする
nonchalant
1
760
iOSDC 20180902: 小さくはじめる端末管理
nonchalant
2
1k
devsap 20180728: コード生成のススメ
nonchalant
0
150
potatotips #50: iOSは自動生成の夢を見るか?
nonchalant
0
2k
try! Swift Tokyo 2018: Best Docker Container in Swift
nonchalant
1
1.4k
Other Decks in Programming
See All in Programming
スマート反転とウェブアクセシビリティ
camiha
0
210
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.5k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
140
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.7k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
340
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
460
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
320
速習iPhone Duo対応
yuukiw00w
1
350
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.1k
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Designing Powerful Visuals for Engaging Learning
tmiket
1
550
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Evolving SEO for Evolving Search Engines
ryanjones
0
290
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
WENDY [Excerpt]
tessaabrams
14
39k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Transcript
ʮfastlane x JenkinsʯͰ ΞϓϦΛࣗಈԽͯ͠Έͨ @nonchalant0303 Otemachi.swift x Kyobashi.swift
ࣗݾհ • Takeshi Ihara • Recruit Marketing Partners • iOS
Engineer • Twitter: @nonchalant0303 • GitHub: Nonchalant
OSS
Kyobashi.swift
ΞϓϦ %FCVH *O)PVTF 3FMFBTF %FW4FSWFS ։ൃ 2" 4UH4FSWFS ։ൃ 2"
1SPE4FSWFS ։ൃ 2" "QQ4UPSF
͜Ε·ͰͷΞϓϦ 1. Archiveͯ͠.ipaϑΝΠϧΛੜ 2. DeployGateʹΞοϓσʔτ
Archiveத͕ ઐ༗͞Εͯ։ൃͰ͖ͳ͍
ͦ͏ͩɺࣗಈԽͩ
None
fastlane iOSɾAndroidΞϓϦͷϏϧυɺςετɺσϓ ϩΠΛߦ͏ͨΊͷRubyͷλεΫϥϯφʔ
Dev Server + InHouse gym( scheme: "Scheme", configuration: "InHouse", derived_data_path:
"./DerivedData", export_method: "enterprise", clean: true, xcargs: "OTHER_SWIFT_FLAGS='$(inherited) -DDEV_SERVER'" ) deploygate( user: ENV["DEPLOYGATE_USER"], api_token: ENV["DEPLOYGATE_API_TOKEN"], distribution_key: DISTRIBUTION_KEY[conf] )
Dev Server + InHouse gym( scheme: "Scheme", configuration: "InHouse", derived_data_path:
"./DerivedData", export_method: "enterprise", clean: true, xcargs: "OTHER_SWIFT_FLAGS='$(inherited) -DDEV_SERVER'" ) deploygate( user: ENV["DEPLOYGATE_USER"], api_token: ENV["DEPLOYGATE_API_TOKEN"], distribution_key: DISTRIBUTION_KEY[conf] )
͜Ε͚ͩʂ
ࣗಈԽग़དྷͨʁ
खݩͰΒͤͨΒ ઐ༗͞Εͯ͠·͏
None
None
Jenkinsͷઃఆ - ϒϥϯνͷࢦఆ - αʔόʔͷ͖ઌΛࢦఆ - ςετͷ࣮ߦՄ൱ ্ͷ3ͭΛઃఆͰ͖ΔΑ͏ʹύϥϝʔλʔΛઃఆ
JenkinsͱGitHubͷ࿈ܞ JenkinsͷGit Plugin - ಛఆͷϒϥϯνͷมߋΛϙʔϦϯάͰࢹ - developϒϥϯνʹมߋ͕͋ͬͨ߹ - Dev Server
+ InHouseΛ
None
͜ΕͰ։ൃޮ㽉
ߋͳΔվળ&ࣗಈԽ
1. ΞϓϦ্͕ॻ͔ΕΔ ผαʔόʔͷ֬ೝ࣌ʹຖճDLͨ͘͠ͳ͍ ↓ αʔόʔຖʹΞϓϦΛׂ͢Δ (Bundle IdentifierΛมߋ͢Δ)
1. ΞϓϦ্͕ॻ͔ΕΔ gym( scheme: "Scheme", configuration: "InHouse", derived_data_path: "./DerivedData", export_method:
"enterprise", clean: true, xcargs: "OTHER_SWIFT_FLAGS='$(inherited) -DSTG_SERVER' PROVISIONING_PROFILE_SPECIFIER='Provisioning'" )
1. ΞϓϦ্͕ॻ͔ΕΔ gym( scheme: "Scheme", configuration: "InHouse", derived_data_path: "./DerivedData", export_method:
"enterprise", clean: true, xcargs: "OTHER_SWIFT_FLAGS='$(inherited) -DSTG_SERVER' PROVISIONING_PROFILE_SPECIFIER='Provisioning'" ) ༻ͷ1SPWJTJPOJOH1SPpMFΛࠩ͠ସ͑Δ
2. αʔόʔͷ͖ઌ͕͔Β ͳ͍ ىಈ͢Δલʹαʔόʔͷ͖ઌΛΓ͍ͨ ↓ ΞΠίϯͰαʔόʔͷ͖ઌ͕͔ΔΑ͏ʹ ࠩ͠ସ͑Δ
2. αʔόʔͷ͖ઌ͕͔Β ͳ͍ last_commit_hash = last_git_commit[:abbreviated_commit_hash] badge( shield: last_commit_hash, custom:
"fastlane/badge/dev_badge_dark.png" )
3. iTunes ConnectͷΞοϓ ϩʔυࣗಈԽ͍ͨ͠ खݩͰArchiveͨ͘͠ͳ͍ ↓ fastlaneͷactionͷpilotͰ࣮ݱ
3. iTunes ConnectͷΞοϓ ϩʔυࣗಈԽ͍ͨ͠ gym( clean: true, configuration: 'Release', scheme:
"Scheme", output_directory: "build", output_name: "SchemeRelease", ) pilot( skip_submission: true, skip_waiting_for_build_processing: true ) +FOLJOTϚγϯ্Ͱ%FWFMPQFSΞΧϯτͰ ͋Β͔͡ΊϩάΠϯ͓ͯ͘͠
4. ਃ߲ࣗಈԽ͍ͨ͠ iTunes ConnectΛ։͖ͨ͘ͳ͍ (ॏ͍) ↓ fastlaneͷactionͷdeliverͰ࣮ݱ
4. ਃ߲ࣗಈԽ͍ͨ͠ - deliver initͰݱࡏͷਃ߲͕ੜ - deliverͰ্ॻ͖
·ͱΊ %FCVH *O)PVTF 3FMFBTF %FW4FSWFS ։ൃ 2" 4UH4FSWFS ։ൃ 2"
1SPE4FSWFS ։ൃ 2" "QQ4UPSF
·ͱΊ • iOSΤϯδχΞҎ֎Ͱࣗ༝ʹͰ͖ΔΑ ͏ʹͳͬͨ • ଞͷνʔϜʹڞ༗ͨ͠ΒࣾͰ·ͬͨ • ࣗಈԽָ͍͠