Mac 용 Chrome 브라우저 확장 프로그램에서 "기본 호스트가 종료되었습니다"오류를 수정하는 방법은 무엇입니까? 여기 Native Messaging에있는 문서는이 오류를 구체적으로 언급하고 가능한 원인을 제시하지만 아주 일반적으로 ("사용자의 기본 메시징 호스트에서 시작되었을 가능성이 큽니다")이 문제를 해결하기 위해 무엇을 시도해야하는지 명확하지 않습니다 .네이티브 호스트가 Chrome 브라우저 확장 프로그램에서 종료 오류를 수정하는 방법 - 기본 메시지
터미널의 로깅 출력 (Mac 터미널에서 Chrome을 시작하면 로깅 정보를 볼 수 있음)을 통해 네이티브 호스트 응용 프로그램의 프로세스 자체가 성공적으로 시작된 적이 없다고 생각하게되었습니다. 나는 점점 계속 :
LaunchProcess: failed to execvp:
/Users/mycomputer1/Documents/myhost.app
을하지만, 페이지는 자바 스크립트 배경의 콘솔에 "기본 호스트가 종료되었습니다"인쇄 실제 코드 :
function onDisconnected() {
console.log("Inside onDisconnected(): " + chrome.runtime.lastError.message);
port = null;
}
onDisconnected() 리스너가 사실로 호출을 나는이 문서에 따라 여기했던 connectNative()를 호출의 결과 :
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
//var imgdata = JSON.stringify(request.imgdata);
//process it somehow here
port = chrome.runtime.connectNative("com.allinlearning.ailhost");
if (port)
{
console.log("connectNative() returned a non-null port");
}
});
나는 유효한 포트를 반환 기원전 connectNative()가 어떤 수준에서 성공 것을 알고있다. 그러나 connectNative()는 네이티브 호스트 응용 프로그램을 찾고 실행하려고 시도합니다. 내 호스트 앱이 stdout 또는 stdin과 전혀 통신을 구현하지 않았지만 호스트 응용 프로그램이 Chrome과 기본 앱 사이에 "파이프"가 깨지는 것을 범하는 원인이라고 설명합니다. 게다가 Chrome 로그 메시지 ('LaunchProcess : execvp failed : failed')는 내 Mac 앱이 성공적으로 실행되지 않았 음을 나타냅니다.
더 많은 정보가 있습니다. 온라인에서 발견 된 일부 소스 코드 (아마도 source file)는이 "기본 호스트가 종료되었습니다"라는 메시지의 출처를 밝히며, Google 크롬 코드가 문제를 해결하는 이유를 보여주는 시험을 제안합니다. HandleReadResult()에서 Close()는 매우 msg를 제공하고 호출 한 다음 Posix read()가 0을 반환하는 것에 대한 응답으로 항목을 닫습니다. 그러나 폭 넓은 스포츠 세계에서 내가 뭘 잘못하고 있는지 내 맥 애플 리케이션 에서이 읽기 실패 원인이? 내 Mac 앱이 표준 출력에 아무 것도 쓰지 않으므로 쓰기 작업이 아닌데 어떻게 읽기 오류가 발생합니까? 또는이 모든 것이 나를 오도하는 것일 수 있으며 execvp가 내 호스트 앱을 더 많이 발사하지 못했습니까? 그렇다면 왜? 그것은 평범한 제인 barebones Mac 앱입니다.
은 바이너리 실행 할 수있는 권리 권한이 있습니까? 나는. 당신과 실행 비트 세트 ('chmod u + x myhost.app')가 소유하고 있습니다. 명령 줄에서 프로그램을 실행하면 어떻게됩니까? (예, 링크가 업데이트되었습니다 .SVN 저장소가 더 이상 업데이트되지 않으므로 git repo : https : //chromium.googlesource를 살펴보십시오.com/chromium/src/+/master/chrome/browser/extensions/api/messaging/native_message_process_host.cc) –
Xcode에 따르면 "설치 권한"은 u + w, go-w, a + rX입니다. 다른 권한은 같습니다. Btw, 내가 그것을 소유하고 있음을 어떻게 확인합니까? 그리고 네, 간단하게 열린 cmd로 터미널에서 응용 프로그램을 성공적으로 시작했습니다. Xcode에서 만든 모든 * app이 작동합니까? 그렇다면, 아마 당신이 CD를 나에게 보내면 그것을 시도 할 수 있습니다. – Alyoshak