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
440
Pragmatic Machine Learning for mobile apps
onmyway133
0
350
Unit Testing in iOS
onmyway133
0
420
Getting started with Flutter
onmyway133
2
540
From Xcode plugin to Xcode extension
onmyway133
0
330
Collection Update
onmyway133
4
330
A Taste of MVVM + RxSwift
onmyway133
1
490
LLDB
onmyway133
0
330
Block
onmyway133
0
400
Other Decks in Programming
See All in Programming
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Namespace on read
tagomoris
2
370
CSC307 Lecture 08
javiergs
PRO
0
330
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.3k
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
Temporalを取り巻く仕様を整理する
sajikix
0
110
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
260
Featured
See All Featured
How GitHub (no longer) Works
holman
305
140k
Designing for Performance
lara
604
67k
Into the Great Unknown - MozCon
thekraken
20
1.3k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Embracing the Ebb and Flow
colly
81
4.3k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Writing Fast Ruby
sferik
623
60k
The Cult of Friendly URLs
andyhume
75
5.9k
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