Objective c Obj-C OS X从/应用程序中删除应用程序

Objective c Obj-C OS X从/应用程序中删除应用程序,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我正在编写一个应用程序,从OS X中删除一个软件及其文件。我可以删除除.app和/Applications中的文件夹之外的所有内容。我使用的是AuthenticationExecuteWithPriviledges,我知道它已被弃用,因此在尝试将.app移动到垃圾箱时可能会给我带来管理问题吗?当我逐步完成这个过程时,我看到一个NSCocoaErrorDomain,代码513。我对它进行了快速搜索,发现它与权限错误有关。我的另一个理论是,我的应用程序路径不正确。我正在使用: NSString*ib

我正在编写一个应用程序,从OS X中删除一个软件及其文件。我可以删除除.app和/Applications中的文件夹之外的所有内容。我使用的是
AuthenticationExecuteWithPriviledges
,我知道它已被弃用,因此在尝试将.app移动到垃圾箱时可能会给我带来管理问题吗?当我逐步完成这个过程时,我看到一个
NSCocoaErrorDomain
,代码
513
。我对它进行了快速搜索,发现它与权限错误有关。我的另一个理论是,我的应用程序路径不正确。我正在使用:
NSString*ibmNotesApplication=@“/Applications/IBM Notes.app”

如果您想知道我为什么要删除LotusNotes,那是因为IBM提供的Notes卸载程序没有我想要的所有功能。所以,我正在写一个删除注释和所有相关文件的程序,这样我们就可以重新安装了

下面是一段代码,我将数组中的一项移动到垃圾箱

 if ([filemanager fileExistsAtPath:object])
        {
            NSURL *objectURL = [NSURL fileURLWithPath:object];
            NSURL *trashedObject;
            NSError *error;

            //Moves item to trash bin and update log
            if([filemanager trashItemAtURL:objectURL resultingItemURL:&trashedObject error:&error])
            {
                NSLog(@"Trashed %@ to %@",objectURL, trashedObject);
                self.textfield.stringValue = [NSString stringWithFormat:@"%@%@%@%@%@%@", self.textfield.stringValue, @"Trashed ", objectURL, @" to ", trashedObject, @"\n"];
            }

正如您在问题中提到的,函数AuthorizationExecuteWithPrivileges是一个不推荐使用的函数,它已经存在了很长一段时间。我建议您首先遵循苹果的建议,将特权流程分解成一个单独的特权助手工具,该工具是在launchd的帮助下启动的

您可以按照示例代码进行操作


如果权限问题仍然存在,那么至少你已经开始按照正确的方式重构代码,知道它将在未来版本的操作系统中得到支持。

AppCleaner适合我:感谢格式化帮助mattt,我匆忙地写下了我的问题@特洛伊木马的敌人,我真的很想写我自己的实用程序,而不是依赖另一个工具,希望删除笔记,连同一些Eclipse plist文件。不100%确定什么是
身份验证
。。。但谷歌搜索让我回到了这里。。