[...] he’ll need to maintain two different versions: the App Store edition with no license code check, and the regular edition that can be distributed by other means and that requires a serial number or something similar.
[...] But why would a developer bother about this instead of only publishing on the App Store? One reason is that he’ll probably make more money by selling in his own store. As low as you might find the 30% share Apple takes on App Store sales, selling on your own online store remains a lot cheaper. For instance, if you’re using Kagi, Fastspring, or Esellerate, they will manage your store website, will handle all the payments for you, and will only take a share of about 10%. All you’ve to do is write a serial number generator and integrate a serial number checker in your app. Sure, the App Store will have more robust DRM and list your app in its catalog and be more user-friendly, but is this worth the remaining 20%? If I put an application on the App Store, I might price it higher there than on my online store, as I’ll be able to sell it for less on my store and still make the same amount of money on each purchase.
A second reason for a developer to maintain his own online store is independence. As the iOS App Store has shown, you can never be sure Apple won’t decide to remove an application from their store. What’s more likely to happen though is that the developer might want to add a new feature that Apple doesn’t like. If that happens, likely the feature will make its way in the regular edition of the app, but not in the App Store edition. App Store customers lose again.
Naturally, the above mentioned companies are also helpful if you don’t want to use the app store. Additionally, Sparkle is a free way to add auto-update to your application. Granted, not batch auto-update, but still; maybe Sparkle should implement that in a future version.