2014-07-15 2 views
0

OS X에서 소프트웨어 및 파일을 제거하는 응용 프로그램을 작성 중입니다. 응용 프로그램 및 응용 프로그램의 폴더 이외의 파일은 모두 삭제할 수 있습니다. 나는 AuthetificationExecuteWithPriviledges을 사용하고 있습니다. 그 서비스가 더 이상 사용되지 않습니다. 그래서 .app을 휴지통으로 옮기려고 할 때 관리자 문제가 될 수 있습니까? 프로세스를 단계별로 실행할 때 NSCocoaErrorDomain 코드 513이 표시됩니다. 나는 그것에 대한 빠른 검색을했고, 그것이 권한 오류와 관련이 있음을 알았다. 내 다른 이론은 응용 프로그램에 대한 내 경로가 잘못되었다는 것입니다. 나는 다음을 사용하고있다 : NSString *ibmNotesApplication = @"/Applications/IBM Notes.app";Obj-C OS X/응용 프로그램에서 응용 프로그램 삭제

Lotus Notes를 삭제하려고하는 이유가 궁금하다면 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"]; 
      } 
+1

AppCleaner가 나를 위해 일합니다 : http://www.freemacsoft.net/appcleaner/ – trojanfoe

+0

서식 도움말 mattt을 주셔서 감사합니다. 나는 급하게 내 질문을 썼습니다. @trojanfoe, 나는 이클립스 plist 파일과 함께 Notes를 제거하기 위해 다른 도구에 의존하기보다는 직접 자신의 유틸리티를 작성하려고한다. – Lgwells1

+0

'Authetification'이 무엇인지 100 % 확신하지는 못하지만, 인터넷 검색으로 나를 안내합니다. –

답변

0

당신이 질문에서 언급 한 바와 같이, 기능 AuthorizationExecuteWithPrivileges는 사용되지 않는 기능이며, 지금은 꽤 오랫동안되었습니다. 권한이 부여 된 프로세스를 launchd의 도움으로 시작되는 별도의 권한있는 도우미 도구로 분해하는 Apple의 조언에 따라 시작하는 것이 좋습니다.

예제 코드 here을 따르십시오.

권한 문제가 여전히 존재한다면 적어도 올바른 방식으로 코드를 리팩토링하여 향후 버전의 OS에서 지원된다는 것을 알았습니다.

관련 문제