Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Swift製CLIツールをMintを使わずSwiftPackageManagerで管理する
Yasuharu Yanamura
February 12, 2020
Programming
1
440
Swift製CLIツールをMintを使わずSwiftPackageManagerで管理する
Yasuharu Yanamura
February 12, 2020
Tweet
Share
More Decks by Yasuharu Yanamura
See All by Yasuharu Yanamura
yanamura
2
6.2k
yanamura
0
1.8k
Other Decks in Programming
See All in Programming
kawaji_scratch
0
110
oracle4engineer
0
110
osyo
0
330
manfredsteyer
PRO
0
120
manfredsteyer
PRO
0
220
makomakok
1
250
raulh82vlc
1
120
afilina
PRO
0
150
nearmugi
0
190
grapecity_dev
0
180
line_developers_tw2
0
4.4k
meemeelab
0
290
Featured
See All Featured
jonrohan
1021
380k
mthomps
38
2.3k
3n
163
22k
rocio
155
11k
robhawkes
52
2.8k
bkeepers
321
53k
tanoku
258
24k
mongodb
23
3.9k
zenorocha
296
40k
chrislema
231
16k
deanohume
294
28k
brianwarren
82
4.7k
Transcript
SwiftCLIπʔϧΛMintΛΘͣ SwiftPackageManagerͰཧ͢Δ Potatotips #68 2020/2/12 Yasuharu Yanamura
ࣗݾհ • Yasuharu Yanamura/༄ଜ ߁ • ɹ@yanamura_ɹɹ@yanamura • ίωώτגࣜձࣾ •
ϚϚϦiOSΞϓϦ։ൃ
iOSͷ։ൃͰ͏πʔϧྨ • SwiftFormat • SwiftLint • XcodeGen etc...
ཧํ๏͍Ζ͍Ζ • Homebrew • Cocoapods • Mint
Swift Package ManagerΛͬͨํ๏
͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name:
"Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift
͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name:
"Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift OBNFద
͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name:
"Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift EFQFOEFODJFTʹ͏ πʔϧΛྻڍ
͍ํ $ swift run -c release xcodegen ࣮ߦ
͍ํ $ swift run -c release xcodegen ࣮ߦ ॳճ࣮ߦϏϧυ͕ΔͷͰ͍͕ɺ ̎ճҎ߱Ωϟογϡ͞ΕΔͷͰ͍
MintͷΑ͏ͳύοέʔδཧπʔϧͷΠϯ ετʔϧͳ͠Ͱ͑Δ
طʹSwiftPMͬͯΔ߹ - Package.swiftͷdependenciesʹπʔϧྨ͍Εͨ͘ͳ͍ dependencies: [ .package(url: "https://github.com/kylef/PathKit.git", from: "1.0.0"), .package(url:
"https://github.com/jakeheis/SwiftCLI.git", from: "5.0.0"), .package(url: "https://github.com/apple/swift-format", .branch("master")), ], πʔϧผʹ͍ͨ͠
طʹSwiftPMͬͯΔ߹ - πʔϧ༻ͷσΟϨΫτϦΛ࡞ͬͯͦ͜ʹπʔϧ༻ͷ Package.swiftΛஔ͘
طʹSwiftPMͬͯΔ߹ - πʔϧ༻ͷσΟϨΫτϦΛ࡞ͬͯͦ͜ʹπʔϧ༻ͷ Package.swiftΛஔ͘ - swift runͷpackage-pathͰͦͷσΟϨΫτϦΛࢦఆ $ swift run
-c release --package-path Tools xcodegen 1BDLBHFTXJGUͷ͋Δ σΟϨΫτϦΛࢦఆ
Mintͱͷൺֱ
Ωϟογϡͷอଘઌ SwiftPackageManager: ./.buildҎԼʹอଘ Mint: /user/local/mintҎԼʹอଘ
ઃఆϑΝΠϧ SwiftPackageManager: Package.swift͕ඞਢ Mint: Mintfileͳ͠Ͱ࣮ߦͰ͖Δ $ mint run yonoskolb/XcodeGen@2.13.1 xcodegen
ৄͪ͘͜͠Β • SwiftCLIπʔϧΛMintΛΘͣSwiftPMͰཧ͢Δ - ίωώτ ։ൃऀϒϩά-
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