Focus On Develop ๐ŸคŸ๐ŸคŸ

[XCode] Github & Bitrise ์—ฐ๋™ํ•˜๊ธฐ ๋ณธ๋ฌธ

๊ณตํ†ต/ํ˜‘์—…Tool

[XCode] Github & Bitrise ์—ฐ๋™ํ•˜๊ธฐ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2021. 2. 23. 21:23

๋‹ค๋“ค ํ˜‘์—…์„ ์œ„ํ•ด ์†Œ์Šค๊ด€๋ฆฌ ํ•˜์‹œ์ฃ ~~? (Git, Github ๋“ฑ๋“ฑ ์‚ฌ์šฉํ•˜์‹ค๊ฑฐ์—์š”!)

๋ธŒ๋žœ์น˜๋”ฐ์„œ ์ž‘์—…ํ•˜๊ณ  ์ปค๋ฐ‹, ํ‘ธ์‰ฌํ• ๋•Œ! ํ˜น์‹œ๋‚˜ ๋ญ”๊ฐ€ ๋‚ด๊ฐ€ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•œ ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ํƒ์ง€ํ•ด์ฃผ๋Š”๊ฒŒ ์žˆ๋‹ค๋ฉด ์ข‹๊ฒ ์ฃ ..!?

๊ทธ๊ฒŒ ๋ฐ”๋กœ Bitrise๋ผ๋Š” ๋…€์„์ด์—์š”! Github๊ณผ Bitrise๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ๊ฒŒ์š”!

 

๐Ÿ˜Ž ์ด ํฌ์ŠคํŒ…์€ iOS App๊ฐœ๋ฐœํˆด์ธ XCode ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!


์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๊ตฌ์„ฑํ•ด๋ณผ๊ฑฐ์—์š”. ๋กœ์ปฌ Repository์—์„œ ๋ญ”๊ฐ€ ์ž‘์—…ํ•˜๊ณ , ์›๊ฒฉ Repository์— Commit, Push ํ•˜๊ณ ๋‚˜๋ฉด ์ž๋™์œผ๋กœ Bitrise๊ฐ€ Push๋œ ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€์„œ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•œ๋‹ต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์ด์œ ์—์„œ ๋นŒ๋“œ๋ฅผ ์‹คํŒจํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฒŒ์— Noti๋ฅผ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค! ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”! ๐Ÿ‘‰

 

 

1. Github Repository ๋งŒ๋“ค๊ธฐ

github.com/

 

GitHub: Where the world builds software

GitHub is where over 56 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

๊นƒํ—™ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด์„œ ๊ฐ€์ž…ํ•ด์ฃผ์„ธ์š”~! ๊ทธ๋ฆฌ๊ณ  Repository๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š”. ์šฐ์ธก ์ƒ๋‹จ '+' ๋ฒ„ํŠผ > New Repository๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์„ ๋ณด์‹œ๊ฒŒ ๋ ๊ฑฐ์—์š”.

์šฐ์„  ์‚ฌ์šฉํ•  Repository ๋ช…์„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”! Public, Private๋Š” ์ ‘๊ทผ์ œํ•œ์„ ์„ค์ •ํ•ด์š”. Public์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์†Œ์Šค๋ฅผ ๋‹ค์šด๋ฐ›๊ณ , ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (๋‹จ, Merge๋Š” Owner๋งŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”.) Private์€ ๊ฐœ์ธ์ด๋‚˜, ํŠน์ • ๋ฉค๋ฒ„์—๊ฒŒ๋งŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ฃผ๋Š”๊ฑฐ์—์š”. ๊ทผ๋ฐ github์€ ๋ฌด๋ฃŒ๊ณ„์ •์ผ ๊ฒฝ์šฐ Private ํ”„๋กœ์ ํŠธ์˜ ์ œํ•œ์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”!

READ ME ํŒŒ์ผ์€ ์–ด๋””์„œ ๋งŽ์ด ๋ณด์…จ์ฃ ~? ์ด ์†Œ์Šค๋Š” ์–ด๋–ค์–ด๋–ค ์†Œ์Šค๋‹ค~ ํ•˜๊ณ  ์„ค๋ช…ํ•˜๋Š” ์ผ์ข…์˜ ์„ค๋ช…์„œ ๊ฐ™์€๊ฑฐ์—์š”.

