일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- commit
- iOS앱개발올인원패키지Online.
- viewDidLoad
- 픽셀
- 뉴북
- 입력 개수 제한
- git
- 마크다운
- SWIFT
- ios
- 포인트
- commit messages
- viewDidAppear
- commit message
- 플랫디자인
- .DS_Store
- 뉴모피즘
- 스큐어모피즘
- 직장인자기계발
- git workflow
- 머티리얼 디자인
- 패스트캠퍼스
- 패스트캠퍼스후기
- Xcodebuild
- 8 그리드 시스템
- 직장인인강
- 디자인 트렌드
- 패캠챌린지
- Git Tutorial
- 아이폰
- Today
- Total
왕논의 연구실
[Xcode] 앱 버전 & 빌드 관리 본문
앱을 새롭게 출시하려고 할 때, 버전을 올려서 출시를 해야합니다. 기존보다 숫자를 올리기만 하면 되니까 그냥 올릴 수도 있지만, 규칙을 가지고 올린다면 프로젝트를 관리하는데 더 편하게 관리할 수 있습니다.
버전
사람이 읽기 위한 릴리스버전을 관리하기 위해 사용합니다.
0.0.0
위와 같은 [메이저], [마이너], [패치] 형식으로 버전을 관리합니다.
[메이저] : 기존버전과 호환되지 않을 정도의 API 변화가 있는 업데이트에 올린다고 합니다.
저는 UI에 큰 변화가 있거나 앱의 방향성을 바꾸는 기능 업데이트시 올리려고 합니다.
[마이너] : 기존버전과 호환되면서 새로운 기능이 추가된 업데이트에 올린다고 합니다.
저도 UI에 큰 변화없는 기능 추가시 올리려고 합니다.
[패치] : 기존버전과 호환되면서 버그수정. 자잘한 수정이나 버그 수정 정도의 업데이트를 생각하면 됩니다.
참고
유의적 버전 2.0.0
Semantic Versioning spec and website
semver.org
빌드 번호
빌드번호를 작성하는 방법에는 2가지가 있습니다.
날짜 + 그 날 빌드 돌린 횟수로 정하는 것과 계속 1씩 올리는 것이 있습니다.
코드로 접근하는 법
각 항목의 키값입니다.
extension Bundle{
// 앱 이름
class var displayName : String{
if let value = Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String{
return value
}
return ""
}
// 번들 식별자
class var bundleIdentifier: String{
if let value = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String {
return value
}
return ""
}
// 버전
class var appVersion: String{
if let value = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
return value
}
return ""
}
// 빌드 번호
class var appBuildVersion: String{
if let value = Bundle.main.infoDictionary?["CFBundleVersion"] as? String{
return value
}
return ""
}
}
빌드번호 자동 증가
릴리즈 버전 같은 경우는 각 숫자를 올려야하는가에 대한 판단을 한 후 올려야 합니다. 하지만 빌드번호같은 경우는 조건에 따라 증가시키기만 해도 되어서 쉘 스크립트를 사용하여 자동 증가 시킬 수 있습니다.
검색해서 나오는 많은 쉘 스크립트의 경우에는 xcode 11이전에 작성된 것 같습니다. xcode 11이전에는 info.plist 파일에서 빌드번호를 읽었는데, xcode 11버전 이후에는 pbxproj에서 값을 읽어들이는 방식으로 바뀌었습니다. 그래서 기존 쉘 스크립트를 넣으면 오류가 납니다. 그래서 기존에 쉘 스크립트 중 plistbuddy를 사용하는 방식은 오류가 나고, 새로운 방식으로 작성해야합니다.
빌드할때마다 빌드번호 하나씩 올리기
buildNumber=$(xcodebuild -showBuildSettings | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION =')
buildNumber=`echo $buildNumber +1|bc`
xcrun agvtool new-version $buildNumber
참고
https://blogappdev.wordpress.com/2012/08/29/xcode빌드시-version과-build의-차이점/
https://infinitt.tistory.com/387
https://www.bsidesoft.com/2970
https://blog.tjitjing.com/index.php/2021/09/auto-increment-build-number-in-xcode-11-xcode-12.html
'iOS > Xcode' 카테고리의 다른 글
[Xcode] InfoPlist 값 Debug/Release 에 따라 조절하기 (0) | 2022.06.08 |
---|