Not a massive issue, but Interface Builder doesn't appear to offer any code completion hints when you're filling out the Module text field in the _Identify Inspector_ for classes originating in frameworks imported via Carthage. The classes themselves are available, but when I tab into the next text field, there's no autocomplete at any point, and I have to manually type out the modules. Like I say, don't file it under critical, but it is a bit annoying.
Is this unique to Carthage? Or is it an issue with any prebuilt framework that you add to an Xcode project?
I had considered that possibility, but I've never added a prebuilt framework to a project before - I don't know how to do that manually.
Okay, I figured out the source of the problem: If the framework includes a Swift extension you'll get behaviour I describe above. On reflection, it's actually a little more problematic than I thought, because in addition to losing code-complete, you also lose all access to the connections (outlets/actions) defined in the framework. Anyway, It's clearly nothing to do with Carthage, so I've filed a bug report with Apple.
Care to share the radar?
Happy to share, you'll just need to tell me how. I filed it using 'Apple Bug Reporter'; is there a way to link to the page, or do you want me to copy and paste it here?
The original radar number and then a lot of people in the community dupe them at http://www.openradar.me/faq so that people can publicly see them.
Anyway, It's clearly nothing to do with Carthage, so I've filed a bug report with Apple.
Thanks for figuring that out! I'll go ahead and close this issue then.
Use cocoapods instead of Carthage fix my issue.
For people finding this issue on Google and looking for a solution other than switching to CocoaPods:
IB seems to only locate the classes if they are in a target (like how CocoaPods adds dependencies). You can work around this by subclassing the class you need to access in IB inside your own project. Then Interface Builder can see the class. For example, for PocketSVG:
import PocketSVG
@IBDesignable
class SVGView: SVGImageView {}
On top of what @jbg said, if you want to have IBInspectables you too have to override them in your subclass.
Most helpful comment
Okay, I figured out the source of the problem: If the framework includes a Swift extension you'll get behaviour I describe above. On reflection, it's actually a little more problematic than I thought, because in addition to losing code-complete, you also lose all access to the connections (outlets/actions) defined in the framework. Anyway, It's clearly nothing to do with Carthage, so I've filed a bug report with Apple.