Commit, Pushํ• ๋•Œ github์—์„œ ๋ณ€๊ฒฝ๋œ ์†Œ์Šค๋ฅผ ํƒ์ง€ํ•ด์„œ, ๊ทธ ์†Œ์Šค๋ฅผ ์ปค๋ฐ‹ํ•˜๊ฒŒ ๋˜์ฃ ~? ๊ทธ๋ ‡๊ฒŒ ์ผ์ข…์˜ ์†Œ์Šค๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”! gitignore ์€ ์—ฌ๊ธฐ์— ํฌํ•จ๋œ ํŒŒ์ผ๋“ค์€ git์—์„œ ์†Œ์Šค๊ด€๋ฆฌ๋ฅผ ํ•˜์ง€๋งˆ์„ธ์š”! ํ•˜๊ณ  git์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ฑฐ์—์š”. ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์— ํฌํ•จ๋œ ํŒŒ์ผ์€ ์ปค๋ฐ‹ํ•˜๋ ค๊ณ  ํ•ด๋„ ๋œจ์ง€ ์•Š๊ฒ ์ฃ ~~? ์—ฌ๊ธฐ๋Š” ์„ค์ •ํŒŒ์ผ์ด๋‚˜, ๊ฐœ์ธ API Key๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด ๋“ฑ์„ ํฌํ•จ์‹œ์ผœ์ฃผ๋ฉด ๋˜์š”! gitignore๋ฅผ ์„ ํƒํ• ๋•Œ๋Š” ๋ณธ์ธ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

 

์งœ์ž”~~ ์ƒˆ๋กœ์šด Repository ๋งŒ๋“ค๊ธฐ์— ์„ฑ๊ณตํ–ˆ์–ด์š”!!

 

 

2. Project ๋งŒ๋“ค๊ธฐ

XCode ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”! ๋งŒ๋“œ์‹ค๋•Œ ์š”๊ธฐ ๋ณด์ด๋Š” ์ฒดํฌ๋ฐ•์Šค๋Š” ํ•ด์ œํ•ด์ฃผ์„ธ์š”~ ์ฒดํฌํ•˜์…”๋„ ๋˜๋Š”๋ฐ, ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๋กœ์ปฌ์— repository๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‚ดํŽด๋ณผ๊ฑฐ๋ž๋‹ˆ๋‹ค. 

 

 

3. Scheme ์„ค์ •

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ๋“ค์–ด ์กŒ์Šต๋‹ˆ๋‹ค~!! ๋ญ˜ ์‹คํ–‰ํ• ์ง€, ๋ญ˜ ํ…Œ์ŠคํŠธํ• ์ง€, ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ ํ• ์ง€ ๋“ฑ๋“ฑ์˜ ์„ค์ •์ •๋ณด๋ฅผ Scheme์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. Bitrise์—์„œ๋„ ์ด ํ”„๋กœ์ ํŠธ์˜ Scheme์„ ๋ถˆ๋Ÿฌ์™€์„œ ์„ค์ •์ •๋ณด์— ๋”ฐ๋ผ ๋นŒ๋“œ๋ฅผ ํ•˜๊ณ , ์„ฑ๊ณต์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ฃผ๊ฒŒ ๋˜์š”.

์ด Scheme์— ๋Œ€ํ•ด์„œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฃจ์ง€ ์•Š์„๊ฑฐ์—์š”! ๋‹ค๋งŒ, ์„ค์ •ํ™”๋ฉด์—์„œ ์š”๊ธฐ ์˜ค๋ฅธ์ชฝ์— Shared์— ์ฒดํฌ๋˜์–ด ์žˆ๋Š” ๊ฑฐ ๋ณด์ด์‹œ์ฃ ~? ์ด๋ ‡๊ฒŒ ํ”„๋กœ์ ํŠธ์˜ Scheme์ •๋ณด๋ฅผ Shareํ•˜๋„๋ก ์„ค์ •ํ•ด์ค˜์•ผ Bitrise์—์„œ ์ฝ์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฒดํฌํ•ด์ฃผ์„ธ์š”!

