๐ ์๋ XcodeGen
์ค๋์ XcodeGen์ ๋ํด ๊ณต๋ถํ ๋ด์ฉ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ก ๋ด๋ฆฐ ๊ฒฐ๋ก ์ ๋ํด ์๊ธฐํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ฒ ์ต๋๋ค!
XcodeGen์ด๋?
XcodeGen์ ํด๋ ๊ตฌ์กฐ์ ํ๋ก์ ํธ ์คํ์ ๋ง์ถฐ์ Xcode ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ปค๋งจ๋ ๋ผ์ธ ๋๊ตฌ์ ๋๋ค.
๋ํ์ ์ผ๋ก ๋ผ์ธ์์ XcodeGen์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฒ์์ ๋ฆฌ๋๋ฏธ๋ง ์ฝ๊ณ ํฐ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด๋ ค ํ๋ฉด ๋ง๋งํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ๋ฒ์ ์ฐจ๋ก๋๋ก ์ฝ์ผ๋ฉฐ ์์ ํ๋ก์ ํธ์ ๊ธฐ๋ฅ์ ๋จ๊ณ์ ์ผ๋ก ์ ์ฉํ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
XcodeGen์ ํน์ง
-
ํ๋ก์ ํธ ํ์ผ(
.xcodeproj
)์ ์ฝ๋ ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ์๊ณ ๋ช ๋ น์ด๋ฅผ ํตํด ํ๋ก์ ํธ ํ์ผ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋จธ์งํ ๋ ํ๋ก์ ํธ ํ์ผ์์ ์ปจํ๋ฆญํธ๊ฐ ์๊ธธ ์ผ์ด ์์ต๋๋ค. -
ํ๋ก์ ํธ ์ค์ ์ ๋ด์ผ ํ ๋ ์ด๊ณณ์ ๊ณณ ๋์๋ค๋ ํ์ ์์ด
project.yml
ํ์ผ ํ๋๋ง ๋ณด๋ฉด ๋ฉ๋๋ค. -
์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์ฐ์ด๋ผ ๋ ํธํฉ๋๋ค. ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๋ก์ด ๊ธฐ์ ์ ์ฉ์ ์ํด ๊ฐ๋จํ ์ฑ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฐ์ด๋ผ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ์, ์ด๋ด ๋ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ์ ์๋
project.yml
ํ์ผ์ด ์์ผ๋ ์ฐธ ํธํ์ต๋๋ค. -
SwiftGen, SwiftLint ๋ฑ Build Phase์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํด์ผ ํ ๋๋ ๊ฐํธํ๊ฒ
project.yml
ํ์ผ์ ์ ์ด๋๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. -
Carthage๋ฅผ ์ถ๊ฐ์ ์ธ ์ค์ ์์ด ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ค๊ณ ํฉ๋๋ค๋ง, ์ฌ์ฉํด๋ณด์ง ์์์ต๋๋ค. Carthage๋ ์ฌ์ฉํ๋ ค๋ฉด Xcode 12์์ ๋ณ๋์ ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ๋ฐ๋ค๊ฐ, M1์นฉ์์ ์๋ํ์ง ์๋๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋์ ๋น๋ถ๊ฐ Carthage๋ฅผ ์ธ ์ผ์ ์์ ๊ฒ ๊ฐ์ ํ ์คํธ๋ฅผ ์ํด๋ดค์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ํ์ธํด์ฃผ์ธ์.
์ค์ ์ฌ์ฉ ์์
์ ๋ ์ค์ ๋ก ๋จ๊ฐ์ง ๋จ์๊ณ ๊ฒธ ๋ญ๋ ์
์ ์๋ ์นด์ดํฐ ์ดํ๋ฆฌ์ผ์ด์
์ธ Stitch
์์ XcodeGen
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. project.yml
ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ๋ก์ ํธ ๊ป๋ฐ๊ธฐ๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋ด์ฉ์ด๋ผ pod์ด ์๋๋ฐ๋ pod install์ ํ๊ณ , SPM๋ ๋ช ๊ฐ ์ฐ๊ณ ์์ง ์์ง๋ง ์ด๊ฒ๋ง์ผ๋ก๋ ๊ฐ์ธ ์์ ๋ฅ๋ฅ ์ด ๋ง์ด ์ฌ๋ผ๊ฐ์ต๋๋ค.
ํ๋ ์
XcodeGen
์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก .xcodeproj
ํ์ผ์ .gitignore
์ ์ ์ด๋ก๋๋ค.
์ด๋ฌํ ์ด์ ๋ก origin์ ๋ฐ๋ ์ฝ๋๋ฅผ pullํ๊ฑฐ๋ main ๋ธ๋์น์์ rebase๋ merge๋ก ๋ก๊ฒจ์ฌ ๋ ์ฝ๋๋ ๋ฐ๋์ง๋ง .xcodeproj
๋ ๊ทธ๋๋ก์ธ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
๊ทธ๋์ ๋งค๋ฒ xcodegen generate
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ, ์ ๋ ์ด ๋ถ๋ถ์ด ๋ง์ด ๊ท์ฐฎ์์ต๋๋ค.
์ด ๊ท์ฐฎ์์ ํด๊ฒฐํ๊ธฐ ์ํด git hooks
๋ฅผ ์ฌ์ฉํด๋ณด๋ ค๊ณ ํ๋๋ฐ ๋น์ทํ ๊ฒ์ ์ฐพ์์ง๋ง ์ ํํ
ํ์ํ ๊ธฐ๋ฅ์ด ์๋์์ต๋๋ค.
๊ฒฐ๋ก
ํ์์ git pull์ด๋ merge๋ฅผ ํ ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐํ์ด ์๋๋ผ๋ฉด XcodeGen
์ ์ฌ์ฉํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ฌด๋ฆฌ๊ฐ ์์๊ฑฐ๋ ์๊ฐ์ด ๋ญ๋๋ค.
XcodeGen
์ ์ฌ์ฉํ๊ธฐ ์ํด์ ํ์๊ณผ์ ๋ง์ ๋
ผ์๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ง๋ง ํ์
ํ๋ ์ธ์์ด ๋ง์ง ์๊ฑฐ๋ ์ํน ๋ธ๋์น๊ฐ ์ ์ ๊ฒฝ์ฐ์ ์์ฃผ ์ ํฉํ ๊ฒ ๊ฐ์ต๋๋ค.
์ค๋์ ์ฌ๊ธฐ๊น์ง ์
๋๋ค!
์ ๋ ๊ฐ์ธ ํ๋ก์ ํธ์ XcodeGen
์ ๊ณ์ ์ฌ์ฉํด๋ณด๊ณ ๋ ๊น๊ฒ ์์๋ด์ผ๊ฒ ๋ค์.