Note that there are some explanatory texts on larger screens.

plurals
  1. POConfiguring Cocoapods with an existing static library and iOS application
    text
    copied!<p>I'm having trouble getting my workspace to compile correctly with Cocoapods. There are 3 projects in the workspace, each with their own target:</p> <ol> <li>libPods - Cocoapods static library with all the external dependencies</li> <li>libCommon - My static library where I keep all my shared code (base controllers, networking code, common UI, etc)</li> <li>myApp - My iOS application</li> </ol> <p>Both libCommon and myApp require the external dependencies from the libPods. Originally I thought it would work like this:</p> <ol> <li>libPods builds</li> <li>libCommon links against libPods and builds</li> <li>myApp links with libCommon and builds</li> </ol> <p>In this scenario libCommon "owns" the pods, and then then myApp just links against libCommon like I've always done pre-Cocoapods... but apparently static libraries don't like to be linked with static libraries (I got a bunch of dynamic library errors). I read on a github issue somewhere that instead I should build libPods and libCommon and then myApp should link against both libraries. Right now my podfile looks something like this:</p> <pre><code>workspace 'MyApp.xcworkspace' platform :ios, '5.0' link_with ['Common', 'MyApp'] target 'MyApp' do xcodeproj 'MyApp.xcodeproj' pod 'AFNetworking', '1.1.0' pod 'TTTAttributedLabel', '1.6.0' pod 'JSONKit', '1.5pre' pod 'Reachability', '3.1.0' end </code></pre> <p>With this setup, myApp owns all the pods, and then in the libCommon build settings I specify the path to the pod headers. This builds OK until I attempt to use one of the classes in libCommon. Once I do that, I get one of those <code>_OBJC_CLASS_$_Blah</code> errors (which tells me that although the headers are available, it's still not linked properly). When I try to manually link libCommon in "Build Phases" I get a bunch of duplicate symbol errors (which leaves me to believe it's already linked?). What the heck?</p> <p>What's the way to do this properly and what should my podfile look like?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload