title: iOS Library/Framework, how to exclude specific classes from the build product?
body: <p>I'm trying to build an iOS library/framework, which for the sake of simplicity we'll say exposes some class <code>A</code> to projects using it.  Now the problem is that class <code>A</code> depends upon class <code>B</code>, which is not meant to be exposed (or even included as a symbol) in the build output for the library.  This causes problems because there is another library with class <code>C</code> in it that also happens to rely on class <code>B</code>.  </p>
  
  <p>What happens is that if I attempt to include both libraries in a project, the linker complains about having multiple definitions of class <code>B</code>.  </p>
  
  <p>What is the best way to work around this issue?  Is it possible to set class <code>B</code> to be weakly linked when building the two libraries (or at least one of the two libraries), and if so, how?  </p>
  
  <p>Or should class <code>B</code> be extracted into its own library/framework and the two libraries modified to reference that instead of including class <code>B</code> as a source file?</p>