On Mon, Jun 29, 2009 at 3:20 PM, Peter Mulholland<[email protected]> wrote: > Monday, June 29, 2009, 9:17:35 PM, you wrote: > >> Woah... this is kinda nuts. > > How exactly?
Because it directly violates quite a few requirements of working on OS X? And you're resorting to pretty convoluted workarounds to try to get things working again. That should be a pretty good clue that you're doing things incorrectly. >> 1) Applications need to be in their own app bundle. > > Really, this isn't an application, its a component. There's probably a better > way to do it, but I can't think of one. You need NSApplication? It's an application. It needs its own bundle. That bundle can live in Resources (or this mythical, unnamed "Support" directory referred to in the code signing documentation). >> 2) Don't fork/exec to launch an application. Use LaunchServices instead. > > At the low level that this is executed, only BSD stuff is usable. This stuff > is executed before main() is even called. Then perhaps you should be considering a refactor. >> 3) Your "protection" will be easy to break, and probably won't play >> nice with code signing. Is it worth the effort? > > Our app's aren't code signed and are Intel only. > We're a games dev company, so yes, it's worth the effort. You don't know what Apple has in store for code signing requirements on post-Leopard operating systems. It is known that code signing requirements will be stricter in the future than they are now. How and when is still unknown, but trying to decrypt and execute an application like this might result in irking the security gods. Frequently people come to this list asking for help with their copy-protecting scheme. The consensus is that it is not worth the time and money you will invest in the process, or the frustration you will (not may, will; I dare anyone to prove that there is absolutely no circumstance under which their copy protection can fail) cause for your users. Meanwhile, someone's going to strip off your copy protection, upload your game to the web, and pirates who never would have purchased your game in the first place will enjoy it hassle-free. By all means, make a pass at it. Do a simple check on startup, and if it fails, guilt and shame the user into purchasing the app. But attempting to intervene in the loading process is not going to bode well for your code health. --Kyle Sluder _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
