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
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Swiftlane
Introduction to Swiftlane
https://github.com/onmyway133/Swiftlane
Khoa Pham
February 18, 2022
More Decks by Khoa Pham
See All by Khoa Pham
Better AppStore rating
onmyway133
0
670
Pragmatic Machine Learning for mobile apps
onmyway133
0
490
Unit Testing in iOS
onmyway133
0
620
Getting started with Flutter
onmyway133
2
730
From Xcode plugin to Xcode extension
onmyway133
0
490
Collection Update
onmyway133
4
490
A Taste of MVVM + RxSwift
onmyway133
1
670
LLDB
onmyway133
0
500
Block
onmyway133
0
650
Other Decks in Programming
See All in Programming
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
170
新卒PdEのリアル
ryu1013
1
410
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
Deep dive into the select statement (GopherCon UK)
jespino
0
170
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
170
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
860
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
BBQ
matthewcrist
89
10k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
My Coaching Mixtape
mlcsv
0
310
A Tale of Four Properties
chriscoyier
163
24k
Prompt Engineering for Job Search
mfonobong
0
440
Un-Boring Meetings
codingconduct
0
410
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Become a Pro
speakerdeck
PRO
31
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
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