Am 15.11.2010 um 04:43 schrieb Kyle Sluder: > On Sun, Nov 14, 2010 at 9:55 AM, kalexm <kal...@gmail.com> wrote: > Hello all, > > I'm new to the list and somewhat new to OSX (not iphone!) development. I > spent ten years most of my time in java so it was a hurdle.. > > I am currently developing an app (APP-A) which does PDF manipulation. I have > a second app (APP-B), that provides a PDF Viewer which is older. > APP-A depends on APP-B as it uses APP-B for viewing manipulated PDFs. APP-B > is independent from APP-A. > I could put both apps into Applications. But if a User don't know what APP-B > is for as he might only wan't APP-A but didn't see the dependency, he might > delete APP-B and APP-A cannot work properly anymore. > > To solve this I put APP-B into the resources of APP-A, and it works to launch > the app from this directory. I have not found any documentation from apple or > mailing-lists if this is unwanted, problematic or somewhat evil!? The launchd > finds the 'hidden' APP-B and behaves as expected... > > Is this allowed and recommendable, or how could I solve this alternatively > and I don't want to merge the apps!? > > The code signing in-depth technote (TN2206) advises against using Resources > for this. It suggests putting the helper app bundles in the Contents folder, > and single-file helper binaries directly inside Contents/MacOS. > http://developer.apple.com/library/mac/#technotes/tn2007/tn2206.html%23TNTAG19 > > --Kyle Sluder
Sorry, I forgot 'reply-all' Yeah that was the source I was looking for. I've inserted a copy build phase. I managed to put APP-B everywhere but not directly under Contents. I do it now by a shellscript that I run after building. But this could'nt be the final solution... I put together some code, but it crashes. As I couldn't simply attach the debugger (as the bash needs to copy it in the right position..) debugging is complicated... CFURLRef appURL; CFBundleRef bundle = CFBundleGetMainBundle(); NSString *app = @"B.app"; appURL = CFBundleCopyAuxiliaryExecutableURL(bundle,(CFStringRef)app); if (appURL != NULL) { FSRef applicationRef; CFURLGetFSRef(appURL, &applicationRef); FSRef fileRef; CFURLGetFSRef(pDFDocumentURL, &fileRef); LSLaunchFSRefSpec launchSpec = { &applicationRef, 1, &fileRef, NULL, kLSLaunchDefaults, NULL }; OSStatus err = LSOpenFromRefSpec(&launchSpec, NULL); if (err != kLSApplicationNotFoundErr) { //do something... } } CFRelease(appURL); best,_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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 arch...@mail-archive.com