๐ฉ๐ป๋ฐฐ๊ฒฝ๐ฉ๐ป
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๋ณด๋ฉด ํ ํฐ ๋ฑ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. Local ์ ์ฅ์์์๋ง ์์ ํ๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ๋ํด ํฌ๊ฒ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์์ง๋ง, Github๊ณผ ๊ฐ์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ฃผ์๊ฐ ํ์ํ๋ค. ๋ง์ฝ ๋ฏธ์ฒ ์ ๊ฒฝ ์ฐ์ง ๋ชปํ๊ณ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๊ฒ ๋๋ค๋ฉด ํดํน์ ๋์์ด ๋ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ bundle์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ ๊น๋ํด์ง๊ณ ๋ฐ์ดํฐ ์ฌ์ฉ๋ ํธ๋ฆฌํด์ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฒ๋ค๋ก ๊ด๋ฆฌํ๋ฉด ์ข๋ค. ์ด์ ๊ฐ์ ์ด์ ๋ก ์ค์ํ ์ ๋ณด๋ค์ Info.plist ๋ฃ๊ณ ์ด plist ํ์ผ์ .gitignore์ ์ถ๊ฐํ๋ ค ํ๋ค
.gitignore์ ํ์ผ ์ถ๊ฐํ๊ธฐ
.gitignore์ ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ ๋ง ๊ฐ๋จํ๋ค. .gitignore ํ์ผ์ ์ด๊ณ ์ํ๋ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํ ๋นํด์ฃผ๋ฉด ๋๋ค. ๋๋ ํน์ ํ์ฅ์๋ฅผ ๊ฐ์ง ๋ชจ๋ ํ์ผ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ํ์ฅ์๋ช ๋ง ์ ์ด์ค ์๋ ์๋ค.
ํน์ ํ์ผ๋ง ์ถ๊ฐํ๊ธฐ | ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํ์ ๋๋ ํ ๋ฆฌ๋ช /๋๋ ํ ๋ฆฌ๋ช /ํ์ผ๋ช |
ํ์ฅ์๋ช ์ผ๋ก ์ถ๊ฐํ๊ธฐ | *.ํ์ฅ์๋ช |
ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํ์ ํ์ผ ์ถ๊ฐ | ํ์ผ๋ช |
ํ์ง๋ง ๋๋ Info.plist ํ์ผ์ commitํ๊ณ ์๊ฒฉ ์ ์ฅ์๋ก Push๊น์ง ํ๊ธฐ ๋๋ฌธ์ ๊ทธ์ .gitignore์ ์ถ๊ฐํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๊ฒฐ๋์ง ์๋๋ค. ์ด ์ ๋ณด๋ฅผ ์ด๋ฏธ ์๊ณ ์์๊ณ ํด๋ณธ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ํด๋น ์์ ์ด ๋น ๋ฅด๊ฒ ๋๋ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๋จผ์ gitignore์ Info.plist๋ฅผ ๋ฃ์ด์ค ํ ์๋์ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์ ๋ ฅํ๋ค. ์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ ์ค์๊ฐ ๋ฐ์ํ๋ค. ์ด ์ค์๋ ๋ด๊ฐ ๋ฌธ์ ์ ์์ธ์ ์๊ฒ ๋์์ ๋ ์ค๋ช ํ๊ฒ ๋ค.
์ด ๋ช ๋ น์ด๋ Local ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์ ๋ชจ๋ ํด๋น ํ์ผ์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก, Local ์ ์ฅ์์์ ํ๋ก์ ํธ๋ฅผ ๊ณ์ ์์ ์ ํ ์์ ์ด๋ฉด ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค. ๋๋ ๋ค์ Info.plist๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ์ฌ์ฉํ๋๋ฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋ ํค๋งค๊ฒ ๋์๋ค.
git rm Info.plist
git commit -m "์ปค๋ฐ ๋ฉ์ธ์ง"
์ฒซ ๋ฒ์งธ ์ค๋ฅ: Multiple commends produce ~
์ด๋ ๊ฒ ํ์ผ์ ์ญ์ ํ ๋ค ํ๋ก์ ํธ์ ๋ค์ด์ Info.plist๋ฅผ ์ฌ์์ฑํ ๋ค ์ญ์ ์ ๋ฏธ๋ฆฌ HTML ํ์์ผ๋ก ๋ณต์ฌํด๋์๋ ํ์ผ์ ๋ถ์ฌ๋ฃ์๋ค. ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ ๋ Xcode-SourceControl-commit ์ฐฝ์ ๋ฌ Info.plist๋ฅผ ์ฌ์ฉํด ๋ถ์ฌ๋ฃ๊ธฐํ๋๋ฐ, ๋ง์ฝ Info.plist ํ์ผ์ด .gitignore์ ์ ์ถ๊ฐ๋์๋ค๋ฉด ๊ทธ๊ณณ์ ๋จ์ง ์์์ ๊ฒ์ด๋ค. ๋น์๋ ์ด์ํ๋ค๊ณ ์๊ฐํ์ง๋ง Local์ด๋ผ ๊ทธ๋ฐ๊ฐ๋ณด๋ค ์๊ฐํ๋ค. ์๋ฌดํผ ๊ทธ๋ ๊ฒ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์๋ฃํ ๋ค build๋ฅผ ํ๋๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
* Multiple commends produce ์ค๋ณต๋ ํ์ผ ๊ฒฝ๋ก ~
Info.plist๋ฅผ ์ญ์ ํ๊ณ ์ฌ์์ฑํ์ฌ ๋ฐ๋ก ์ ์ฅํด๋ Info.plist๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํ ๊ณผ์ ์์ ํ์ผ์ด ์ค๋ณต๋์๋ค. ๊ทธ๋์ ํฐ๋ฏธ๋์ ์ฌ์ฉํด ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ์๋ ค์ฃผ๋ ํ์ผ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ Info.plist๋ฅผ ์ญ์ ํ๋ค. ํ์ง๋ง ๊ทธ๋๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํด ์ด์ฌํ ๊ตฌ๊ธ๋ง์ ํด๋ณธ ๊ฒฐ๊ณผ๋ณด๋ Target-Build Phases-Copy Bundle Resources์์ Info.plist๋ฅผ ์ญ์ ํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ ๋ฌธ์ ์๋ค.
๊ทธ๋๋ก PR์ ๋ณด๋ด๊ณ ๋ง๋ฌด๋ฆฌ ํ๋ ค ํ๋ค. PR๋ฅผ ์๋ฃํ๊ธฐ ์ ๊ผผ๊ผผํ ํ์ผ์ ๋ณด๊ณ ์๋๋ฐ Info.Plist๊ฐ ๋๋ฌด ์ ๋ณด์๋ค. ์ฌ๊ธฐ์ ์๋ชป๋ ๊ฒ์ ์๊ฒ ๋์ด ๋ค์ ํฐ๋ฏธ๋๋ก ๋์์๋ค. ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ง ์์๊น ์๊ฐํด์ ๊ตฌ๊ธ๋งํด์ ์๋ก์ด ๋ฐฉ๋ฒ์ ์ฐพ์๋ค. ์ด ๋ฐฉ๋ฒ์ ํ์ผ๋ค์ ์บ์๋ฅผ ์ญ์ ํด commitํ์ฌ pushํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ์ ์ด ๋ช ๋ น์ด๋ฅผ ๋ค์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๋ฌด์จ ๋ช ๋ น์ด์ธ์ง ์ ๋ฆฌํ๊ฒ ๋ค.
์ด์ฌํ ์บ์๋ฅผ ์ง์ฐ๊ณ pushํด๋ด๋ Info.plist๋ ์ฌ์ ํ ๋ณด์๋ค. ์ง๊ธ ์ฌ๋ฆฌ๋ ค๋ ๋ฐ์ดํฐ๋ ๊ทธ๋ค์ง ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์๋์์ผ๋ฉฐ ๋ธ๋์น์ ์ปค๋ฐ ๋ชฉ๋ก์ด ์ ์ ์ง์ ๋ถํด์ง๋ ๊ฒ ๊ฐ์ ์ผ๋จ PR์ ๋ณด๋ด๊ณ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ํด๊ฒฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
gitignore ๋ง๊ณ .gitignore ๐ฉ
PR์ ์๋ฃํ๊ณ develop ๋ธ๋์น๋ก ๋ณํฉ๊น์ง ์๋ฃํ ํ Github ์๊ฒฉ ์ ์ฅ์๋ฅผ ํ์ธํด ๋ณด์๋ค. ๋ญ๊ฐ ๋ฌธ์ ์๋์ง ์ ๋ง ๋จ๋ฒ์ ์์์ฐจ๋ ธ๋ค. ํ๋๋ง ์์ด์ผํ๋ gitignore๊ฐ ๋ ๊ฐ์๋ค. ๋ ๊ฐ์ ์ฐจ์ด๋ ๊ทธ์ ์ ํ๋ ์ฐจ์ด์๋ค.
๋ฌธ์ ๋ ํฐ๋ฏธ๋์์ ๋ฐ์ํ๋ค. ๋๋ ๋ณดํต ํ์ผ์ ํธ์งํ๊ฑฐ๋ ์ด์ด๋ณผ ๋ ํฐ๋ฏธ๋์ ์ฃผ๋ก ์ด์ฉํ๋๋ฐ, vi ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋น ํ์ผ์ด ์์ผ๋ฉด ์ด๊ณ ์์ผ๋ฉด ์๋ก ์์ฑํด์ ์ด์ด์ค๋ค. ๊ทธ๋์ ์ ์ ๋บ gitignore๋ก ์๋ชป ํ์ผ๋ช ์ ์ ์์ง๋ง ๊ทธ ์ด๋ฆ์ผ๋ก๋ ํ์ผ์ด ์์ฑ๋ ๊ฒ์ด๋ค.
vi gitignore
๊ทธ๋์ ์ ๋ธ๋์น๋ฅผ ๋ง๋ ํ ๊ฐ์ฅ ๋จผ์ gitignore ํ์ผ์ ์ญ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ Info.plistfmf .gitignore์ ์ถ๊ฐํ๋ค.
vi .gitignore
๋ง์ง๋ง์ผ๋ก Push๋ ๊ธฐ์กด Info.plist ํ์ผ์ ๋ด๋ ค์ฃผ๊ธฐ ์ํด ์๊น ์ฌ์ฉํด์ ์บ์ ์ญ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
git rm -r --cached
git add .
git commit -m "์ปค๋ฐ ๋ฉ์ธ์ง"
git push origin ๋ธ๋์น๋ช
PR๊ณผ develop ๋ธ๋์น ๋ณํฉ๊น์ง ๋ง๋ฌด๋ฆฌํ๊ณ Github ์ ์ฅ์๋ฅผ ํ์ธํด๋ณด๋ ์ํ๋ ๋๋ก Info.plist๊ฐ ๋์ด์ ๋ณด์ด์ง ์์๋ค. ๊ทธ๋ ๊ฒ ๋ง๋ฌด๋ฆฌ๊ฐ ๋ ์ค ์์๋๋ฐ develop ๋ธ๋์น๋ฅผ Local ์ ์ฅ์๋ก Pull ๋ฐ์๋ณด๋ Info.plist ํ์ผ์ด ์์ ์ฌ๋ผ์ ธ ์์๋ค.
๋ ๋ฒ์งธ ์ค๋ฅ: Build Target
์ฌ๋ผ์ง Info.plist ํ์ผ์ ๋ค์ ๋ง๋๋ ๊ฑด ์ง์ ์๋ ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ ์ค ์์๋ค. ํ์ง๋ง ์ด๋ฒ์ ์ข ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์์ฝ๊ฒ๋ ์ค๋ฅ๋ฅผ ๊ธฐ๋กํด๋์ง ์์ ์ด๋ค ์ค๋ฅ์๋์ง ๋จ๊ธธ ์ ์์ง๋ง Build Target๊ณผ ๊ด๋ จํ ์ค๋ฅ์์ผ๋ฉฐ XCBuildConfiguration์ด ์ผ์นํ์ง ์๋๋ค?๋ผ๋ ์ค๋ฅ์๋ค. ์ค๋ฅ ๋ฉ์ธ์ง๋ฅผ ํ์ ํด๋ณด๋ Info.plist์ Target๊ฐ์ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ ๊ฐ์๋ค. ํ์ง๋ง ์ ๋ง ์ด๋ป๊ฒ ์ฐ๊ฒฐํด์ผํ๋์ง ์ ์ ์์ด ์ด์ ์ pushํ ๋ธ๋์น๋ฅผ Local๋ก ๋ถ๋ฌ์ ์ผ์ผ์ด ๋น๊ตํ๋ค. ๊ทธ๋ฌ๋ฉด์ Info.plist์ Custom iOS Target Properties์ ๊ฐ์ด ์๋ก ๊ฐ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์ค๋ฅ๊ฐ ๋ ๋ธ๋์น์ ํ๋ก์ ํธ๋ฅผ ํ์ธํด๋ณด๋ ์ญ์๋ ๋ ๊ณณ์ ๊ฐ์ด ๋ฌ๋๋ค.
์ด ์ฐจ์ด์ ์ ๋ฐ๊ฒฌํ ํ ์ ๋ฐ ๋์ผ๋ฉด ํ๋ ๋ง์์ผ๋ก ์๋ ๋ธ๋์น์์ property๋ฅผ ํ๋์ฉ ๋ณต์ฌํด ๊ฐ๊ฐ Info.plist์ Custom iOS Target Properties๋ก ๋ถ์ฌ๋ฃ์๋ค. ์์ ์ ์๋ฃํ๋ ์ค๋ฅ๋ ์์ด์ก๊ณ ๊ธฐ๊ธฐ์์๋ ์ฑ์ด ์ ์๋ํ๋ค.๐ฎ๐จ
๋์ด ์ ์ฐ๊ฒฐ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ ๋ ๊ฐ๋ก ๋๋๋๊ฑธ๊น..? ์ด๋ ๋ธ๋ก๊ทธ์์ ์๋์ ๊ฐ์ ๊ธ์ ๋ณด์๋ค. ์ด์ ๋ ์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ง๋ ๋ฐฉ๋ฒ์ด์๋ ๊ฒ ๊ฐ๋ค.
<Info.plist Is Missing in Xcode 13 — Here’s How To Get It Back ์ฐธ๊ณ >
๋จผ์ Xcode๋ ์๋์ ์ผ๋ก Custom iOS Targer Properties์ ๋ฐ๋ํ๊ธฐํ๋๋ Info.plist ์์ฑํ๋ค. ๊ทธํ ๋น์ ์ ์ํด Xcode๋ ๊ทธ ๋์ ๋ณํฉํ๋ค.
๋ง๋ฌด๋ฆฌ
์์์ ๋งํ๋ ์ค๋ฅ๋ง๊ณ ๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ฉด์ ๊ณ์ ๋ค์ํ ์ค๋ฅ๋ค์ ๋ง๋ฌ๋ค. ์ ๋ง ์ ๋ง ๊ทธ๋ง๋๊ณ ์ถ์์ง๋ง ํญ์ ๊ทธ๋ ๋ฏ ๊ผญ ํด๊ฒฐํ๊ฒ ๋ค๊ณ ๋ค์งํ๋ฉฐ ์ค๋ฅ ๋ฉ์ธ์ง ๋ถ์๊ณผ ๊ตฌ๊ธ๋ง, ๊ทธ๋ฆฌ๊ณ ๋น๊ตํ์ฌ ํด๊ฒฐํ๋ค!!!
์ค๋ ์ด ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ผ๋ฉด์ ๊นจ๋ซ๊ฒ ๋ ์ ์ด ์๋ค๋ฉด... .gitignore์ ํ๋ก์ ํธ ๋ง๋ค์๋ง์ ์ค์ ํ์..! ๋ง์ฝ ๊ทธ๋ ๊ฒ ๋ชปํ๋ค๊ณ ํ๋ฉด ํ์ผ์ ์ญ์ ํ์ง ๋ง๊ณ ์บ์๋ฅผ ์ญ์ ํ์!
iOS ์ด์์ฒด์ ๋, ํตํฉ๊ฐ๋ฐํ๊ฒฝ์ธ Xcode๋, ์ธ์ด์ธ Swift๋ ๊ฐ๋ฐ ๊ด๋ จํ ๋ชจ๋ ๊ฑด ๋๋ฌด ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค... ๊ฐ๋ฐ์ ์ง๋ง์์ ์ด๋ค๐ซ
Target
Info.plist Is Missing in Xcode 13 — Here’s How To Get It Back