title: iphone version compatibility scanner
body: <p>Ok I've been developing iphone-apps for over a year now,
  but there's this one thing which still really sucks.</p>
  
  <p>Let's say I want to make my app compatible with iOS 3.0
  I set my sdk to the newest version available and set my deployment target to 3.0</p>
  
  <p>But what happens, if you by accident call a function available only in ... 3.1.x or later?
  Right, it simply crashes.</p>
  
  <p>There are no warnings or indicators telling you, that a function is only available in later iOS-Version. And since the Emulator doesn't support versions &lt; 4.0 it's impossible to test if the application really works. You can't even buy a new device since they already have a newer iOS installed.
  And even if you have an older device it's sometimes almost impossible to check each and every part of your code.</p>
  
  <p>And I really need to support older versions since I know that my customers (around 2/3) still use 3.x versions.</p>
  
  <p>Isn't there ANY code-analyzer or something that scans the availability of all functions called within the app?</p>
  
  <p>In one case the app crashed because I called</p>
  
  <pre><code>+ (id)sortDescriptorWithKey:(NSString *)key ascending:(BOOL)ascending
  </code></pre>
  
  <p>which i a convenience method of alloc + </p>
  
  <pre><code>- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending;
  </code></pre>
  
  <p>(Plus it's autoreleased)
  But sortDescriptorWithKey is only avaible in 4.0 @_@ </p>