์„ค์ •์„ ์™„๋ฃŒํ–ˆ์œผ๋ฉด ์ด๋ ‡๊ฒŒ Finder์—์„œ ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ > ํŒจํ‚ค์ง€ ๋‚ด์šฉ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ•ด๋ณด์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด xcshareddata๋ผ๊ณ  ๊ณต์œ ๋˜๋Š” schemeํŒŒ์ผ์ด ์‹ ๊ทœ๋กœ ์ƒ์„ฑ๋œ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์‹ค์ œ๋กœ Bitrise์—์„œ๋Š” ์ด ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•ด์„œ ์„ค์ •์ •๋ณด๋ฅผ ์„ธํŒ…ํ•˜๊ณ  ๋นŒ๋“œํ•œ๋‹ต๋‹ˆ๋‹ค! (์—ฌ๊ธฐ์„œ ๋ฐ”๋กœ ์•ˆ๋ณด์ด์‹œ๋Š” ๋ถ„์€ XCode๋ฅผ ๊ป๋‹ค ์ผœ์‹œ๊ณ  ๋นŒ๋“œํ•œ๋ฒˆ ํ•ด๋ณด์„ธ์š”!)

 

 

4. github์— ํ”„๋กœ์ ํŠธ ์—ฐ๊ฒฐ 

์ด์ œ ํ”„๋กœ์ ํŠธ ์„ธํŒ…์€ ๋˜์—ˆ์œผ๋‹ˆ, ๋กœ์ปฌ์— ํ”„๋กœ์ ํŠธ Repository๋ฅผ ๋งŒ๋“ค๊ณ  github์— ๋งŒ๋“ค์—ˆ๋˜ Repository๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์ค„๊ฒŒ์š”! ๋จผ์ € ๋กœ์ปฌ์— Repository๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€์ฃผ์„ธ์š”.

git init

git init ๋ช…๋ น์–ด๋กœ ๋กœ์ปฌ Repository๋ฅผ ๋งŒ๋“ค์–ด์ค„๊ฒŒ์š”. ์ž˜ ๋งŒ๋“ค์–ด์ง€๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ Initialized~์–ด์ฉŒ๊ตฌ๊ฐ€ ๋ณด์ด์‹ค๊ฑฐ์—์š”.

๋‹ค์Œ์€ ์•„๊นŒ ๋งŒ๋“ค์—ˆ๋˜ github Repository๋กœ ๊ฐ€์„œ, ์ดˆ๋ก์ƒ‰ Code๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ณด์ด๋Š” ์ € URL์„ ๋ณต์‚ฌํ•ด์ฃผ๊ณ , ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„์™€์„œ Repository๋ฅผ ์—ฐ๊ฒฐํ•ด์ค„๊ฒŒ์š”!

git remote add origin { ๋ฐฉ๊ธˆ ๋ณต์‚ฌํ•œ git URL } 

์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์น˜๊ณ  ๋”ฐ๋กœ ์—๋Ÿฌ๋ฉ”์„ธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ์ž˜ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋Š” ๊ฑฐ์—์š”!

git status

git status ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ git ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณผ๊ฒŒ์š”! ์•„์ง์€ ์•„๋ฌด ์ปค๋ฐ‹๋„ ์—†๊ณ , (No commits yet) Git์—์„œ ์ถ”์ ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์ด ๋ณด์ด๋„ค์š”! (Untracked files) ํ„ฐ๋ฏธ๋„์—์„œ ์•ˆ๋‚ดํ•ด์ฃผ๋Š”๋ฐ๋กœ add๋ฅผ ํ•ด๋ณผ๊ฒŒ์š”.

 

 

5. add, commit, push

์—ฌ๊ธฐ์„œ ์ž ๊น, ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด add๋ฅผ ํ•˜๊ธฐ ์ „์— add์™€ Commit, Push ์˜ ๊ฐœ๋…์„ ์„ค๋ช…ํ•ด๋ณผ๊ฒŒ์š”.

add๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ "์ด ์†Œ์Šค๋“ค์„ git์—์„œ ๊ด€๋ฆฌํ•ด์ค˜."๋ผ๊ณ  ํ•˜๋Š” ์˜๋ฏธ์—์š”. ์—ฌ๊ธฐ์— ๋ช…์‹œํ•˜๋Š” ์†Œ์Šค๋“ค์„ git์—์„œ ์ถ”์ ํ•˜๋„๋ก ์†Œ์Šค ๊ด€๋ฆฌ๋Œ€์ƒ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š”๊ฑฐ๊ณ , commit์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ git์—์„œ ์ถ”์ ํ•˜๋Š” ์†Œ์Šค ์ค‘์—, ๋ณ€๊ฒฝ๋œ ์†Œ์Šค์— ๋Œ€ํ•ด์„œ "์ด ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‹ˆ git์—์„œ ๋ณ€๊ฒฝ๋œ ์†Œ์Šค๋กœ ๊ด€๋ฆฌํ•ด์ค˜." ๋ผ๊ณ  git์— ์ ์šฉํ•˜๋ผ๋Š” ๊ฑฐ์—์š”! ์ด๊นŒ์ง€๊ฐ€ ๋ฐ”๋กœ ๋กœ์ปฌ Repository์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ด์—์š”. ๊ทธ๋ฆฌ๊ณ  add๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜๊ณ , commit์„ ํ†ตํ•ด ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋œ ํŒจํ‚ค์ง€๋ฅผ ์ด์ œ ๊ฐ€์ง€๊ณ  ์žˆ์ฃ ? ์ด๊ฑธ ๋กœ์ปฌ์—์„œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…ํ• ๋•Œ ์ด ์†Œ์Šค๋ฅผ ๋ณด์ง€ ๋ชปํ• ๊ฑฐ์—์š”. ๊ทธ๋ž˜์„œ ์›๊ฒฉ Repository์— ์ ์šฉํ•˜๋Š”๊ฒŒ ๋ฐ”๋กœ push์—์š”. "๋‚˜ ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•ด์„œ ์ปค๋ฐ‹ํ–ˆ์œผ๋‹ˆ, ์ด๊ฑฐ ์›๊ฒฉ Repository์— ์˜ฌ๋ ค์ค˜" ๋ผ๊ณ  push๋ช…๋ น์„ ํ•˜๋Š”๊ฑฐ์ฃ .๐ŸคŸ๐ŸคŸ

 

๋‹ค๋ฅธ ํŒ€์›๋“ค๊ณผ ํ˜‘์—…์‹œ์— ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€, ๋จผ์ € ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— pull์„ ํ†ตํ•ด ์›๊ฒฉ Repository์— ์žˆ๋Š” ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋“ค(๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์ด pushํ•œ๊ฒƒ๋“ค)์„ ๋‚ด ๋กœ์ปฌ๋กœ ์ตœ์‹ ์†Œ์Šค๋ฅผ ๋ฐ›๊ณ  ์ž‘์—…ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์  ์žŠ์ง€ ๋งˆ์„ธ์š”~!

 

๊ทธ๋Ÿผ ๋‹ค์‹œ ์‹ค์Šต์œผ๋กœ ๋Œ์•„์™€์„œ ์ง„ํ–‰ํ•ด๋ณผ๊ฒŒ์š”. ๋จผ์ € pull์„ ํ•ด์•ผํ•œ๋‹ค๊ณ  ํ–ˆ์ฃ ? git pull ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์›๊ฒฉ Repository์— ์žˆ๋Š” ์ตœ์‹  ์†Œ์Šค๋ฅผ ๋ฐ›์•„์ฃผ์„ธ์š”. master๋ผ๊ณ  ์“ด๊ฑด ์–ด๋–ค ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์†Œ์Šค๋ฅผ ๋ฐ›์•„์˜ฌ๊ฑด์ง€ ์ •ํ•ด์ฃผ๋Š”๊ฑฐ์—์š”!

์ด์ œ ํ‘ธ์‰ฌํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์†Œ์Šค๋ฅผ ๋ฐ›์•„์™”์œผ๋‹ˆ, add๋ถ€ํ„ฐ ํ•ด๋ณผ๊ฒŒ์š”!

git add { addํ•ด์ค„ ํŒŒ์ผ ๋ชฉ๋ก }

