我在提交 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'
此文件用于设置应用程序在登录时启动。在用户在应用程序中启用此类选项之前,不应对其进行修改。默认情况下不应启用此选项;用户必须采取启用它的操作。
所以现在我很困惑,因为这种方法从第一个版本开始就存在并且从来没有问题。只有当用户在首选项中切换相应的复选框时,该文件才会被读取或修改。
那么我应该如何将我的应用程序添加到启动登录项而不会再次被拒绝?