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
150
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
580
Pragmatic Machine Learning for mobile apps
onmyway133
0
430
Unit Testing in iOS
onmyway133
0
530
Getting started with Flutter
onmyway133
2
640
From Xcode plugin to Xcode extension
onmyway133
0
420
Collection Update
onmyway133
4
430
A Taste of MVVM + RxSwift
onmyway133
1
590
LLDB
onmyway133
0
420
Block
onmyway133
0
540
Other Decks in Programming
See All in Programming
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
240
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
460
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
990
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
2
1.2k
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
780
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
640
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
2
150
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
350
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
120
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
180
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
560
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1.1k
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Site-Speed That Sticks
csswizardry
10
720
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
What's in a price? How to price your products and services
michaelherold
246
12k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Side Projects
sachag
455
43k
Statistics for Hackers
jakevdp
799
220k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Unsuck your backbone
ammeep
671
58k
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