Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I have created an app, that sets itself to launch at Login using SMLoginItemSetEnabled. Here is the code it uses. My question is, how can I manually remove this app from launching at login?

The app does not show under "Login Items", or /Library/LaunchAgents, or /Library/LaunchDaemons or in the /Users/username/Library/LaunchAgents, or /Users/username/Library/LaunchDaemons folders. I looked around in /Library/Preferences and PreferecePanes, but I found nothing. The app does load on login.

share|improve this question
    
if you remove the app (from the disk) what does the Console say? –  Martín Marconcini Feb 12 '13 at 1:48
    
If I remove the app (even when it's not running), I can move it to Trash, but when I try to empty Trash, it won't delete the App. –  Tarandeep Gill Feb 12 '13 at 14:09

4 Answers 4

And if you added it with a helper, like you said, then you should be able to see it in the plist (I think).

Take a look at this:

-(BOOL)appIsPresentInLoginItems
{
    NSString *bundleID = @"com.madebynotion.myLoginHelper";
    NSArray * jobDicts = nil;
    jobDicts = (NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );
    // Note: Sandbox issue when using SMJobCopyDictionary()

    if ( (jobDicts != nil) && [jobDicts count] > 0 ) {

        BOOL bOnDemand = NO;

        for ( NSDictionary * job in jobDicts ) {

            if ( [bundleID isEqualToString:[job objectForKey:@"Label"]] ) {
                bOnDemand = [[job objectForKey:@"OnDemand"] boolValue];
                break;
            } 
        }

        CFRelease((CFDictionaryRef)jobDicts); jobDicts = nil;
        return bOnDemand;

    } 
    return NO;
}

source: http://blog.mcohen.me/2012/01/12/login-items-in-the-sandbox/

share|improve this answer
    
Thanks for the reply Martin. But I am looking for a way to remove it manually (without the use of program). Where is this PList file stored on the system? –  Tarandeep Gill Feb 12 '13 at 2:02
    
Oh no problem. The reason why I was adding the code is to see what it's doing. It has got to be in the sanboxed directory of your app perhaps… but I never thought about it. I'll take a look tho' –  Martín Marconcini Feb 12 '13 at 21:31

Login items are stored in ~/Library/Preferences/com.apple.loginitems.plist, and can be manually managed in System Preferences -> Users & Groups -> your user account in the sidebar -> Login Items tab.

share|improve this answer
    
That's the issue. The app does not show under the Login Items tab, and it is not listed in ~/Library/Preferences/com.apple.loginitems.plist either! –  Tarandeep Gill Feb 12 '13 at 3:11

You should be able to stop and remove the helper from launchd from the command line. Open up Terminal.app and do

laucnhctl list | grep -i com.your.helper

Look once you've located the job_label in the third column, you can run

sudo stop com.your.helper
sudo remove com.your.helper

The manual for launchctl can be found here

share|improve this answer

If I remove the app (even when it's not running), I can move it to Trash, but when I try to empty Trash, it won't delete the App.

When it is in the trash, restart the mac in single user mode (start while holding cmd+s): this will open in a Terminal window, run

sudo rm -Rf ~/.Trash/*

and press enter, then restart normally.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.