I'm having some difficulty using IB_DESIGNABLE
in a pod.
I created a custom view which I marked as IB_DESIGNABLE
and made a sample project that uses it. No problems so far.
The issue happens when adding that custom view as a pod dependency. Although the project builds and runs successfully, there is an error when the storyboard that uses the custom view is opened. The Live Rendering process starts and tries to show the view live inside Interface builder but it fails with the following error:
This is too bad because we lose Live Rendering which is, in my opinion, one of the best features from Xcode 6.
- Cocoapods gem version: 0.34.4
- Xcode version: 6.1 (6A1052d)
I've tried with other projects that use IB_DESIGNABLE
and have a podspec
:
- https://github.com/Eddpt/EAColourfulProgressView (Class:
EAColourfulProgressView
) - https://github.com/hayashi311/HRButton (Class:
HRButton
) - https://github.com/Estimote/iOS-Indoor-SDK (Class:
ESTIndoorLocationView
)
Someone else had the same issue in Estimote - Indoor Location Error but the solution described means losing Live Rendering capabilities.
Has anyone been able to use a IB_DESIGNABLE
component through Cocoapods?
Error: "failed to load designables from path (null)"
When specifying your custom class in the Identity Inspector, are you specifying from which module this class should be loaded? The module should be the name of the library the class comes from.
This has been fixed in the latest version of Cocoapods (0.36.0.beta.1).
To install this version:
[sudo] gem install cocoapods --pre
More information about Cocoapods with frameworks here
In order to fix the
Error: "failed to load designables from path (null)"
:Add use_frameworks! to you
Podfile
.I Resolved my problem using
use_frameworks!
on the PodFile, in the first Line. (don't forget the!
)IBInspectable properties must be Dynamic, so it asks for a Dynamic Linkage of the Library. By using the above line, as soon as you set the class of a control, it will build the framework and link it, resolving this binding issues. When I upgraded to beta, Parse stopped working.
Hope it helps someone.