Tuist
-
fastlane์ผ๋ก Firebase App Distribution ์๋ํ ๐คFastlane 2024. 1. 15. 07:05
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ fastlane์ ์ด์ฉํด์ Firebase App Distribution์ ์ฌ์ฉํ์ฌ ์ฑ์ ์๋ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณผ๊ป์ ๐๐ป ์ฐ์ ์ด์ ํฌ์คํ ์ธ Firebase App Distribution์ผ๋ก ์ฑ ๋ฐฐํฌํ๊ธฐ ํฌ์คํ ์ ๋จผ์ ๋ณด๊ณ ์ค์๋๊ฒ์ด ๋์์ด ๋ฉ๋๋คใ ใ Firebase App Distribution์ผ๋ก ์ฑ ๋ฐฐํฌํ๊ธฐ ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Firebase App Distribution์ ์ด์ฉํด ์ฑ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๊ทธ๋ผ ์ฐ์ Firebase App Distribution์ด ๋ญ์ง๋ถํฐ ์๊ณ ๊ฐ๊น์? Firebase Ap green1229.tistory.com ๋ํ ํธ์ฅ์๋ fastlane์ด ์ด๋ค๊ฑด์ง ์ด๋ป๊ฒ ์ค์น..
-
์ฑ ์ง์ ์ธ์ด ์ถ๊ฐ ๋ฐ ๊ธฐ๋ณธ ์ธ์ด ๋ณ๊ฒฝ (feat. Tuist)iOS 2023. 12. 14. 19:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ฑ์ ๊ธฐ๋ณธ ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ค์ํ ์ธ์ด๋ฅผ ์ง์ํ๋ ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ Tuist๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฌ์ค ๋๊ฒ ๊ฐ๋จํ๊ธดํด์ ํ๋ค๋ฅ ํ๋ฒ ์ ๋ฆฌํด๋ณผ๊ป์ ๐ ์ ์์๋ณด๊ณ ์ ๋ฆฌํ๊ฒ ๋์๋์ง? ์ฌ์ค VoiceOver๋ฅผ ํ๋ฒ ๋์ ํด๋ณด๋ฉด์ ํ์ํ๋ค๊ณ ๋๊ปด์ก์ด์. ์๋๋ฉด ๊ธฐ์กด ์ฑ์ด ์ ์ฒด ๊ตญ๋ด ๋ฐฐํฌ์ธ ํ๊ธ ์ฑ์์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ณธ ์ธ์ด ์ค์ ์ด English๋ก ๋์ด ์์๊ฑฐ๋ ์. ๊ทธ๋ ๊ธฐ์ ์ฌ์ค์ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ ์์์ง๋ง, ๋ณด์ด์ค์ค๋ฒ ๊ธฐ๋ฅ์ ์ผ๊ณ ์ค์ ๊ธฐ๊ธฐ์์ ํ๊ธ ํ ์คํธ๋ฅผ ์ฝ์ผ๋ฉด ๋ชป ์ฝ์ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๊ตฌ์. ๋ฌผ๋ก , ์ฑ ๋ด ์ ํ ๋ก๊ทธ์ธ ๋ฒํผ ๋ฑ ์ ํ์์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ API ๊ทธ๋ฐ๊ฒ๋ค์ ๋ํด์๋ ํ๊ธ๋ก ์ฝ์ด์ฃผ์ง๋ง ๊ฐ๋ฐ์๊ฐ String์ผ๋ก ๋ฃ์ Text๋ค์ ..
-
Tuist์ Configuration ์ค์ ํ๊ธฐTuist 2023. 5. 18. 14:06
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist์ Configuration์ ์์๋ณด๊ณ ๊ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ถ๋ฆฌํ์ฌ ์ค์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค๐ ๋ค์ด๊ฐ๊ธฐ ์ ํ์ ๊ฐ๋ฐ ํ๊ฒฝ ์ฒดํฌ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ๋ DEBUG์ RELEASE์ flag ์ฆ, build configuration์ ๊ฐ์ง๊ฒ ๋๋๋ฐ์. ๊ฐ์ ๋ง๋ค๊ณ ์๋ ํ๋ก์ ํธ์ ์ฑํฅ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ์ฌ๊ธฐ์ QA configuration๋ ์ถ๊ฐํ์ฌ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ค์ ์ ๋ ์ด 3๊ฐ์ configuration์ ์ค์ ํ๋๋ฐ์. ํ๋๋ ๋ด๋ถ ๊ฐ๋ฐ์ ๋ฐฐํฌ๋ฅผ ์ํ DEV, ๋ ํ๋๋ ์ค์ ํ๋ก๋ํธ ์ถ์ ์ QA๋ฅผ ์ํ QA, ๋ง์ง๋ง์ผ๋ก ์ค์ ์์ฉ ๋ฐฐํฌ๋ฅผ ์ํ RELEASE๋ก ๋๋ ์ ์์ต๋๋ค. ์, ๊ทธ๋ผ ์ด 3๊ฐ์ configuration์ Tuist๋ฅผ ํตํด ์ด..
-
Multiple commands ์๋ฌ ๋ฐ๋ก์ก๊ธฐ (feat. GoogleService-Info.plist)Tuist 2023. 5. 4. 13:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ์๋ ๊ฐํน ํ๋ฒ์ฏค ๋ณด์ จ์ Multiple commands ์๋ฌ์ ๋ํด ํ์ ํด๋ณด๊ณ ๋ฐ๋ก์ก๋ ์ค๋ฌด์ ๊ฐ๊น์ด ํฌ์คํ ์ด ๋ ๊ฒ ๊ฐ์์๐๐ป ์ฐ์ , ์ ๋ Tuist๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๊ณ ์์ฑํด์ฃผ๋๋ฐ ์ด๋ Prod / Dev / QA ์ด 3๊ฐ๋ก ํ๊ฒ ๋ฐ ์คํด์ ๋๋๊ณ ์ํฌ์คํ์ด์ค๋ฅผ ๊ตฌ์ฑํด์ค๋๋ค. ์ ๊ฒฝ์ฐ์ entitlement ํ์ผ์ด๋ผ๋์ง ์๋๋ฉด ํํ ์ฌ์ฉ๋๋ Firebase์ config ์ค์ ์ ์ํด GoogleServiceInfo.plist ํ์ผ์ ๊ตฌ์ฑํด์ฃผ๊ณ ๋ฆฌ์์ค์ ์ฌ์ด์ฃผ๊ฒ ๋๋๋ฐ์. ์ด๋ ๋ฆฌ์์ค ํด๋ ๋ด ๊ฐ ์ด 3๊ฐ์ GoogleServiceInfo.plist ํ์ผ์ด ์๊ธฐ๊ณ ์ด๋ฅผ ๋ฆฌ์์ค๋ก ๋์ผํ๊ฒ ๊ฐ์ ธ๊ฐ๋ คํ๋ ์๋ฌ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ GoogleServiceI..
-
Tuist์์ Firebase Crashlytics ์ค์ ํ๊ธฐTuist 2023. 4. 27. 10:39
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ Tuist์์ SwiftLint๋ฅผ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๋๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Firebase Crashlytics๋ฅผ ํ๊ฒ build script์์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ๋งค์ฐ ๊ฐ๋จํ์ง๋ง ํต์ฌ์ ์ธ ๋ถ๋ถ์ด ์์ต๋๋ค๐ฅ Tuist๋ฅผ ์ฌ์ฉํ์ง ์๋ ํํ์์ ๊ธฐ์กด ๋ฐฉ์ ์ฐ์ ๊ธฐ์กด Tuist๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ฑ ํ๊ฒ๋ค์์ ์ง์ ๊ด๋ฆฌํ๊ณ ๋ฃ์ด์ค๋๋ ์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ ์ ์์์ด์๐๐ป ๋ณด์๋ฉด Firebase Crashlytics๋ฅผ run ์ํค๊ธฐ ์ํ ๊ฒฝ๋ก๊ฐ Build Dir๋ก ๋ถํฐ SourcePackages๋ด ์ญ์ฃผ์ฃฝ ๊ฒฝ๋ก๊ฐ ์ด์ด์ ธ ์์ฃ !? ์ฆ ์ง๊ธ ํด๋น ์ฑ ํ๊ฒ์ ์ค์ SPM์ด๋ Pod์ด๋ ๊ด๋ฆฌ๋๊ณ ๊ฐ์ ธ์๊ธฐ์ ํ์ฌ ์ฑ ํ๊ฒ์ด ์ต์์ ๊ฒฝ๋ก๊ฐ ..
-
Tuist๋ฅผ ํตํด SwiftLint ์ฌ์ฉํ๊ธฐTuist 2023. 4. 25. 11:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist๋ก ํ๊ฒฝ ๊ตฌ์ถ์ ํ๋ฉฐ ์ฝ๋ ๋ฐ ํ์ผ ์ปจ๋ฒค์ ์ ์ก์์ฃผ๊ธฐ ์ํ SwiftLint๋ฅผ ๋์ ํ๋ฉด์ ์กฐ๊ธ ๋ ๋ผ์ดํธํ๊ฒ ์ฌ์ฉํด๋ณด๋ คํฉ๋๋ค๐๐ป ์ฐ์ , swiftLint๋ ๋ง์ด๋ค ์ฌ์ฉํ ๊ฒ ๊ฐ์๋ฐ์. brew๋ก swiftLint๋ฅผ ์ค์นํด์ค ์ ๋ ์๊ณ , CocoaPods์ด๋ Mint๋ก ํด๋น SwiftLint ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์น ํ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฌํ ๊ณผ์ ๋ค์ ํด๋น SwiftLint๋ฅผ ๋ชจ๋ ์์กด์ฑ ์ค์นํ๊ณ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์์ด Tuist๋ฅผ ์ฌ์ฉํ๋ฉด์ ์กฐ๊ธ ๋ ๋ผ์ดํธํ๊ฒ ํ์ํ ๋ถ๋ถ๋ง ๊ฐ์ ธ์ ์ค์ brew, Cocoapods, Mint๋ก ์ค์น ํ ํ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋์ ํด๋ดค์ต๋๋ค๐ ์์ฃผ ๊ฐ๋จ๋ช ๋ฃํ๋ ํ๋ฒ ๋ฐ๋ผ๊ฐ๋ณด์์ฃ ! Tuist๋ฅผ ๊ตฌ์ถํ๋ฉฐ Swi..
-
Tuist - Custom Flags ๋ค๋ฃจ๊ธฐTuist 2023. 4. 18. 16:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist๋ฅผ ์ค์ ํด์ฃผ๋ฉด์ ์ฝ์งํ๊ฒ์ค ํ๋๋ฅผ ๊ณต์ ํด๋ณผ๊นํด์๐๐ป ์ฐ์ ์ฃผ์ ๋ Custom Flags์ ๋๋ค. ๋ค๋ค, Debug / Relase๋ผ๋ ๊ธฐ๋ณธ swift compiler flag๊ฐ ์๋ค๋๊ฒ์ ์์ ๋ค๋ ๊ฐ์ ํ์ ์ฃผ์ ์ฃผ์ ํด๋ณผ๊ป์! Custom Flag ์ฝ์งํ๊ธฐ Tuist๋ฅผ ํตํด ์ ๋ ํ๋์ ํ๋ก์ ํธ์ Prod, Dev, QA ํ๊ฒ์ ๋๊ณ ์ด ํ๊ฒ๋ค์ ๊ฐ๊ฐ์ ์คํด์ผ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํ๋ ๋์ค ์ค์ ์ฌ์ฉ ์ฝ๋์์ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๋ฅผ๋ค์ด, Dev, QA, Prod์ API host url์ด ๋ค๋ฅด๊ฑฐ๋ ํ๋ฆฌ๋ทฐ๋ฅผ ๋์์ฃผ๊ฑฐ๋ ํ๋ ๊ฒ๋ค์์ ์ค์ ๋ก ํด๋น ํ๋๊ทธ๋ฅผ ์ฌ์ฉํด ์๋์ ๊ฐ์ด ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ณค ํ์ฃ . #if DEBUG print("๋๋ฒ๊น ~") #el..
-
Tuist์์ Lottie ๋ฆฌ์์ค ์ค์ ํ๊ธฐ (with. JSON)Tuist 2023. 4. 13. 09:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist๋ฅผ ํตํด Lottie ๊ตฌํ์ ์ํ ๋ฆฌ์์ค ์ค์ ์ ํด๋ณด๊ณ ๊ทธ๊ฑธ ์ฌ์ฉํด๋ณผ๊น ํฉ๋๋ค๐ ์ฐ์ Lottie๊ฐ ๋ฌด์์ธ์ง ์์ฃผ ๊ฐ๋ตํ๊ฒ ์ง์ด๋ณผ๊น์? Lottie ๊ฐ๋ตํ๊ฒ ์ง๊ณ ๋์ด๊ฐ๊ธฐ Lottie๋ ์์ด๋น์๋น์์ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒกํฐ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์ ๊ณผ ์ํธ๋ฅผ ์ต์ํ์ ์ฝ๋๋ก ์ค์๊ฐ ๋ ๋๋ง ํด์ฃผ๋ iOS/AOS์์ ๋ชจ๋ ์ง์ ๊ฐ๋ฅํ ๋ชจ๋ฐ์ผ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค! Bodymovin JSON ํ์์ผ๋ก ๋ด๋ณด๋ด์ง ์ ๋๋ฉ์ด์ ๊ณผ ๋ฒกํฐ๋ฅผ ๋ก๋ํด ๋ ๋๋ง ํด์ค์. ์ฌ๊ธฐ์ ์ค๋ ์ฐ๋ฆฌ๊ฐ ๋ค๋ค๋ณผ๊ฒ์ด๊ธฐ๋ ํ๋ฐ์. JSON ํ์์ผ๋ก Lottie ๋ฆฌ์์ค ํ์ผ์ด ๊ตฌ์ฑ๋์ด ์๋ค~ ์ ๋๋ง ์ฌ๊ธฐ์ ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.ใ ใ ๊ทธ JSON ํ์ผ์ ๋ฆฌ์์ค๋ก ๋ฐ์ ์ฐ๋ฆฌ๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด๋ณผ๊ฑฐ๋ค! ..