App Extension의 Bundle Version을 자동으로 앱의 Bundle Version에 맞추기
소개
iOS 앱 업데이트를 출시할 때 버전 번호를 업데이트하지만,
App Extension이 있다면 그 버전도 업데이트해야 할 것입니다.
App Extension의 버전 업데이트는 잊기 쉽기 때문에 자동으로 업데이트하려고합니다.
할 일
기본 타겟의 앱 버전을 업데이트하고 빌드하면
App Extension 버전 및 설정 앱에 표시되는 버전이 업데이트되도록 스크립트를 추가합니다.
※ 설정 앱에 정보를 표시하기 위해 Settings Bundle 을 사용합니다.
본 기사에서는 Settings Bundle의 상세는 생략합니다 (>사람<)
Run Script 만들기
이번 샘플 프로젝트의 구성은 다음과 같습니다.
이번에는 'Refresh App Versions'라고 합니다.
Run Script를 열고 스크립트를 작성합니다.
이번에 추가하는 스크립트는 다음과 같습니다.
APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $PRODUCT_SETTINGS_PATH)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${APP_VERSION}" "${PRODUCT_NAME}/Resources/Settings.bundle/Root.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${APP_VERSION}" "${SRCROOT}/DemoAppNotificationServiceExtension/Info.plist"
이제 빌드하면 Info.plist의 CFBundleShortVersionString 값이 설정 앱과 App Extension의 Info.plist에 기록됩니다.\(^ω^)/
※ 2, 3행째에는, 출력처의 plist의 PATH를 포함하고 있으므로, 프로젝트의 구성마다 조정이 필요합니다 m(_ _)m
스크립트 내용 정보
스크립트의 내용을 간략하게 설명합니다.
APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $PRODUCT_SETTINGS_PATH)
첫 번째 줄은 Info.plist의 CFBundleShortVersionString 값을 변수
APP_VERSION
에 유지합니다.PlistBuddy
는 plist를 조작하는 프로그램입니다. (Mac에 기본적으로 포함되어 있습니다!)$PRODUCT_SETTINGS_PATH
는 plist의 PATH를 나타내는 환경 변수입니다./usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${APP_VERSION}" "${PRODUCT_NAME}/Resources/Settings.bundle/Root.plist"
두 번째 줄은
APP_VERSION
의 값을 Settings.bundle/Root.plist
PreferenceSpecifiers
의 첫 번째 dictionary DefaultValue
키 값에 쓰고 있습니다.(PreferenceSpecifiers는 dictionary의 array입니다. array이므로 index는 0 시작입니다.)
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${APP_VERSION}" "${SRCROOT}/DemoAppNotificationServiceExtension/Info.plist"
세 번째 줄은 두 번째 줄과 거의 같습니다.
쓰기 대상이 App Extension의 Info.plist로 바뀌고 있을 뿐입니다(`・ω・´)
사이고에게
기본 타겟의 앱 버전을 업데이트하고 빌드하면,
App Extension 버전 및 설정 앱에 표시되는 버전이 업데이트되었습니다!
App Extension이 여러 개 있는 경우에도 마찬가지로 스크립트의 행을 추가해 나가면 한꺼번에 업데이트할 수 있습니다!
Reference
이 문제에 관하여(App Extension의 Bundle Version을 자동으로 앱의 Bundle Version에 맞추기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-okudera/items/f2ff46f31a84391803fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)