# 상황
App Extensions, Watch Kit 을 이용하는 앱을 개발하면서 필연적으로 multiple target 을 이용하는 경우가 생기게 되었다.
> 일단 multiple target 에 대한 CocoaPods 를 '우아하게' 사용하는 법. http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
> Elegant 한 방법
> def common_pods
> pod 'something', '0.x.0'
> end
이 때, 잘 사용하던 CocoaPods 에서 문제가 발생했다.
* 코드의 중복, Networking 등 공통모듈을 각 타겟에서 중복 사용.
* Archiving 에러, error itms-90362 와 같은 난생처음 보는 에러 발생.
* MinimumOSVersion to 8.0 to support, 빌드된 라이브러리 '프래임워크'가 targets의 버전 중 최상위 버전을 지원하도록 빌드가 되는 문제 발생. (추정, 이게 원인인 듯)
# 해결
정확하게 가장 큰 문제는 Archive 이후, Binary Validation 에서 문제가 발생함...
결국 해결한 방법은...
* Containing App 에서만 CocoaPods 를 사용.
* Extension App 에서는 static library 형태로 코드를 직접 추가.
실제로 컨테이닝 앱 안의 각 앱들이 별도로 존재하는 바이너리이고, 윈도우의 dll 같은 개념으로 라이브러리를 사용하지 않으므로? 옳은 해결방법이라고 결론을 내렸다.
CocoaPods 에서 해결하려고 하다가 많은 시간 소모했지만..
좀 더 깊게 CocoaPods 사용법을 알게 되면 내용을 추가해야겠다.
'Mobile > iOS 개발 팁' 카테고리의 다른 글
[iOS/Dev] 디버거 attach 차단 (0) | 2016.08.05 |
---|---|
Storyboard Reference 는 iOS 9 부터 (0) | 2015.12.16 |
iOS 강제 종료에 대하여... (0) | 2015.07.19 |
[iOS/Dev] App Store 링크 만들기 (0) | 2015.03.15 |
[iOS/Dev] old Plist file 양식. (0) | 2015.03.13 |