R.swift๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ Custom Resource( ์ด๋ฏธ์ง, ํฐํธ, ์ปฌ๋ฌ ๋ฑ)๋ค์ ๋ ํธํ๊ณ ๊น๋ํ๊ฒ
์ฝ๋๋ก ์ ์ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋งํฌ๋ฅผ ์ฒจ๋ถํด ๋๋ฆด๊ฒ์ : )
์ฌ์ฉ๋ฐฉ๋ฒ
README์ ์๋ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
R.Swift๋ฅผ ์ฌ์ฉํ์ง ์์์ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ์์ฑํฉ๋๋ค.
let icon = UIImage(named: "settings-icon")
let font = UIFont(name: "San Francisco", size: 42)
let color = UIColor(named: "indicator highlight")
let viewController = CustomViewController(nibName: "CustomView", bundle: nil)
let string = String(format: NSLocalizedString("welcome.withName", comment: ""), locale: NSLocale.current, "Arthur Dent")
R.Swift๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
let icon = R.image.settingsIcon()
let font = R.font.sanFrancisco(size: 42)
let color = R.color.indicatorHighlight()
let viewController = CustomViewController(nib: R.nib.customView)
let string = R.string.localizable.welcomeWithName("Arthur Dent")
์ค์น๋ฐฉ๋ฒ
์ผ๋จ ์ ์ ์ผํ๋ฅผ ๋จผ์ ๋ง์๋๋ฆฌ์๋ฉด
SPM์ผ๋ก ์ค์น๋ฅผ ์งํํ์ต๋๋ค.
์ค์น๋ ์ ์์ ์ผ๋ก ๋์์ง๋ง ์ฌ์ฉํ ์๊ฐ ์์์ต๋๋ค.
README๋ฅผ ๋ณด๋ฉด์ ์๋ดํด ์ฃผ์ ๋๋ก ์ ๋ฐ๋ผ๊ฐ๋ค๊ณ ์๊ฐํ์ง๋ง ์๊ฐ๋๋ก ๋์ง ์์์ต๋๋ค.
cocoa pod์ผ๋ก ์ค์น๋ฅผ ์งํํ๋ ค๊ณ ํ๋ค๊ฐ
๋ถ๋ช ํ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์
R.Swift Issue๋์ ๋ค์ด๊ฐ๋ดค์ต๋๋ค.
SPM๊ณผ ๊ด๋ จํ์ฌ ์ ์ ๊ฐ์ ํ์์ ๊ฒช๊ณ ์๋ ์ฌ๋๋ค์ด ๋ง์๋๋ฐ
์ฌ์ ํ ํด๊ฒฐ๋์ง ์์ ์ฑ๋ก ๋จ์์์์ต๋๋ค.
์ ๋ง ์ค๋ ์๊ฐ ๋์ ๊ตฌ๊ธ๋ง๊ณผ ํ ์คํธ๋ฅผ ํด๋ณธ ๋์
ํด๊ฒฐ๋ฐฉ๋ฒ์ ์์์์ต๋๋ค.
์ด๋ฏธ ์ ๋์ํ๊ณ ์๋๋ฐ ์ ๊ฐ ๋ชจ๋ฅด๊ณ ์์ด์ ๊ทธ๋ฐ ๊ฑธ ์๋ ์์ผ๋ ํน์ ๋ค๋ฅธ ๋์์ ์์๋ ๋ถ๊ป์๋ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์ : - )
1. Brew install rswift ( ๊ธฐ์กด์ ์ค์น๋ ๊ฒ ์๋ค๋ฉด ์ ๊ฑฐํด ์ฃผ์ธ์ )
2. TARGETS์์ Build Phases๋ก ๋ค์ด๊ฐ๋๋ค!
3. ์์ ์ด๋ฏธ์ง์์ ์ข์ธก ์๋จ์ ์๋ + ๋ฒํผ์ ๋๋ฅธ ์ดํ new run script phase๋ฅผ ํด๋ฆญํฉ๋๋ค.
4. ์คํฌ๋ฆฝํธ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด ์ฃผ์ธ์ + based on dependency analysis ๊ฐ ์ฒดํฌ๋์ด ์๋ค๋ฉด ์ฒดํฌ๋ฅผ ํด์ ํด ์ฃผ์ธ์.
5. ํ๋จ์ ์๋ Input Files์ Output Files์ ๋ค์ ๋ด์ฉ์ ์ ๋ ฅํด ์ฃผ์ธ์.
- Input Files → $TEMP_DIR/rswift-lastrun
- Output Files → $SRCROOT/R.generated.swift
6. Compile Sources ์๋ก ์์น๋ฅผ ์ฎ๊ฒจ์ฃผ์ ์ผ ํฉ๋๋ค.
7. ๋น๋๋ฅผ ์งํํฉ๋๋ค.
8. ์ด์ ๋ค์ SPM์ผ๋ก ์ค์น๋ฅผ ์งํํ์๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์ Rswift๋ง ์ค์นํ์๋ฉด ๋ฉ๋๋ค. Dynamic๊ณผ ๊ด๋ จ๋ ๊ฑด ์ฒดํฌํด์ ํด ์ฃผ์ธ์.
9. ์ค์น๊ฐ ๋ง๋ฌด๋ฆฌ๋๊ณ ๋๋ฉด R.generated.swift ํ์ผ์ด ์์ฑ๋์์ ํ ๋ฐ ์ด๊ฑธ ํ๋ก์ ํธ ํด๋์ ์ถ๊ฐํด ์ค๋๋ค.
- Copy items if needed๋ ์ฒดํฌ ํด์ ํด ์ฃผ์ธ์ : - )
10. ์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ์กด์ SPM์ผ๋ก ์ค์น๋์ง ์๋ ๊ฒ์ ํด๊ฒฐํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ค๋์ R.swift ์ฌ์ฉ๋ฒ์ด๋ SPM์ผ๋ก ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์ ์ด๋ดค์ต๋๋ค.
์ ํํ ์ด๋ค ์ด์ ์ธ์ง๋ฅผ ์์ง ๋ชปํ์ง๋ง ์ ํด๊ฒฐ๋์ด ๊ธฐ์๋ค์.
๊ทธ๋ผ ์ด๋ง ๐๐ป ๐๐ป ๐๐ป
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋๋ ์คํ์์ค์ ๊ธฐ์ฌํด๋ณด๊ณ ์ถ๋ค (๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ ๋ฐฉ๋ฒ) (0) | 2022.02.08 |
---|---|
[Swift] Moya๋ฅผ ์ฌ์ฉํด๋ด ์๋ค. (0) | 2022.02.07 |
[Swift] Foundation Framework์ ๋ํด์ (0) | 2022.02.05 |
[Swift] URLSession์ ๋ํด์ ์์๋ณด์ (0) | 2021.12.24 |
[Swift] Codable ( Decodable & Encodable ) ์ ๋ํด์ (0) | 2021.12.22 |