fastlane에서 increment_version_number 대체하기
몇 해 전부터 이 내용을 한 번 정리해서 글로 써야지 생각만 하다가 이제서야 남겨본다.
fastlane에서 increment_version_number 대체하기
몇 해 전부터 이 내용을 한 번 정리해서 글로 써야지 생각만 하다가 이제서야 남겨본다.
iOS 프로젝트는 한 번 생성해두면, 초기 설정 이후엔 잘 안 건드리게 되는데, 몇 년 전에 새 프로젝트를 만들면서 문제가 하나 생겼다.
버전 업데이트를 자동으로 처리하려고 fastlane에서 increment_version_number를 쓰고 있었는데, 이게 더 이상 작동을 하지 않는다는 것을 알게 되었다.
나의 경우에는 기본 App의 버전도 수정이 필요하지만 Extension도 App와 동일한 버전으로 맞춰서 배포하기 때문에 앱 배포를 할 때 마다 모든 Extension을 포함하여 수정하기란 여간 귀찮은 일이 아니였다.
근데 이 increment_version_number가 안 되는 이유를 찾아보니까, Xcode 13부터 Generate Info.plist File 설정이 기본으로 YES로 바뀐 게 문제였다.
이 설정이 YES면 실제 Info.plist의 CFBundleShortVersionString을 안 쓰고, 대신 Build Settings > Versioning > Marketing Version 값을 참조하게 된다.
물론, Generate Info.plist File의 값을 NO 바꾸면 기존과 같이 사용할 수 있으나 Apple에서 괜히 바꾼 것은 아니라는 생각이 들어서 새 프로젝트를 기존 처럼 사용하기가 꺼려졌다.
해결 방법은 생각보다 간단한데, fastlane에서 shell script를 써서 .xcodeproj 파일 안의 MARKETING_VERSION을 직접 바꿔주는 방식이다.
sh("sed -i '' -e 's/MARKETING_VERSION \\= [^\\;]*\\;/MARKETING_VERSION = #{version};/' ../#{project_name}.xcodeproj/project.pbxproj")
여기서
- version은 바꾸고자 하는 앱 버전 (예: “1.2.3”)
- project_name은 .xcodeproj 파일 이름에서 확장자 뺀 것.
이렇게 하면 App뿐만 아니라 Extension까지 전부 같은 버전으로 자동으로 바뀌기 때문에, 매번 하나씩 수정할 필요 없이 훨씬 편하다.
나처럼 이 문제 때문에 고생한 사람이 있다면 도움이 됐으면 좋겠다.
메타데이터
- post_id
- 27b0bf76446a
- slug
- fastlane에서-increment-version-number-대체하기-27b0bf76446a
- url
- https://medium.com/@baccusf/fastlane%EC%97%90%EC%84%9C-increment-version-number-%EB%8C%80%EC%B2%B4%ED%95%98%EA%B8%B0-27b0bf76446a
- canonical_url
- https://medium.com/@baccusf/fastlane%EC%97%90%EC%84%9C-increment-version-number-%EB%8C%80%EC%B2%B4%ED%95%98%EA%B8%B0-27b0bf76446a
- author_url
- https://medium.com/@baccusf
- status
- ok
- fetched_at
- 2026-07-20 10:12:08