๊ฐ๋จํ๊ฒ ํ๋ก์ ํธ ๋ด๋ถ๋ฅผ ํํํด๋ณด์๋ค๋ฉด, ๊ฐ๊ฐ์ ์ ๋๋ก๋ ์ ์๋ฅผ ์์์ผ ํ๋ค. ์์ ๊ธ์์ ์ด์ด์ง๋, ์ดํด๊ฐ ์๋๋ฉด ๋ณด๊ณ ์ค๋ ๊ฒ์ด ์ข๋ค.
Project
An Xcode project is a repository for all the files, resources, and information required to build one or more software products
Project๋ Application์ ๋น๋ํ๊ธฐ ์ํ ํ์ผ, ๋ฆฌ์์ค, ์ ๋ณด๋ฅผ ๋ด์ Repository์ด๋ค.
์ฒ์ Single View application ์์ฑํ๋ฉด, ํ๋ก์ ํธ ํ์ผ์ด ์์ฑ๋๋ค. PROJECT_NAME.xcodeproj
ํ์ผ์ด ๋ฐ๋ก ์ด๊ฒ. ๊ทธ๋ฐ๋ฐ ์์๋ณด์์ง๋ง, ์ด๋
์์ ์ ์ฒด๋ ๋๋ ํ ๋ฆฌ์๋ค.
- xcuserdata : project์ ๊ฐ์ธ ์ค์ ์ ์ฅ์ ๋ด์ ๋๋ ํ ๋ฆฌ
- project.pbxproj : ํ๋ก์ ํธ ๋ด๋ถ ํ์ผ Reference๋ฅผ ์ ํ์ ๋ฐ๋ผ ๊ธฐ๋กํ ํ์ผ
- project.xcworkspace : ์ฌ๋ฌ๊ฐ์ Project๋ฅผ ๋ด์ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ
์์ ๊ฐ์ด ์ธ๊ฐ์ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์๋ค.
Workspace
Workspace๋ CocoaPods๋ฅผ ํตํด ์ ํด๋ดค์ ๊ฒ์ด๋ค. ํ์ง๋ง ์ค์ ๋ก PROJECT_NAME.scodeproj
ํ์ผ ์์๋ ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ ์์๋ค. cocoaPods๋ก pod install
์ ํ๋ ํ์๊ฐ, workspace๋ฅผ ํ๋ ๋ง๋ค์ด์ฃผ๋ ํ์๋ผ๋ ์ฌ์ค์ ์ดํดํ ์ ์์๋ค. ํด๋น ๋๋ ํ ๋ฆฌ ์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์์๋ค.
- contents.xcworkspacedata : ํ๋ก์ ํธ๋ค์ Reference ์ ์ฅ(xml)
- xcuserdata : workspace์ ๊ฐ์ธ ์ค์ ์ ๋ด์ ๋๋ ํ ๋ฆฌ
- xcshareddata : workspace์ ๊ณต์ ๋ ์ค์ ์ ๋ด์ ๋๋ ํ ๋ฆฌ
Subproject
Xcode๋ Workspace๋ฅผ ํตํด ์ฌ๋ฌ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๋ค๋ฃฐ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ ๋ง๊ณ , ํ๋ก์ ํธ ๋ด๋ถ์ Subproject๋ฅผ ์์ฑํ์ฌ ์ด๋ฅผ ๊ด๋ฆฌํ ์๋ ์๋ค.
์๋ฅผ ๋ค์ด, ์คํ ์์ค๋ก ๋ฐฐํฌ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ๋๊ฐ ๋ด๊ธด Project์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ์์ Project๋ฅผ ๋๋๊ณ ์ถ์ ์ ์๋๋ฐ, ์ด ๋ Subproject๋ก ์์ Project๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ Workspace๋ก ๊ฐ๋ฅํ๊ธฐ๋ ํ๋ค. ํ์ง๋ง ์ฐจ์ด์ ์ ์๊ณ ๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค. Subproject๋ ์ด๋ฆ์์๋ ์ ์ ์๋ฏ Sub
์ด๊ธฐ ๋๋ฌธ์, ์์ Project์ ๋ถ๋ชจ-์์ ๊ด๊ณ๊ฐ ํ์ฑ๋๋ค. ๋ถ๋ชจ๋ ์์ ํ๋ก์ ํธ์ ๋ํด Reference๋ฅผ ๊ฐ์ง ์ ์์ง๋ง, ์์์ ๋ถ๋ชจ์ ์ ๊ทผ์ด ๋ถ๊ฐํ๋ค.
๋ฐ๋๋ก Workspace์ ๊ฒฝ์ฐ, Project๊ฐ ํ์ ๊ด๊ณ๊ฐ ํ์ฑ๋๋ค. ๊ทธ๋์ ์ด๋ค ํ๋ก์ ํธ๊ฑด ์๋ก๊ฐ์ Reference๋ฅผ ์ง๋ ์ ์๋ค.