레지스트리 에디터에서 해당 APPID를 찾은 다음 구성요소 서비스에서 DCOM 구성 들어가서 보안 설정을 변경하면 될 것 같았는데 DCOM 구성에 들어 가 보면 보안 탭의 항목이 비활성화 되어 있어 수정이 불가능합니다.
어떻게 처리를 해야 하는지 자문을 구합니다. 감사합니다.
------------------ 아 래 -------------------
로그 이름: System
원본: Microsoft-Windows-DistributedCOM
날짜: 2014-01-02 오후 5:18:51
이벤트 ID: 10016
작업 범주: 없음
수준: 오류
키워드: 클래식
사용자: LOCAL SERVICE
컴퓨터: Q9550
설명:
컴퓨터 기본값 권한 설정에서 CLSID가
{C2F03A33-21F5-47FA-B4BB-156362A2F239}
이고 APPID가
{316CDED5-E4AE-4B15-9113-7055D84DCC97}
인 COM 서버 응용 프로그램에 대한 로컬 활성화 사용 권한을 응용 프로그램 컨테이너 사용할 수 없음 SID(사용할 수 없음)에서 실행 중인 주소 LocalHost(LRPC 사용)의 사용자 NT AUTHORITY\LOCAL SERVICE SID(S-1-5-19)에게 부여하지 않았습니다. 구성 요소 서비스 관리 도구를 사용하여 이 보안 권한을 수정할 수 있습니다.
Windows 8.1 사용 중 이벤트 뷰어의 시스템 오류(이벤트ID 10016, DistribytedCOM)에 대해 문의를 주셨습니다.
문의주신 내용의 경우, COM 구성요소를 시작하는데 필요한 권한이 없거나, 네트워크 계정 서비스에 대한 권한 부족으로 인해서 발생할 수 있으며, 아래의 작업 방법을 참고하여 진행하면 보안탭 항목을 활성화하여 진행 해보실 수 있을 것으로 보입니다.(11번 참고)
[작업 방법]
Windows 로고키 + R키를 누른 후 실행창이 나타나면regedit 입력 후 확인을 클릭합니다.
레지스트리 편집기가 실행되면 아래의 CLSID경로를 찾아 이동하여 마우스 오른쪽 버튼으로 클릭한 다음 사용권한을 클릭합니다. HKEY_Classes_Root\CLSID\{C2F03A33-21F5-47FA-B4BB-156362A2F239}
사용권한 창이 나타나면 우측 하단의고급버튼을 클릭합니다.
고급 보안 설정 창이 나타나면 소유자 항목의변경버튼을 클릭합니다.
사용자 또는 그룹 선택창이 나타나면, [선택할 개체 이름을 입력하십시오]란에administrators를 입력하고이름 확인버튼을 누른 후 확인을 클릭합니다.
(또는, 고급 버튼을 클릭한 후 지금 찾기 버튼을 통해서 administrators 항목을 찾아서 선택하실 수도 있습니다.)
이 후 소유자가 변경된 것을 확인하고 적용 - 확인을 클릭합니다.
사용 권한 창에서 Administrator 의 모든 권한을 체크 후 적용 - 확인을 클릭합니다.
레지스트리 편집기에서 APPID 경로를 찾아 마우스 오른쪽 버튼 클릭 후 사용권한을 클릭하여 앞서 진행한 3~7번의 방법을 진행합니다. HKEY_LocalMachine\Software\Classes\AppID\{316CDED5-E4AE-4B15-9113-7055D84DCC97}
이 후Windows 로고키 + R키를 누른 후 실행창이 열리면dcomcnfg입력 후 확인을 클릭합니다.
구성 요소 서비스 창이 열리면 [구성 요소 서비스 - 컴퓨터 - 내 컴퓨터 - DCOM 구성]을 클릭하고 우측에서 Immersive Shell을 찾아서 마우스 오른쪽 버튼 클릭 후 속성을 클릭합니다.
속성 창이 나타나면보안 탭에서 [시작 및 활성화 권한] 항목을사용자 지정으로 체크하고편집버튼을 클릭합니다.
시작 및 활성화 권한 창이 나타나면,추가버튼을 클릭합니다.
사용자 또는 그룹 선택 창이 나타나면 [선택할 개체 이름을 입력하십시오]란에Local Service를 입력하고 이름 확인 버튼을 누른 후 확인을 클릭합니다.
Local Service 가 추가되면로컬 활성화항목허용에 체크를 한 후 확인을 클릭합니다.
I encountered a very similar issue and found it was caused by the antivirus software. By suspending the antivirus process, I was able to work around the problem.
Try configuring your AV to "exclude" your project directory, but if that fails then you'll need to either disable or temporarily suspend the AV's process.
아직은 단순 경고라서 빌드를 계속 사용할수 있지만, 조만간에는 리젝을 하지 않을까 싶습니다.
UIWebViewIn apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView. Additionally, consider setting the WKPreferences property javaScriptEnabled to false if you render files that are not supposed to run JavaScript.
물론 UIWebView를 걷어내고 WKWebView로 바꾸면 오류가 발생하지 않습니다.
그런데 문제는 서드파티 라이브러리인데요
제가 올린 앱에도 uiwebview를 전혀사용하고 있지 않았음에도 저 메세지가 나오고 있어서
누가 문제인지 찾아보았습니다
프로젝트 폴더에서
# grep -r "UIWebView" .
로 찾아보니 firebase하고 facebook account kit이 uiwebview를 사용하고 있더라고요
다행히 facebook sdk는
5.5.0 버전의 change log를 보니 UIWebView를 WKWebView로 바꾸었다고 나오네요
firebase도 6.8.0 버전에서 UIWebView를 제거했다고 하네요
제 프로젝트의 라이브러리들이 옛날버전인것이 문제였군요.
자 이제 서드파티 라이브러리를 업데이트 해주시면 됩니다.
# pod repo update
# pod update
이 과정을 통해 최신의 라이브러리를 받긴 했습니다만
여전히 facebook accountkit이 uiwebview를 사용하고 있길래 왜그렇지 하고 살펴보니
페이스북이 uiwebview를 교체한 5.5.0 버전을 출시하긴 했는데 cocoapod에는 업데이트를 하지 않아서 그렇더라고요.
facebook sdk를 최신버전을 받아서 직접 넣거나, 페이스북이 업데이트 해주기를 기다려야겠네요.