1

我在提交 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);

}

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

2.30

应用程序访问以下位置:

'~/Library/Preferences/loginwindow.plist'

此文件用于设置应用程序在登录时启动。在用户在应用程序中启用此类选项之前,不应对其进行修改。默认情况下不应启用此选项;用户必须采取启用它的操作。

所以现在我很困惑,因为这种方法从第一个版本开始就存在并且从来没有问题。只有当用户在首选项中切换相应的复选框时,该文件才会被读取或修改。

那么我应该如何将我的应用程序添加到启动登录项而不会再次被拒绝?

4

3 回答 3

1

看看这里SMLoginItemSetEnabled的文档。

作为苹果开发人员,您还应该再次查看开发论坛以讨论该主题 - 他们在那里。

高温高压

于 2012-01-13T17:48:21.863 回答
0

我再次提交了该应用程序,并在 5 小时内获得了批准。不过,我没有收到 App Store 团队对我的支持请求的任何回复……</p>

于 2012-01-13T19:57:36.293 回答
0

正如我所读到的:默认情况下,您可能不会将其作为登录项启用 - 无需询问用户。

于 2012-01-12T23:32:51.180 回答