title: How to create a call graph of an iOS app?
body: <p>I'm looking for a relatively simple way of creating a call graph of an iOS app (or a framework), using it's Xcode project or the obj code it emits.  </p>
  
  <p>The project files are a combination of Objective C, Swift and C++.</p>
  
  <p>I've already tried clang's scan-build, but haven't had any luck turning the .dot files into graphViz graphs.  I ended up with hundreds of .dot files and after dot, for over an hour, tries to load them up, nothing happens.</p>
  
  <p>I've also tried to use opt, by adding this to my build line:</p>
  
  <p><code>-S -emit-llvm -o - | opt -dot-callgraph -S</code></p>
  
  <p>(from <a href="https://stackoverflow.com/questions/9082687/can-clang-generate-a-call-graph-for-an-xcode-project-in-objective-c">this SO question</a></p>
  
  <p>but I get only a 107 byte callgraph.dot file and that doesn't have anything notable in it.</p>
  
  <p>I think these errors are what make the output useless:</p>
  
  <p><code>
  clang-5.0: warning: 'linker' input unused [-Wunused-command-line-argument]
  clang-5.0: warning: argument unused during compilation: '-emit-llvm' [-Wunused-command-line-argument]</code></p>