Cocoapod의 IBDesignable 관련 문제.

이용언
3 min readJun 28, 2018

--

최근 Xcode 9.3 으로 버전업 하고 다음과 같은 에러가 발생하기 시작했습니다.

IB Designables: Failed to render and update auto layout status for UIView dlopen(MarqueeLabel.framework, 1): no suitable image found. Did find: MarqueeLabel.framework: required code signature missing for ‘MarqueeLabel.framework’

물론 컴파일에서는 별 문제가 없었지만, Interface Builder로 xib를 열때 최초 1회 이후에는 저런식으로 원래의 디자인과는 전혀 다른 정사각형으로만 표기 되더군요. 증상은 다음과 같습니다.

최초에는 다음과 같던 View가

다음번 열어보면 Interface Builder에 정사각형으로 표기 되는 겁니다.

물론 컴파일은 잘되었고, App에서는 잘 표시 되지만 Xcode를 종료후 다시 실행할때까지 문제가 해결되지 않더군요.

에러문구로 보건데 IBDesignable 사용에서 문제가 있는듯 했습니다.

Xcode 9.4 이상으로 버전업 했으나 동일한 문제는 계속 되었고,
결국 문제의 원인은 Xcode쪽의 문제가 아니라 Cocoapod 1.5버전의 문제였습니다.

https://github.com/CocoaPods/CocoaPods/issues/7606

위의 링크에서 논의된것 처럼
CODE_SIGNING_ALLOWED, CODE_SIGNING_REQUIRED 의 세팅을 삭제하면 해결 된다고 하는데 방법은 다음과 같습니다.

Pod 파일의 최하단에 다음의 코드를 넣거나,

# Workaround for Cocoapods issue #7606
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete('CODE_SIGNING_ALLOWED')
config.build_settings.delete('CODE_SIGNING_REQUIRED')
end
end

아예 별 문제 없는 cocoapods을 1.4.x 버전을 사용하는겁니다.

sudo gem uninstall cocoapods
sudo gem install cocoapods -v 1.4.0
pod update

이렇게 하니 문제가 해결 되었네요.

--

--