์—ฌ๊ธฐ์„œ ํŠน์ • ํŒŒ์ผ๋งŒ ๋”ํ•ด์ฃผ๋ ค๋ฉด ๋ชฉ๋ก์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ช…์‹œํ•ด๋„ ๋˜์š”. ๊ทธ๋Ÿฐ๋ฐ ํ˜„์žฌ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ๋กœ์—์„œ ์ผ์–ด๋‚œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์€, ์•„๋งˆ ๋Œ€๋ถ€๋ถ„ ์ „๋ถ€๋‹ค ์ถ”๊ฐ€๋ฅผ ํ•ด์ฃผ๋Š” ์ƒํ™ฉ์ด ๋งŽ์„๊ฑฐ์—์š”.

git add .

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ . ์„ ํ†ตํ•ด "ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์„ ๋‹ค ๋”ํ•ด์ค˜." ๋ผ๊ณ  ๋ช…๋ นํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋‹ค์‹œ ์ƒํƒœ๋ฅผ ๋ณผ๊นŒ์š”?

์˜ค์˜ค~ ์ด์ œ๋Š” ํŒŒ์ผ๋“ค์ด ์ถ”๊ฐ€๋˜์„œ ์ปค๋ฐ‹ํ•ด์•ผํ•  ํŒŒ์ผ ๋ชฉ๋ก๋“ค์ด ์ญ‰ ๋ณด์ด๋„ค์š”! ์ปค๋ฐ‹์„ ํ•ด๋ณด์ฃ !

git commit -m "์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€"

git commit -m "์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€"๋ฅผ ํ†ตํ•ด commit ํ•  ์ˆ˜ ์žˆ์–ด์š”. '-m'์€ ์ด๋ฒˆ ์ปค๋ฐ‹์—์„œ ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ด๋Ÿฐ์ด๋Ÿฐ ํŒŒ์ผ๋“ค์ด ์ปค๋ฐ‹๋์–ด์š”! ํ•˜๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์˜ฌ๊ฑฐ์—์š”.

๊ทธ๋‹ค์Œ์€ ๋ญ์˜€์ฃ ~? ๋„ค!! ๋งž์Šต๋‹ˆ๋‹ค. ์ด์ œ ์›๊ฒฉ Repository๋กœ push๋ฅผ ํ•ด๋ณผ๊ฑฐ์—์š”!

git push origin master

git push ๋ช…๋ น์–ด๋กœ ์–ด๋–ค ๋ธŒ๋žœ์น˜์— ํ‘ธ์‰ฌํ• ๊ฑด์ง€๋ฅผ ์ •ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์ž˜ push๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋ณด์ผ๊ฑฐ์—์š”.

push๋ฅผ ํ–ˆ์œผ๋‹ˆ ์‹ค์ œ๋กœ ์ €์žฅ์†Œ์— ๋ญ”๊ฐ€ ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ๋ณผ๊นŒ์š”?

์›Œํ›„~~ ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๊ฐ€ pushํ•œ๊ฒŒ github์— ์ž˜ ๋ฐ˜์˜๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”!! ๐Ÿ‘๐Ÿ‘

์ง€๊ธˆ๊นŒ์ง€ github์— Repository๋ฅผ ๊ตฌ์„ฑํ•ด๋ดค๋Š”๋ฐ์š”! ์ด์ œ๋ถ€ํ„ฐ๋Š” Bitrise์— ์—ฐ๋™์„ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”~ ๐Ÿ˜Ž

 

 

6. Bitrise ์—ฐ๋™

www.bitrise.io/

 

Bitrise - Mobile Continuous Integration and Delivery

Continuous integration and delivery built for mobile: Automate iOS and Android builds, testing and deployment from your first install to the one millionth.

www.bitrise.io

๋จผ์ € Bitrise์— ์ ‘์†ํ•ด์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•ด์ฃผ์„ธ์š”. ์ €๋Š” github ๊ณ„์ •์œผ๋กœ ํšŒ์›๊ฐ€์ž…์„ ํ–ˆ์–ด์š”. (์–ด์ฐจํ”ผ github๊ณผ ์—ฐ๋™ํ•˜๋ ค๋ฉด github๊ณ„์ •์œผ๋กœ ์Šน์ธํ•ด์ค˜์•ผ ํ•œ๋‹ต๋‹ˆ๋‹ค..ใ…Ž) ๊ทธ๋‹ค์Œ์€ ์šฐ์ธก ์ƒ๋‹จ์˜ '+' > Add new App on Web UI๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ๋ณธ๊ฒฉ ์„ธํŒ…ํ•˜๋Š” ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์„ํ…๋ฐ์š”!

