How to add a sandboxed app to the login items

前端 未结 3 1966
故里飘歌
故里飘歌 2021-02-01 05:31

I want my app to auto start if the user select the option. The methods I have been using is not allowed anymore in sandboxed apps.

I know I have to create a helper to a

3条回答
  •  长情又很酷
    2021-02-01 06:10

    I've just re-done about 100 trial on Tim's tutorial. Finally I made it work. Although I swear it worked when I first time tried it. In my situation is when I switch "Launch at login" to On, I can only see the helper app launched for just one second right after login. Then it was gone. Manually start the app, I saw the switch was turned off.

    Here was what I found:

    1. my bundle identifier was already in the list of NSArray *running = [[NSWorkspace sharedWorkspace] runningApplications]
    2. the status of the NSRunningApplication *app (bundle name equal to my app) is: [app isActive] == NO, [app isHidden] == NO, [app isTerminated] = NO

    So I made some modification to the code like:

    BOOL alreadyRunning = NO;
    BOOL isActive = NO; // my modification
    NSArray *running = [[NSWorkspace sharedWorkspace] runningApplications];
    for (NSRunningApplication *app in running) {
    
        if ([[app bundleIdentifier] isEqualToString:@"com.mybundleidentifier"]) {
            alreadyRunning = YES;
            isActive = [app isActive]; // my modification
        }
    }
    
    if (!alreadyRunning || !isActive) { // my modification
      ....
    

提交回复
热议问题