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
ローカルのグローバル環境を可能な限り汚染しないXcodeの開発環境構築
Search
Yu Sugawara
October 27, 2021
Programming
0
97
ローカルのグローバル環境を可能な限り汚染しないXcodeの開発環境構築
グローバル環境を可能な限り汚染しないXcodeの開発環境構築
Yu Sugawara
October 27, 2021
Tweet
Share
More Decks by Yu Sugawara
See All by Yu Sugawara
Server Side Swift と swift-openapi-generator 実践ガイド: サーバとクライアントのコード生成のベストプラクティス
yusuga
0
74
Server Side Swift 実践レポート: 2024年に案件で採用して見えた課題と可能性
yusuga
2
670
HIG の歴史
yusuga
1
72
誰でも簡単に組版した PDF を生成する仕組みづくり
yusuga
1
110
WWDC 2023 現地参加報告(コード編)
yusuga
0
180
マイク環境を考える
yusuga
0
61
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
6.7k
Swiftのas Any / AnyObjectの暗黙的な型変換について
yusuga
2
1.9k
Pure DI 101
yusuga
0
240
Other Decks in Programming
See All in Programming
Deep Dive into Kotlin Flow
jmatsu
1
360
Swift Updates - Learn Languages 2025
koher
2
490
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
340
rage against annotate_predecessor
junk0612
0
170
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
180
今から始めるClaude Code入門〜AIコーディングエージェントの歴史と導入〜
nokomoro3
0
210
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
240
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
190
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
610
Improving my own Ruby thereafter
sisshiki1969
1
160
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Into the Great Unknown - MozCon
thekraken
40
2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Building Adaptive Systems
keathley
43
2.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Designing Experiences People Love
moore
142
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Transcript
ϩʔΧϧڥΛՄೳͳݶΓԚછ͠ͳ͍ Xcodeͷ։ൃڥߏங TechLab LTձ #̍ 2021-03-31 1
ੁݪ ༞ @yusuga_ 2
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ 3
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ • Carthage 3
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ • Carthage • CocoaPods 3
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ • Carthage • CocoaPods • xcodegen 3
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ • Carthage • CocoaPods • xcodegen • swiftgen 3
ڥߏஙͬͯͲ͏ͯ͠·͢ʁ • Carthage • CocoaPods • xcodegen • swiftgen •
swiftlint 3
νʔϜ։ൃͰͷࠔΓ͝ͱ 4
ݪҼ 5
ݪҼ • ֤ʑͷڥʹΠϯετʔϧͯ͋͠Δπʔϧʹόʔδϣϯͷࠩҟ ͕͋Δ 5
ݪҼ • ֤ʑͷڥʹΠϯετʔϧͯ͋͠Δπʔϧʹόʔδϣϯͷࠩҟ ͕͋Δ • READMEʹʑͱڥߏஙखॱΛॻ͘ͷπϥΠ 5
ݪҼ • ֤ʑͷڥʹΠϯετʔϧͯ͋͠Δπʔϧʹόʔδϣϯͷࠩҟ ͕͋Δ • READMEʹʑͱڥߏஙखॱΛॻ͘ͷπϥΠ • ڥߏங͕Ͱ͖ͳ͍ͱ͍͏͍߹Θ͕ͤདྷΔͷπϥ͍ 5
ݪҼ • ֤ʑͷڥʹΠϯετʔϧͯ͋͠Δπʔϧʹόʔδϣϯͷࠩҟ ͕͋Δ • READMEʹʑͱڥߏஙखॱΛॻ͘ͷπϥΠ • ڥߏங͕Ͱ͖ͳ͍ͱ͍͏͍߹Θ͕ͤདྷΔͷπϥ͍ • lockϑΝΠϧͷࠩͳͲɺؾʹ͠ͳ͍ਓؾʹͤͣcommit͢Δ
ͷ͕πϥ͍ 5
ղܾํ๏ 6
ղܾํ๏ • ՄೳͳݶΓϩʔΧϧڥΛԚછ͠ͳ͍Ͱ֤छڥߏஙπʔϧΛ ༻͢Δ 6
ղܾํ๏ • ՄೳͳݶΓϩʔΧϧڥΛԚછ͠ͳ͍Ͱ֤छڥߏஙπʔϧΛ ༻͢Δ • makeϑΝΠϧΛλεΫϥϯφʔͱͯ͠༻͠ɺڥߏஙΛߦ͏ 6
ඪ Homebrew └─ Mint ├─ Carthage ├─ xcodegen ├─ swiftgen
└─ swiftlint bundler └─ CocoaPods 7
Homebrew • macOSͷύοέʔδϚωʔδϟ ❯ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ Homebrew/install/master/install.sh)"
8
Homebrew • Homebrewܦ༝ͰΠϯετʔϧ͍ͨ͠πʔϧΛهड़ͨ͠Brewfile Λ༻ҙ brew "mint" 9
Homebrew • BrewfileͷπʔϧΛΠϯετʔϧ ❯ brew bundle --no-upgrade --no-lock 10
Homebrew • πʔϧؒͷґଘؔ Homebrew └─ Mint 11
Mint • SwiftͷπʔϧͷύοέʔδϚωʔδϟ • mintܦ༝ͰΠϯετʔϧ͍ͨ͠πʔϧΛهड़ͨ͠MintfileΛ༻ҙ carthage/
[email protected]
yonaskolb/
[email protected]
swiftgen/
[email protected]
realm/
[email protected]
12
Mint • MintfileͷπʔϧΛΠϯετʔϧ ❯ mint bootstrap 13
Mint • πʔϧؒͷґଘؔ Homebrew └─ Mint ├─ Carthage ├─ xcodegen
├─ swiftgen └─ swiftlint 14
bundler • gemͷόʔδϣϯͱґଘؔཧπʔϧ1 ❯ gem install bundler 1 όʔδϣϯࢦఆͰͷΠϯετʔϧ: gem
install bundler:2.0.2 15
bundler • bundlerܦ༝ͰΠϯετʔϧ͍ͨ͠πʔϧΛهड़ͨ͠GemfileΛ ༻ҙ source 'https://rubygems.org' gem 'cocoapods' 16
bundler • GemfileͷπʔϧΛΠϯετʔϧ2 ❯ bundle install --path vendor/bundle 2 --path
ඇਪͳͷͰɺΑΓਖ਼͘͠Δ߹ .bundle/config Λ༻ҙ 17
bundler • πʔϧؒͷґଘؔ Homebrew └─ Mint ├─ Carthage ├─ xcodegen
├─ swiftgen └─ swiftlint bundler └─ CocoaPods 18
ڥߏஙํ๏ 19
ڥߏஙํ๏ • MakefileΛ༻ҙ 19
ڥߏஙํ๏ • MakefileΛ༻ҙ • γΣϧεΫϦϓτΛ༻ҙ͍ͯͨ͜͠ͱ͋ͬͨͷͰ͕͢ɺݸ ਓతʹλεΫϥϯφʔͱͯ͠ͳΒMakefileͷํ͕ॻ͖͢ ͍ 19
ڥߏஙํ๏ • MakefileΛ༻ҙ • γΣϧεΫϦϓτΛ༻ҙ͍ͯͨ͜͠ͱ͋ͬͨͷͰ͕͢ɺݸ ਓతʹλεΫϥϯφʔͱͯ͠ͳΒMakefileͷํ͕ॻ͖͢ ͍ • zshͳΒmakeίϚϯυͷิޮ͘ 19
Makefile setup-tools: brew bundle mint bootstrap bundle install QRίʔυ: github.com/yusuga/xcode-setup/App/Makefile
20
Makefile setup-carthage: mint run carthage bootstrap QRίʔυ: github.com/yusuga/xcode-setup/App/Makefile 21
Makefile setup-cocoapods: bundle exec pod install QRίʔυ: github.com/yusuga/xcode-setup/App/Makefile 22
ڥߏஙํ๏ ❯ make • ҎԼ͕࣮ߦ͞ΕΔ 1. brew bundle 2. mint
bootstrap 3. bundle install 4. mint run carthage bootstrap 5. mint run swiftgen 6. mint run xcodegen 7. bundle exec pod install 8. open App.xcworkspace QRίʔυ: github.com/yusuga/xcode-setup/App/Makefile 23
ڥߏஙํ๏ 24
ڥߏஙํ๏ • Swiftͷπʔϧ → Mintfile 24
ڥߏஙํ๏ • Swiftͷπʔϧ → Mintfile • gemͷπʔϧ → Gemfile 24
ڥߏஙํ๏ • Swiftͷπʔϧ → Mintfile • gemͷπʔϧ → Gemfile •
Carthage → Cartfile 24
ڥߏஙํ๏ • Swiftͷπʔϧ → Mintfile • gemͷπʔϧ → Gemfile •
Carthage → Cartfile • CocoaPods → Podfile 24
ࠓޙղܾ͍ͨ͠՝ 25
ࠓޙղܾ͍ͨ͠՝ • HomebrewɺMintɺbundlerϩʔΧϧڥ͔ΒΓ͍ͨ͠ 25
ࠓޙղܾ͍ͨ͠՝ • HomebrewɺMintɺbundlerϩʔΧϧڥ͔ΒΓ͍ͨ͠ • rbenv͋Δ͚Ͳπϥ͍ 25
ࠓޙղܾ͍ͨ͠՝ • HomebrewɺMintɺbundlerϩʔΧϧڥ͔ΒΓ͍ͨ͠ • rbenv͋Δ͚Ͳπϥ͍ • DockerͰղܾ͍ͨ͠ 25
ࠓޙղܾ͍ͨ͠՝ • HomebrewɺMintɺbundlerϩʔΧϧڥ͔ΒΓ͍ͨ͠ • rbenv͋Δ͚Ͳπϥ͍ • DockerͰղܾ͍ͨ͠ • ڥߏஙͷߴԽ 25
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ʂ QRίʔυ: Zenn.dev ϩʔΧϧڥΛՄೳͳݶΓԚછ͠ͳ͍Xcodeͷ։ൃڥߏங 26