티스토리 뷰
iOS. xcode로 빌드할때 ITMS-90473 해결. Extension Version 자동 맞추기
out of coding 2019. 6. 29. 14:20앱스토어에 익스텐션을 포함하여서 개발을 할 경우에 버전을 Main Project와 동일하게 맞추어야 합니다.
물론 버전이 다르게 올라가도 큰 문제는 없습니다.
단지 올라간 앱의 버전과 지금의 버전이 달라서 약간의 경고성 메일이 옵니다.
ITMS-90473: CFBundleVersion Mismatch - The CFBundleVersion value '1' of extension 'TestApp.app/PlugIns/NotificationServiceExtension.appex' does not match the CFBundleVersion value '18' of its containing iOS application 'TestApp.app'. |
위와 같은 내용의 메일이 오죠...
해결 방법을 알아 봅시다.
1. 해달라는대로 그냥 넣어줍니다.
- Main app의 Version과 달라서 오는 메일이므로 넣어줘버립니다.
- 조금 다소 귀찮을수 있습니다.
2. Run Script를 이용합니다.
- Project>TARGETS>Extension을 선택합니다.
- Build Phases 탭을 누른후 상단의 + 모양을 눌러주고 New Run Script Phase를 눌러줍니다.
- 다음을 넣어줍니다.
echo '# Run Script Start' MAIN_PLIST="${SRCROOT}/TestApp/Info.plist" appVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$MAIN_PLIST") appBuild=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$MAIN_PLIST") echo '> App Version : ' ${appVersion} echo '> App Build : ' ${appBuild} EXTENSION_PLIST="${SRCROOT}/NotificationServiceExtension/Info.plist" /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $appVersion" "$EXTENSION_PLIST" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $appBuild" "$EXTENSION_PLIST" echo '# Run Script End' |
설명을 하자면 echo는 그냥 화면에 보여주기 위한 부분입니다.
MAIN_PLIST : 자신의 메인앱 plist파일의 위치입니다. Info.plist 파일이 아닌 다른 이름으로 사용하면 수정하세요
EXTENSION_PLIST : 저는 NotificationServiceExtension을 만들었습니다. 이것도 이름이 다르면 변경하세요
PlistBuddy를 이용하여서 메인의 버전을 복사해서 붙여넣기 하는 것입니다.
* 주의
저는 왜 그런지 이렇게 버전을 하더라도 Archive할 경우에는 버전이 변경되었음에도 불구하고 에러가 계속 나는것을 확인하였습니다.
그래서 버전을 변경하였을 경우에는 Run을 하여 주거나 Build를 한번 해주시기를 추천드립니다.
Build 할 경우에 한번씩 호출되는 부분이라 먼저 변경을 하여야 하는것 같네요.
이 부분은 조금 더 보고 되는 방법을 찾아보겠습니다.
* 디버그 보는법?
아까 위쪽에 echo하여서 찍어준 부분은 콘솔에는 나오지 않습니다.
이 부분은 Build log에 나오는것이라 여기를 누릅니다.
파란색 보이시죠?
그런 이후에 자신이 했던 부분을 눌러줍니다.
즐거운 코딩 되세용.
'Mobile > iOS' 카테고리의 다른 글
iOS. StatusBar 색상, 보이기를 조절합시다. (0) | 2019.07.09 |
---|---|
iOS. swift의 초기화에 대해서 알아봅시다 (0) | 2019.06.29 |
iOS. Alamofire GET request array param의 brackets 없애기... 다른말로 [] 없애서 보내기 (0) | 2019.06.19 |
swift. map, flatMap, compactMap (0) | 2019.04.01 |
swift. Type matching - 4. if case let, guard case let, for case let (0) | 2019.03.23 |
- Total
- Today
- Yesterday
- rxswift
- Gradle
- php
- ubuntu
- Xcode
- github
- centos8
- Kotlin
- Codable
- nodejs
- enum
- tomcat
- Python
- Java
- Linux
- war
- Windows
- git
- android
- Spring
- MySQL
- ios
- SWIFT
- golang
- intellij
- CentOS
- go
- docker
- windows10
- cocoapods
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |