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
130
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
470
Pragmatic Machine Learning for mobile apps
onmyway133
0
370
Unit Testing in iOS
onmyway133
0
440
Getting started with Flutter
onmyway133
2
560
From Xcode plugin to Xcode extension
onmyway133
0
350
Collection Update
onmyway133
4
350
A Taste of MVVM + RxSwift
onmyway133
1
510
LLDB
onmyway133
0
340
Block
onmyway133
0
420
Other Decks in Programming
See All in Programming
GoのIteratorに詳しくなってしまう
inatonix
1
200
GraphQL あるいは React における自律的なデータ取得について
quramy
11
2.9k
Shinjuku.rb#95:心の技術書紹介
free_world21
1
110
The Shape of a Service Object
inem
0
520
Patched fetch did not work
quramy
2
130
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
140
私のEbitengineの第一歩
qt_luigi
0
450
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
100
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
150
2024 컴포즈 정원사
jisungbin
0
150
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
Understand the mechanism! Let's do screenshots tests of Compose Previews with various variations / 仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう
sumio
3
620
Featured
See All Featured
The Invisible Customer
myddelton
119
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2.1k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
Building Applications with DynamoDB
mza
90
6k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Designing for humans not robots
tammielis
248
25k
Automating Front-end Workflow
addyosmani
1365
200k
Agile that works and the tools we love
rasmusluckow
327
20k
Building Flexible Design Systems
yeseniaperezcruz
325
38k
Debugging Ruby Performance
tmm1
72
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
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