03 November 2014

개요

cocoapods가 워낙 업데이트가 잘되는 활성화된 프로젝트이다 보니 버전업이 될 때 가끔 하위호환성이 안맞을 때가 있다. 0.34.x 역시 업데이트되면서 프로젝트 설정이나 Podfile 방식이 많이 바뀌어서 pod update 후의 warning, error 메세지를 막기 위해 좀 삽질하면서 대응을 해줘야 했다.

Podfile에서 확인해야 할 내용

  • source 명시(0.34.0~) 명시안했을 땐 warning 발생하므로 사용하는 Podspec source를 명시한다.
source 'https://github.com/artsy/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
link_with ['target1', 'target2']
link_with 'target1', 'target2'
  • Project Configuration별로 Pod이 다른 경우 별도로 명시(0.34.0.rc1~)
pod 'Lookback', :configurations => ['Debug']

프로젝트 설정에서 확인해야 할 내용

  • Project Configuration별 Pods Configuration 연결
    • 왼쪽 Project Navigation에서 프로젝트 Root 선택 > Project의 Info탭에서 Configurations 확인
    • 각 Configuration별로 Target에 원하는 Pods의 Configuration을 선택해줌
      • 혹시 Pods의 Configuration이 보이지 않는다면 Pods 프로젝트 > Target Support Files 쪽에서 사용할 xcconfig 파일들을 프로젝트 > Pods로 reference copy하면 보이게 됨.
      • 프로젝트에서 예전부터 원래 Configuration을 정의해서 사용하고 있었다면 Target 상위 프로젝트 부분에서 해당 Configuration을 선택해줘야 함.

Trouble Shooting

  • module not found
    • 정상적으로 세팅을 했는데도 전혀 쌩뚱 맞은 에러를 보게 될 수 있다. 이때는 Configuration의 이름에 문제가 없나 확인해 볼 것
      • Invalid auto generated preprocessor macro [0.34.x] 여기서 해결됐다고 하지만 1. Debug와 같은 이름으로 Configuration 이름을 사용했더니 위 에러가 발생해서 그냥 Configuration 이름을 영문으로 모두 바꿔서 해결함.

참고

cocoapods Troubleshooting cocoapods CHANGELOG