์ ‘๊ทผ ์ œํ•œ์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด์—์š”. ์ด๊ฑด ์–ด์ฐจํ”ผ ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์€ ๋ชป๋ด๋„ ์ œ๊ฐ€ ๋นŒ๋“œ๊ฐ€ ์ž˜ ๋˜๋Š”์ง€๋งŒ ๋ณด๋ฉด ๋˜๋‹ˆ๊นŒ, Private๋กœ ํ•ด์ค์‹œ๋‹ค.

 

์œ„์—์„œ ๋กœ๊ทธ์ธํ• ๋•Œ Github ๊ณ„์ •์œผ๋กœ ํ–ˆ์ฃ ~? ๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ!! ์šฐ๋ฆฌ๊ฐ€ ์—ฐ๊ฒฐํ•˜๋ ค๋Š” gitHub Repository๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„ค์š”! ์—ฐ๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ์•ฑ์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”~~

๊ทธ๋Ÿผ ์ข€๋” ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ• ๊ฑฐ๋ƒ๊ณ  ํ•˜๋Š”๋ฐ, ๋”ฐ๋กœ ํ•ด์ฃผ์ง€ ์•Š์„๊ฒŒ์š”! auto-add๋กœ ํ•˜๋ฉด ์–ด์ฐจํ”ผ bitrise์—์„œ github์˜ SSH Key๊ฐ’์„ ์ฝ์–ด ๊ฐˆ๊ฑฐ์—์š”.

 

๊ทธ๋‹ค์Œ์€ ์–ด๋–ค ๋ธŒ๋žœ์น˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋นŒ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ• ๊ฑด์ง€๋ฅผ ์ •ํ•ด์ค๋‹ˆ๋‹ค. ์ €๋Š” master ๋ธŒ๋žœ์น˜์—์š”~~

 

๊ทธ๋Ÿฌ๋ฉด bitrise๊ฐ€ ์•Œ์•„์„œ ์ด Repository์˜ ์ด ๋ธŒ๋žœ์น˜๋Š” iOS ์•ฑ์ด๊ตฌ๋‚˜~ ํ•˜๋ฉด์„œ ์•Œ์•„์ฐจ๋ฆฌ๊ณ , ์ด๋Ÿฐ ํ™”๋ฉด์„ ๋ณด๊ฒŒ ๋˜์‹ค๊ฑฐ์—์š”.

IPA๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฑด ์‚ฌ์šฉ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ๋ฐ, ์ €๋Š” ๋‹จ์ง€ ๋ฐ๋ชจ์šฉ์ด๋‹ˆ development๋ฅผ ์„ ํƒํ•ด์ค„๊ฒŒ์š”!

 

๋‹ค์Œ์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ๋„ ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”! ์ด๊ฒŒ iOS stack๋ถ€๋ถ„์„ ๋ณด์‹œ๋ฉด ์‚ฌ์šฉํ•˜๋Š” Mac, Xcode ๋ฒ„์ „์ด ํ•˜์œ„๋ฒ„์ „ ์ผ๊ฑฐ์—์š”. Edit์„ ํด๋ฆญํ•˜๋ฉด ์ž„์˜๋กœ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ต๋‹ˆ๋‹ค. ๋ณธ์ธ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”~~ (์ €๋Š” BigSur OS์ธ๋ฐ ์ด๊ฑด ์•„์ง ์—†๋„ค์š”! OS๊ฐ€ ๋‹ฌ๋ผ๋„ ํฐ ๋ฌธ์ œ๋Š” ์—†์Šต๋‹ˆ๋‹ค)

 

์ด๋ฏธ ๋“ฑ๋ก๋œ App Icon์ด ์žˆ์œผ๋ฉด Bitrise์—์„œ ์•Œ์•„์„œ ๋ถˆ๋Ÿฌ์˜ฌ๊ฑฐ์—์š”. ๊ทผ๋ฐ ์šฐ๋ฆฌ๋Š” ์•„์ง ์—†์ฃ ~? Skipํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ใ…‹ใ…‹

 

