ํฐ๋ฏธ๋์์
pod lib create [pod name]
https://guides.cocoapods.org/making/using-pod-lib-create
์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํ๋ซํผ์ ์ ํํ ์ ์๋ ๋ฌธ๊ตฌ๊ฐ ๋์ด
์ง๊ธ์ ๋ก์ปฌ์์ ์์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด์ ์ ์์ ํ ๊ฐ์ ์ด๋ฆ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง ์์ํ, ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ค
What platform do you want to use?? [ iOS / macOS ]
> iOS
์ด๋ iOS ์ ํ (๋งฅ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ค๋ฉด macOS๋ฅผ ์ ํํ๋ฉด ๋จ)
What language do you want to use?? [ Swift / ObjC ]
> Swift
ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉํ ์ธ์ด ์ ํ
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
๋ฐ๋ชจ์ฑ์ ํฌํจ ์ํฌ ๊ฒ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฌป๋ ๊ฒ์ผ๋ก Yes๋ก ์ค์ ํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ํ๋ฉด์ ๋ฐ๋ชจ์ฑ์ ์คํ ์ํฌ ์ ์๋๋ด
Which testing frameworks will you use? [ Quick / None ]
> None
ํ ์คํธ์ ์ฌ์ฉํ ํ๋ ์์ํฌ๋ฅผ ์ง์ ํ๋ ๊ฒ์ผ๋ก Quick ํน์ ์ง์ ์ํ ์ ์์
Would you like to do view based testing? [ Yes / No ]
> No
๋ทฐ ๋จ์์ ํ ์คํ ์ ํ ๊ฒ์ธ์ง ๋ฌป๋ ๊ฒ
What platform do you want to use?? [ iOS / macOS ]
> iOS
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
์ค์ ์ด ๋๋๋ฉด ์๋์ผ๋ก ํด๋น ํ๋ก์ ํธ๊ฐ Xcode๋ก ์คํ๋จ
์ด๋ฏธ ์์ฑ๋ ์ด๋ฆ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ง๋ค๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ user ํ์ผ์ ๋ค์ด๊ฐ๋ฉด pod name์ผ๋ก ์ง์ ํ ํ๋ก์ ํธ ํ์ผ์ด ์์ฑ๋จ -> ํด๋น ํ์ผ ์ญ์
Pods > Development Pods์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์
์ฌ๊ธฐ์ ์์ฑ๋ ์ฝ๋๋ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ฌ๋์ด ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ ํจ
๊นํ๋ธ ์ฐ๊ฒฐ
๋ ํฌ์งํ ๋ฆฌ ์์ฑํ๊ธฐ ์ด๋ ๊ธฐ์กด์ ์๋ ๋ ํฌ์งํ ๋ฆฌ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์
public์ผ๋ก ์์ฑํด์ ๋ค๋ฅธ ์ฌ๋๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํจ
์ด์ ํฐ๋ฏธ๋์ cd ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ํ์ผ๋ก ์ด๋ํจ
git init
git config user.name ""
git config user.email ""
git add README.md
git add .
git commit -m "first commit"
git tag -a 0.0.1 -m "Version 0.0.1"
git remote add origin https://github.com/[user name]/[your repository name].git
git push -u origin main
ํ๋์ ๋งฅ์์ ์ฌ๋ฌ ๊ณ์ ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ๊ณ์ ์ config ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์ง์ ํด ์ค ์ ์์
push ์ ๊นํ๋ธ์ username๊ณผ access token ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์์ ์ผ๋ก ํธ์๊ฐ ์ด๋ฃจ์ด์ง
ํ๊ทธ๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ฏ๋ก ํธ์ ํ ๋ ํ๊ทธ ์ ๋ณด๋ฅผ ์์ฑํด ์ค์ผ ํจ
projectName.podspec ์์ dependency์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์
s.version์ ๊ฐ์ ํ๊ทธ์ ๊ฐ๊ณผ ๋์ผํ๊ฒ ๋ณ๊ฒฝํจ
๋ณ๊ฒฝ ํ ๋ฆฌ๋ชจํธ์ ํธ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ํฐ๋ฏธ๋์์
git add .
git commit -m "CNG version and tag"
git push
์๋ฌด ์์ ๋ ์์ด ํธ์๋ฅผ ํ๋ ๋๋ฌด ํ์ ํ๋ค
๋ฆด๋ฆฌ์ฆ ์ ๋ณด ์์ฑ
์ค๋ฅธ์ชฝ ๋ค๋น๊ฒ์ด์ ์ ๋ณด๋ฉด Releases๋ฅผ ์์ฑํ๋ ๊ณณ์ด ์์
Create a new release๋ฅผ ๋๋ฌ์ ๋ฆด๋ฆฌ์ฆ ์ ๋ณด๋ฅผ ์์ฑํ๋ค
์ฒ์์ ์๋จ์ ํ๊ทธ ์ ํ๋์ ํ๊ทธ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ์์ฑํ๊ณ ์ ํ๋ ๋ฒ์ ์ผ๋ก ํ๊ทธ๋ฅผ ์์ฑํด ์ค
(์ด๊ฑฐ ์ํด ์ฃผ๋ฉด CocoaPods ๋ฐฐํฌ๊ฐ ์๋๋ค... ใ
)
๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ create a new release ์์ฑ๋์ ์ด๋ ๊ฒ ํ๊ทธ ์ ๋ณด๊ฐ ๋ณด์ธ๋ค
CocoaPods์ ํธ์
์ฒ์ CocoaPods์ ํธ์ํ๋ ค๋ฉด ์ด๋ฉ์ผ ๋ฑ๋ก๊ณผ ์ธ์ฆ์ด ํ์ํจ
pod trunk push --allow-warnings
์ด์ ๋ ํฌ์งํ ๋ฆฌ ๋ฃจํธํ์ผ์์ ํด๋น ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค
์ด๋ ๋ฐ์ํ ์ ์๋ ๋ช๊ฐ์ง ์๋ฌ(ํน์ ์ด์) ๊ฐ ์๋ค. CocoaPods ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ด ๋ฐฐํฌ์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ด๋ค!
[!] Specify at least your email address.
$ pod trunk register EMAIL [YOUR_NAME]
Register a new account, or create a new session.
์ด๋ฉ์ผ๊ณผ ์ด๋ฆ (๊นํ๋ธ์์ ์ฌ์ฉํ๊ณ ์๋ ์ด๋ฉ์ผ๊ณผ ์ด๋ฆ์ ๋ ฅํด ์ฃผ์์) ์ ์ ๋ช ๋ น์ด ํํ๋ก ์ ๋ ฅํ๋ฉด
ํด๋น ์ฃผ์๋ก ์ธ์ฆ๊ฐ๋ฅํ ๋ฉ์ผ์ ๋ณด๋ด์ค๋ค
Please verify the session by clicking the link in the verification email that has been sent to
๋ฉ์ผ ์ธ์ฆ ์์ด ์งํํ๋ฉด ์ ๋ฌธ๊ตฌ๊ฐ ๋ํ๋๋ค
๋ฉ์ผ๋ก ๋ณด๋ด์ค url๋ก ๋ค์ด๊ฐ๋ฉด CocoaPods ํํ์ด์ง์์ ํด๋น ๋ฌธ๊ตฌ๊ฐ ๋ํ๋๋ค
์ด์ ์ค๋น๊ฐ ๋ฌ๋ค
pod trunk push --allow-warnings
์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ณ ํ ๋ฑ๋ก์ ๋ง๋ฌด๋ฆฌ ํ๋ค
ํน์ ํ๋์ ๋งฅ์์ ์ฌ๋ฌ ๊ณ์ ์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ ๊นํ๋ธ ์ ๋ณด๊ฐ ๊ผฌ์ผ ์ ์๋ค
๊ทธ๋ด ๊ฒฝ์ฐ podspec ์ ์๋์ผ๋ก ์ ๋ ฅ๋ ์ ๋ณด๋ ๊ผฌ์ด๊ฒ ๋๋๋ฐ, username์ด ๊ผฌ์ธ ๊ฒฝ์ฐ
projectName.podspec์ผ๋ก ๋ค์ด๊ฐ์
s.homepage = 'https://github.com//'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '' => '' }
s.source = { :git => 'https://github.com//.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
์ด ๋ถ๋ถ์ด ๋ ํฌ์งํ ๋ฆฌ ์ ๋ณด๊ฐ ๋ง๋์ง ํ์ธํ๋ค
s.homepage์ s.author, s.source์ ์ ๋ณด๊ฐ ๋ ํฌ์งํ ๋ฆฌ ์ ๋ณด์ ์ผ์นํด์ผ ๋ฑ๋ก ๊ฐ๋ฅํ๋ค.
(๋ฑ๋กํ๊ธฐ ์ ์ ๋ก์ปฌ ์ ์ฅ์์ ์๋ podspec์ ์ ๋ณด๊ฐ ์ ๋๋ก ๋์ด ์๋์ง ํ์ธ ํ์)
warning: Could not find remote branch 0.0.1 to clone.
fatal: Remote branch 0.0.1 not found in upstream origin
์ ์ค๋ฅ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ ๊นํ๋ธ์ ๋ฑ๋กํ ๋ฆด๋ฆฌ์ฆ ์ ๋ณด๊ฐ ์ ํํ์ง ํ๊ทธ๊ฐ ์์ฑ๋ ๊ฒ์ด ๋ง๋์ง ํ์ธํ๋ค
์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ๋์
https://medium.com/@jeantimex/create-your-own-cocoapods-library-da589d5cd270
https://betterprogramming.pub/how-to-create-a-public-cocoapods-library-23e9c8f773f8
https://stackoverflow.com/questions/37038659/issue-when-creating-my-first-cocoapod
'๐ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS/Swift] UIViewControllerTransitioningDelegate (0) | 2023.01.29 |
---|---|
[iOS/Swift] UIViewControllerAnimatedTransitioning ์ ๋ฆฌ (0) | 2023.01.29 |
[iOS Swift] Deeplink ์ฌ์ฉํ๊ธฐ (0) | 2022.12.29 |
[SwiftUI] Sticky Header ์คํฌ๋กค์ ๊ณ ์ ์ํค๊ธฐ (0) | 2022.12.17 |
[SwiftUI] Model, ViewModel ์์ฑ (0) | 2022.12.17 |
๋๊ธ