我在Mac App Store提交中遇到麻烦。如果用户在首选项中切换复选框,则使用以下方法将我的应用添加到登录项中。

-(void) addAppAsLoginItem{
    NSString * appPath = [[NSBundle mainBundle] bundlePath];

    CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:appPath];

    LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
    if (loginItems) {
        //Insert an item to the list.
        LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItems, kLSSharedFileListItemLast, NULL, NULL, url, NULL, NULL);
        if (item){
            CFRelease(item);
        }
    }

    CFRelease(loginItems);

}

我已经成功提交了许多更新,没有任何问题,但是现在我的应用被拒绝了,因为我正在访问文件系统而被拒绝了:



因此,现在让我感到困惑,因为自第一个发行版以来就存在这种方法,而且从来没有问题。仅当用户在首选项中切换相应的复选框时,才读取或修改文件。

那么,如何在不再次被拒绝的情况下将我的App添加到启动登录项呢?

最佳答案

查看SMLoginItemSetEnabled和docs here

由于您是Apple开发人员,因此您也应该再次在开发者论坛上浏览有关该主题的讨论-它们在那里。

高温超导

07-24 22:34