# 상황

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

+ Recent posts