๋งˆ์ง€๋ง‰์œผ๋กœ, Webhook์„ ๋“ฑ๋กํ• ๊ฑฐ๋ƒ๊ณ  ๋ฌผ์–ด๋ณด๋„ค์š”. ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”! ์ด๊ฑด github์— push๋˜๊ณ  ๋‚˜๋ฉด, ๊ทธ๊ฑธ ์•Œ์•„์„œ ๊ฐ์ง€ํ•˜๊ฒ ๋‹ค๋Š” ๊ฑฐ์—์š”. ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์ด pushํ•˜๋ฉด ๋ฐ”๋กœ ํ…Œ์ŠคํŠธ๋นŒ๋“œ๋ฅผ ํ•ด์ฃผ๋Š”๊ฒŒ ๋ชฉ์ ์ด์˜€์ฃ ~? ๋“ฑ๋กํ•ด์ค์‹œ๋‹ค!

 

์˜ค์˜ค~~ ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์–ด์š”! ์ด์ œ ์š”๊ธฐ๋ฅผ ๋ˆ„๋ฅด๊ณ  ํ•œ๋ฒˆ ํ…Œ์ŠคํŠธ๋นŒ๋“œ๋ฅผ ํ•ด๋ณผ๊นŒ์š”? ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฌ๋‹ˆ Dash๋ณด๋“œ๋กœ ์ด๋™ํ•ด๋ด…์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ ์ฒซ๋ฒˆ์งธ๋กœ ์‹œ๋„ํ•œ ํ…Œ์ŠคํŠธ ๋นŒ๋“œ๋Š” ์‹คํŒจํ• ๊ฑฐ์—์š” ๐Ÿ˜‚๐Ÿ˜‚

 

Dashboard์—์„œ ์šฐ์ธก์— ๋ณด๋ฉด ์šฐ๋ฆฌ ์•ฑ์ด ๋ณด์—ฌ์š”. ์š”๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!

์ƒ๋‹จ์— Workflow๋ฉ”๋‰ด๋กœ ์ ‘์†ํ•ด์ฃผ์‹œ๊ตฌ์š”~~

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ผ๋ จ์˜ ์ž‘์—…ํ”Œ๋กœ์šฐ๊ฐ€ ๋ณด์—ฌ์š”. ๋ง๊ทธ๋Œ€๋กœ ์–ด๋–ค ๊ณผ์ •์„ ํ†ตํ•ด ์•ฑ์„ ํ…Œ์ŠคํŠธํ• ๊ฑด์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด์—์š”.

์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธ ๋นŒ๋“œ๋ฅผ ์‹คํŒจํ•œ ์ด์œ ๋Š”, Xcode Archive & Export ์ด๋ถ€๋ถ„ ๋•Œ๋ฌธ์ด์—์š”. IPA๋ฅผ ์ถ”์ถœํ•˜๋ ค๋ฉด ๊ฒฝ๋กœ๋„ ํ•„์š”ํ•˜๊ณ , ๋ณด์•ˆ์ •๋ณด ๋“ฑ๋“ฑ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ• ๋ถ€๋ถ„์ด ๋งŽ๋„ค์š”~! ๊ทผ๋ฐ ์šฐ๋ฆฌ๋Š” IPA์ถ”์ถœํ•˜๋Š” ์ด๋Ÿฐ ๊ณผ์ •์„ ์ง€๊ธˆ ํ•ด๋ณด์ง„ ์•Š์„๊ฑฐ์ฃ ?

๊ทธ๋ž˜์„œ workflow์—์„œ ์ด ๊ณผ์ •์„ ์ œ๊ฑฐํ•ด์ค„๊ฑฐ์—์š”! ์šฐ์ธก ์ƒ๋‹จ์— ํœด์ง€ํ†ต ๋ชจ์–‘์ด ๋ณด์ด๋Š”๋ฐ, ์ด๊ฑธ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.

 

IPA๋ฅผ ์ถ”์ถœํ•ด์„œ ์–ด๋”˜๊ฐ€์— ๋ฐฐํฌํ•˜๋Š” ๋Œ€์‹ , ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๋‹ˆ ๋งˆ์น˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•ด๋ณผ๊ฑฐ์—์š”. workflow์—์„œ ์›ํ•˜๋Š” ๋‹จ๊ณ„์— ์š”๊ธฐ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”

