빌드 시 마다 CFBundleVersion
을 갱신하기 위한 스크립트이다.
변경된 CFBundleVersion 값 적용을 위해 Build Phases 순서가 소스컴파일 이전에 와야 한다.
아래 스크립트는 Tuist에서 사용한 스크립트 문자열로 앱버전을 위해 appVersion
변수를 참조하고 있지만
주석처리된 코드를 사용해 현재 Info.list에 정의된 앱 버전 값(CFBundleShortVersionString
)을 참조 할 수도 있다.
값 형식은 앞 3개의 숫자(Major.Minor.Patch)는 CFBundleShortVersionString
와 일치 시키고 뒤에 epoch 를 붙인다
epoch 대신 yyyyMMdd.HHmm 로 바꾸자
하.. sed 어렵다
"""
#!/usr/bin/env bash
epoch=`date +'%s'`
app_version=\(appVersion)
#app_version=`sed -n -E '/CFBundleShortVersionString/{n;s/.*<string>(.*)<\\/string>.*$/\\1/p;}' ${PROJECT_DIR}/${INFOPLIST_FILE}`
echo info plist: ${PROJECT_DIR}/${INFOPLIST_FILE}
echo epoch: $epoch
echo app version: $app_version
sed -i -n -E "/CFBundleVersion/{n;s/<string>(.*)<\\/string>/<string>$app_version.$epoch<\\/string>/;}" ${PROJECT_DIR}/${INFOPLIST_FILE}
"""