๐ ์ฝ์ฝ์ํ ๋ช ๋ น์ด
# ์์ฑํ Podfile์ ํตํด pod์ ์ค์ (์ถ๊ฐ,์์ ,์ญ์ )ํด์ฃผ๋ ๋ช
๋ น์ด
$ pod install
- ํด๋น ๋ช
๋ น์ด๋ฅผ ์คํํ ํ .xcworkspace ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ํด๋น ํ์ผ์ .xcodeproj์ ๋ชจ์์
๋๋ค.
- Xcode ํ๋ก์ ํธ๋ฅผ ์ํฌ์คํ์ด์ค๋ผ๋ ํ๋์ ์์ ๊ณต๊ฐ์ผ๋ก ๋ฌถ์ด๋์ ๋จ์์ ๋๋ค. ์ฌ๋ฌ Xcode ํ๋ก์ ํธ์ ์์กด์ฑ์ ์ฐ๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋์ ์ฝ์ฝ์ํ์ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๋ฉด ๊ธฐ์กด ํ๋ก์ ํธ์ ์์กด์ฑ์ ๋งบ์ด์ฃผ๊ธฐ ์ํด ์ํฌ์คํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ฒ์์ ์์ฑํ ํ๋ก์ ํธ์ ๋ฐ์์จ Pod๋ค์ ๋ฌถ์ด์ ํ๋์ ์ํฌ์คํ์ด์ค๋ก ๊ตฌ์ฑํ์ฌ ๊ธฐ์กด ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ์ํฌ์คํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
# ํ์ ์
๋ฐ์ดํธ๋ ๋ฒ์ ์ ํ์ธํ ํ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ (Podfile.lock ์ฐธ์กฐํ์ง ์์ต๋๋ค.)
$ pod update
# ๋ชจ๋ ํ๋์๋ง ์ ์ฉํ ๊ฒฝ์ฐ, pod update [๋ชจ๋๋ช
] —no-repo-update
$ pod update {ํ์ด๋ฆ} -> ๊ฐ๋ณ์ ์ธ pod์ ๋ํ ์
๋ฐ์ดํธ๋ ๊ฐ๋ฅ
# Podfile.lock์ ์์ฑ๋์ด์๋ ๋ฒ์ ๋ณด๋ค ์๋ก์ด ๋ฒ์ ์ ๊ฐ์ง ํ์ ๋์ดํด์ฃผ๋ ๋ช
๋ น์ด
$ pod outdated
# /Users/{์ฌ์ฉ์์ด๋ฆ}/.cocoapods/repos ๊ฒฝ๋ก์ ์๋ ๋ชจ๋ podspec ํ์ผ์ ์
๋ฐ์ดํธ ํฉ๋๋ค.
$ pod repo update
# ๊ฐ๋ณ์ ์ธ pod์ ๋ํ ์
๋ฐ์ดํธ๋ ๊ฐ๋ฅ
$ pod repo update {ํ์ด๋ฆ}
# ๊ธฐ์กด์ ํ๋ค ์ข
์์ฑ ์ ๊ฑฐ
$ pod deintegrate
๐จ ์ฝ์ฝ์ํ ์๋ฌ
1. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES ์๋ฌ
[!] The `ํ๋ก์ ํธ๋ช
[๋น๋configuration๋ช
]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-PAPA/Pods-PAPA.stage.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
- Build Settings → Build Options ์ Always Embed Swift Libraries๋ฅผ $(inherited)๋ก ๋ณ๊ฒฝํฉ๋๋ค.
2. CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER ์๋ฌ
[!] The `ํ๋ก์ ํธ๋ช
[๋น๋configuration๋ช
]` target overrides the `CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER` build setting defined in `Pods/Target Support Files/Pods-CommonData/Pods-CommonData.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
- Build Settings → Build Options ์ Quoted Include In Framework Header๋ฅผ $(inherited)๋ก ๋ณ๊ฒฝํฉ๋๋ค.
3. ์ฝ์ฝ์ํ์ด๋ ์๋ํํฐ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฒ์ ๋ช ์๋ ๋งค์ฐ ์ค์
- ๋ฒ์ ์ด ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ด์๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ ์ ํ๋ ๊ฒฝ์ฐ ๊ผญ ๋ฒ์ ๋ช ์๋ฅผ ์์ฑํฉ๋๋ค.
4. ์ฝ์ฝ์ํ ์ญ์ ํ ์ฌ์ค์น
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile
5. CocoaPod Refresh
$ pod cache clean --all
$ pod deintegrate
$ rm Podfile.lock
6. FireStore ๋น๋์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ๋ ์ด์
pod 'FirebaseFirestore', :git => '<https://github.com/invertase/firestore-ios-sdk-frameworks.git>', :tag => '10.19.0'
์ฐธ์กฐ : CocoaPods binary cache (์ฝ์ฝ์ํ ์ฌ์ฉ์ Xcode๋น๋์๊ฐ ๋จ์ถ์ํค๊ธฐ)
๊ฐ๋จํ Xcode์์ ์ปดํ์ผํ๊ธฐ ์ ์ธ pod install ์์ ์ ์ฌ์ ์ปดํ์ผ์ ์งํํ์ฌ Xcode ๋น๋์๊ฐ์ ๋จ์ถ์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ง์ ํ pod์ ๋ํด ์ฌ์ ๋น๋๋ฅผ ์ํํด ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ง๋ค๊ณ , ์ด๋ฅผ Pods ํ๋ก์ ํธ์ ์ฐ๊ฒฐํ๋ ์์ผ๋ก pods ๋น๋ ์๊ฐ์ ์์ ์ค๋๋ค.
- ์ฌ์ ๋น๋๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ฑ์ Git ์ ์ฅ์์ ํํ๋ก ์ ๊ณตํด ๋ก์ปฌ, ์๊ฒฉ ๊ฒฝ๋ก๋ฅผ ํตํด(๋ณ๋ ์ง์ ๊ฐ๋ฅ) ๋งค๋ฒ ๋ฐ๋ก ๋น๋ํ ํ์์์ด ํ๋ฌ๊ทธ์ธ ๋ช ๋ น์ด๋ฅผ ํตํด ๋น๋๋ ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํฉ๋๋ค.
7. Sandbox: rsync.samba ์ด์
Xcode 15๋ถํฐ Pod์ ์ถ๊ฐํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๊ฒฝ์ฐ ๊ถํ ๋ฌธ์ ๋ก ์ธํด Sandbox ์ ๊ทผ ๊ฑฐ๋ถ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
User Script Sandboxing์ No๋ก ์ค์ ํ๋ฉด ๊ฐ๋จํ๊ฒ ํด๊ฒฐ๋ฉ๋๋ค.
8. ๊ตฌ๊ธ๋ก๊ทธ์ธ Pod ์ค์น ์ด์
Firebase ์ ํ๋ค๊ณผ ์ฐ๊ฒฐ๋์ด์์ด์ GoogleUtilites๋ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ์ค์น๋ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๐ง [CP] Copy Pods Resources ์ญ์ ๋์๋ค??
[CP] Copy Pods Resources ์คํฌ๋ฆฝํธ์ ๋ชฉ์ ์ CocoaPod์์ ์๋์์ฑ๋๋ ์คํฌ๋ฆฝํธ์ธ๋ฐ ์ถ๊ฐํ Pod์์ Resource(์ด๋ฏธ์ง, ํฐํธ ๋ฑ๋ฑ)์๋ ๊ฒฝ์ฐ ์์ฑ๋๋ ์คํฌ๋ฆฝํธ์
๋๋ค.
Firebase, ๋๋ ๊ตฌ๊ธ๋ก๊ทธ์ธ ํ๋ค ์ค์์ Resource๊ฐ ์์ด์ก๊ธฐ ๋๋ฌธ์ ์ญ์ ๋ ๊ฒ์
๋๋ค.
Firebase ์ ํ๋ค๊ณผ ๊ตฌ๊ธ๋ก๊ทธ์ธ ํ๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ํ๋ ๊ฒฝ์ฐ Xcode → Build Phases์ pod install์ ์๋์ผ๋ก ์์ฑ๋๋ [CP] Copy Pods Resources๊ฐ ์ถ๊ฐ๋์ง ์์์ต๋๋ค.
9. CocoaPod์ Spec๊ณผ Github์ Releases Tag๋ฒ์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณ Github ์ ์ฅ์์ Releaseํ๊ทธ๋ฒ์ ์ ํ์ธ ํ ํ pod์ ์ค์นํ์ฌ๋ ๐ CocoaPods Spec์ ์๋ค๋ฉด ์ค์น๊ฐ ์๋๋ฏ๋ก ๐ CocoaPods Spec๊ธฐ์ค์ผ๋ก ์ค์นํฉ๋๋ค.
๐ ์ฐธ๊ณ ๋งํฌ
- cocoapods-binary (ํ์ฌ๋ 2019๋ ์ดํ๋ก ์ ๋ฐ์ดํธ โ)
- cocoapods-binary-cache (์ฐ๋ฒ์์ ๋ง๋ ์คํ์์ค 2021๋
๊น์ง ์
๋ฐ์ดํธ)
- binary-cache ์ ๋ฆฌ (ํ๊ตญ ๋ธ๋ก๊ทธ) - https://bonoogi.postype.com/post/10495540
- binary-cache ์ ๋ฆฌ 2 (๊ฐํ๋ ๋ธ๋ก๊ทธ) - https://medium.com/@okanghoon/cocoapods-binary-cache-๋ก-๊ฐ๋ฐ-ํ๊ฒฝ-๋น๋-์๋๋ฅผ-๋-๋น ๋ฅด๊ฒ-๋ง๋ค๊ธฐ-6920f61d9b2c
'iOS > 3rd Party Library' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] CocoaPods - ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ ๋ฐ ๋ฐฐํฌํ๊ธฐ (4) | 2024.07.23 |
---|---|
[iOS] CocoaPods - ๊ธฐ๋ณธ์ค๋ช (1) | 2024.07.23 |
[iOS] Fastlane Plugin์ ํ์ฉํ์ฌ ์ฑ์์ด์ฝ Badge ํ์ (0) | 2024.07.02 |
[iOS] FSCalendar ๋ผ์ด๋ธ๋ฌ๋ฆฌ (1) | 2024.05.27 |
[iOS] Atributika ๋ผ์ด๋ธ๋ฌ๋ฆฌ (HTML to NSAttributedString) (0) | 2024.03.20 |