title: Relaunching application via NSTask ignores LSMinimumSystemVersionByArchitecture
body: <p>I'm running into an issue with relaunching my application on 10.5.  In my Info.plist I have LSMinimumSystemVersionByArchitecture set so that the application will run in 64-bit for x86_64 and 32-bit on i386, ppc, and ppc64.</p>
  
  <p>I have a preference in the app that allows the user to switch between a Dock icon &amp; NSStatusItem, and it prompts the user to relaunch the app once they change the setting using using the following code:</p>
  
  <pre><code>id fullPath = [[NSBundle mainBundle] executablePath];
  NSArray *arg = [NSArray arrayWithObjects:nil];    
  [NSTask launchedTaskWithLaunchPath:fullPath arguments:arg];
  [NSApp terminate:self];
  </code></pre>
  
  <p>When this executes on 10.5, however it relaunches the application in 64-bit which is not a desired result for me.   From what I gather reading the docs its because the LS* keys are not read when the app is launched via command line.  </p>
  
  <p>Is there a way around this?  I tried doing something like below, which worked on 10.6, but on 10.5 it was chirping at me that the "launch path not accessible".  ([NSApp isOnSnowLeopardOrBetter] is a category that checks the AppKit version number).</p>
  
  <pre><code>id path = [[NSBundle mainBundle] executablePath];    
  NSString *fullPath = nil;
  if (![NSApp isOnSnowLeopardOrBetter])      
    fullPath = [NSString stringWithFormat:@"/usr/bin/arch -i386 -ppc %@", path];
  else    
    fullPath = path;
  
  NSArray *arg = [NSArray arrayWithObjects:nil];    
  [NSTask launchedTaskWithLaunchPath:fullPath arguments:arg];
  [NSApp terminate:self]; 
  </code></pre>