์•„๋งˆ ์—„์ฒญ ๋‹ค์–‘ํ•œ ํ•ญ๋ชฉ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ์„ ํ…๋ฐ, ์šฐ๋ฆฌ๋Š” simulator๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ถ”๊ฐ€ํ•ด์ค„๊ฒŒ์š”!

 

์ถ”๊ฐ€ํ•ด์ฃผ์‹œ๋ฉฐ๋…€ ์ด๋ ‡๊ฒŒ workflow์— ๋“ค์–ด๊ฐ”์„ ๊ฑฐ์—์š”! ์—ฌ๊ธฐ์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋Š” ํƒ€๊ฒŸ ๋””๋ฐ”์ด์Šค๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”~~

 

์•„์ฐธ, ๋งŒ์•ฝ์— ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ Workflow๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด, ๋งค๋ฒˆ ์ด๋ ‡๊ฒŒ ์›ํ•˜๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€/์‚ญ์ œํ•  ํ•„์š” ์—†์ด ์ƒ๋‹จ์— Triggers ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ Workflow๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”.

 

workflow๋ฅผ ์ˆ˜์ •ํ–ˆ์œผ๋‹ˆ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ํ•ด๋ณผ๊นŒ์š”?? ๋Œ€์‰ฌ๋ณด๋“œ๋กœ ๊ฐ€์„œ ์ด๋Ÿฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๋˜๊ธด ํ•˜๋Š”๋ฐ์š”!

์šฐ๋ฆฌ๋Š” github๊ณผ ์—ฐ๋™ํ•ด๋†“์€ ์ƒํƒœ๋‹ˆ, ์‹ค์ œ๋กœ ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  git์— pushํ–ˆ์„๋•Œ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์‚ดํŽด๋ณผ๊ฒŒ์š”. ๊ฐ„๋‹จํžˆ a๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค๊ณ  ์น˜๊ณ , git add~push๊นŒ์ง€ ํ•ด๋ณผ๊ฒŒ์š”!

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        var a = 11
    }

 

git status๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด, ์ด ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค!

์œ„์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ add, commit, push๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

github์— ๋ฐฉ๊ธˆ pushํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์˜ฌ๋ผ๊ฐ€์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ณ ์š”~~

Bitrise ๋Œ€์‰ฌ๋ณด๋“œ๋ฅผ ๋ณด์‹œ๋ฉด, ์ด๋ ‡๊ฒŒ ์•Œ์•„์„œ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•œ๊ฑธ ๋ณด์‹ค ์ˆ˜ ์žˆ์„๊ฑฐ์—์š”!! ์™€~~ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋ ค๋˜ ๋ชฉ์ ์ด ๋ฐ”๋กœ ์ด๊ฑฐ์˜€์–ด์š”!! ใ…‹ใ…‹ใ…‹ใ…‹ ์†Œ์Šค๋ฅผ ์˜ฌ๋ฆฌ์ž๋งˆ์ž ๋นŒ๋“œํ•ด์ฃผ๊ณ  ๋ญ”๊ฐ€ ์—๋Ÿฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด์ฃผ๋„ค์š”!! ์ง์ง์ง~~๐Ÿ‘

์‹œ๊ฐ„์ด ์ข€ ์ง€๋‚˜๊ณ  ๋‚˜๋ฉด.. ์ด๋ ‡๊ฒŒ ๋นŒ๋“œ๋ฅผ ์„ฑ๊ณตํ–ˆ๋‹ค๊ณ  ํ™•์ธ๋ฐ›์•˜์–ด์š”!!

 

๋นŒ๋“œ ์„ฑ๊ณต/์‹คํŒจ์— ๋”ฐ๋ผ Bitrise์—์„œ ๋ฉ”์ผ๋กœ ์•Œ๋ฆผ๋„ ์ด๋ ‡๊ฒŒ ํ•ด์ค€๋‹ต๋‹ˆ๋‹ค!! ใ…Žใ…Žใ…Ž ์งฑ์ข‹์ฃ ~~? 

 

 

 

์ด๋ ‡๊ฒŒ XCode ๋ฐ๋ชจ์•ฑ์„ ํ†ตํ•ด github, bitrise ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค!!

์˜ค๋Š˜๋„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๊ธธ ๋ฐ”๋ž˜์š” ๐Ÿ™

Comments