Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Introduction to Swiftlane
Khoa Pham
February 18, 2022
Programming
0
47
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
270
Pragmatic Machine Learning for mobile apps
onmyway133
0
200
Unit Testing in iOS
onmyway133
0
260
Getting started with Flutter
onmyway133
2
370
From Xcode plugin to Xcode extension
onmyway133
0
190
Collection Update
onmyway133
4
220
A Taste of MVVM + RxSwift
onmyway133
1
370
LLDB
onmyway133
0
190
Block
onmyway133
0
240
Other Decks in Programming
See All in Programming
量子コンピュータ時代のプログラミングセミナー / 20230119_Amplify_seminar _shift_optimization
fixstars
0
140
GCPでのバッチ処理パターンを考えてみる
satohjohn
1
200
Amazon QuickSightのアップデート -re:Invent 2022の復習&2022年ハイライト-
shogo452
0
200
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
160
ECS Service Connectでマイクロサービスを繋いでみた
xblood
0
510
僕が考えた超最強のKMMアプリの作り方
spbaya0141
0
170
新卒2年目がデータ分析API開発に挑戦【Stapy#88】/data-science-api-begginer
matsuik
0
330
Jetpack Compose 完全に理解した
mkeeda
1
420
Zynq MP SoC で楽しむエッジコンピューティング ~RTLプログラミングのススメ~
ryuz88
0
160
Domain-Driven Design (Tutorial)
hschwentner
11
15k
Above All, Make It Fun! #fjordbootcamp / make it fun
kakutani
6
540
ITエンジニア特化型Q&Aサイトteratailを 言語、DB、クラウドなど フルリプレイスした話
leveragestech
0
370
Featured
See All Featured
Producing Creativity
orderedlist
PRO
335
37k
GitHub's CSS Performance
jonrohan
1020
430k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
22
1.7k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
31
20k
How STYLIGHT went responsive
nonsquared
89
4.2k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.1k
BBQ
matthewcrist
75
8.1k
A Philosophy of Restraint
colly
193
15k
Clear Off the Table
cherdarchuk
79
290k
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
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