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
Introduction to Swiftlane
Search
Khoa Pham
February 18, 2022
Programming
0
200
Introduction to Swiftlane
Introduction to Swiftlane
https://github.com/onmyway133/Swiftlane
Khoa Pham
February 18, 2022
Tweet
Share
More Decks by Khoa Pham
See All by Khoa Pham
Better AppStore rating
onmyway133
0
630
Pragmatic Machine Learning for mobile apps
onmyway133
0
470
Unit Testing in iOS
onmyway133
0
590
Getting started with Flutter
onmyway133
2
690
From Xcode plugin to Xcode extension
onmyway133
0
470
Collection Update
onmyway133
4
460
A Taste of MVVM + RxSwift
onmyway133
1
630
LLDB
onmyway133
0
450
Block
onmyway133
0
620
Other Decks in Programming
See All in Programming
Feature Toggle は捨てやすく使おう
gennei
0
340
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
210
OTP を自動で入力する裏技
megabitsenmzq
0
130
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
160
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
230
Rethinking API Platform Filters
vinceamstoutz
0
620
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
420
飯MCP
yusukebe
0
350
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
440
ファインチューニングせずメインコンペを解く方法
pokutuna
0
170
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
300
[SF Ruby Feb'26] The Silicon Heel
palkan
0
130
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
86
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Context Engineering - Making Every Token Count
addyosmani
9
770
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
130
Building the Perfect Custom Keyboard
takai
2
720
Automating Front-end Workflow
addyosmani
1370
200k
Balancing Empowerment & Direction
lara
5
980
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Statistics for Hackers
jakevdp
799
230k
Transcript
Introduction to Swiftlane Khoa Pham @onmyway133 onmyway133.com
nomad https://github.com/nomad cuptertino: App Dev Center shenzhen: Building ipa houston:
push notification venice: IAP dubao: passbook nashville: iTunes Connect
fastlane https://fastlane.tools/ sigh: provisiong profiles produce: create apps boarding: beta
testers scan: run tests gym: build deliver: screenshots & metadata spaceship: AppStore Connect APIs
No small feat ! ENV, SharedValues, ensureenvvars ! Remember how
! Dependencies ! Ruby stack ! Swift ! Type safe ! Swift Package Manager
Puma https://github.com/pumaswift/puma ☑ Combine + SwiftUI + resultBuilder ☑ Swift
Package Manager ♥ Gabriel, Besar, Frederik
Puma Workflow { RunScript() .content("echo hello") Build() .project("MyApp") .scheme("Production") Slack()
.token(SLACK_TOKEN) .send(message: ...) }
Swiftlane https://github.com/onmyway133/Swiftlane ! async/await ! Agrs ! AppStore Connect
Args -key=value -key value --key=value --key value -key1 value1 -key1
value2 order matters
async/await let result1 = try await action1.run() let result2 =
try await.action2.run(result1)
Swiftlane var workflow = Workflow() workflow.directory = Settings.fs .homeDirectory() .appendingPathComponent("Projects/swiftlane/Examples/MyApp")
workflow.xcodeApp = URL(string: "/Applications/Xcode.app")
Swiftlane guard let issuerId = Settings.env["ASC_ISSUER_ID"], let privateKeyId = Settings.env["ASC_PRIVATE_KEY_ID"],
let privateKey = Settings.env["ASC_PRIVATE_KEY"] else { return } let asc = try ASC( credential: AppStoreConnect.Credential( issuerId: issuerId, privateKeyId: privateKeyId, privateKey: privateKey ) )
AppStore Connect https://github.com/onmyway133/AppStoreConnect ! OpenAPI specification ! Json Web Token
How to run Swiftlane import Swiftlane —Executable Swift Package —MacOS
Command Line Tool application