대체 확장 프로그램 배포 옵션

모든 Chrome 확장 프로그램은 Chrome 웹 스토어에서 직접 배포하거나 아래에 설명된 메커니즘을 사용하여 배포해야 합니다. 이러한 배포 방법 중 하나를 준수하지 않으면 Chrome 확장 프로그램 정책을 위반하는 것이며 확장 프로그램 또는 이를 배포하는 소프트웨어가 원치 않는 소프트웨어로 신고될 수 있습니다.

일반적으로 사용자는 Chrome 웹 스토어에서 확장 프로그램을 설치하지만 다른 방법을 통해 확장 프로그램을 설치하려는 경우도 있습니다. 다음은 두 가지 일반적인 사례입니다.

  • 확장 프로그램은 다른 소프트웨어와 연결되어 있으며, 사용자가 해당 소프트웨어를 설치할 때마다 확장 프로그램을 설치해야 합니다.
  • 네트워크 관리자가 조직 전체에 동일한 확장 프로그램을 설치하려고 합니다.

Chrome 웹 스토어에서 설치되지 않은 확장 프로그램을 외부 확장 프로그램이라고 합니다. 다른 소프트웨어 설치 프로세스의 일부로 확장 프로그램을 배포하려는 개발자나 조직 전체에 확장 프로그램을 배포하려는 네트워크 관리자를 위해 Chrome은 다음 확장 프로그램 설치 방법을 지원합니다.

  • 환경설정 JSON 파일 사용 (Mac OS X 및 Linux만 해당)
  • Windows 레지스트리 사용 (Windows만 해당)

두 가지 방법 모두 update_URL에서 호스팅되는 확장 프로그램을 설치하는 것을 지원합니다. Windows 및 Mac에서 update_URL은 확장 프로그램을 호스팅해야 하는 Chrome 웹 스토어를 가리켜야 합니다.

Linux의 환경설정 파일은 확장 프로그램을 호스팅하는 자체 서버를 가리킬 수 있습니다. 환경설정 JSON 파일은 사용자의 Linux 컴퓨터에 있는 .crx 확장 프로그램 파일의 확장 프로그램 설치를 지원합니다.

시작하기 전에

먼저 Chrome 웹 스토어에 확장 프로그램을 publish하거나 .crx 파일을 패키징하고 성공적으로 설치되었는지 확인합니다.

업데이트 URL에서 설치하는 경우 확장 프로그램이 제대로 호스팅되는지 확인하세요.

환경설정 파일 또는 레지스트리를 수정하기 전에 다음 사항에 유의하세요.

  • 확장 프로그램의 .crx 파일의 의도된 위치 또는 파일이 제공되는 업데이트 URL
  • 확장 프로그램의 버전 (매니페스트 파일 또는 chrome://extensions 페이지)
  • 확장 프로그램의 ID (패킹된 확장 프로그램을 로드한 후 chrome://extensions 페이지에 있음)

다음 예시에서는 버전이 1.0이고 ID가 aaaaaaaaaabbbbbbbbbbcccccccccc이라고 가정합니다.

환경설정 파일 사용

  1. Linux의 파일에서 설치하는 경우 확장 프로그램을 설치하려는 머신에서 .crx 확장 프로그램 파일을 사용할 수 있도록 합니다. 로컬 디렉터리나 네트워크 공유(예: \\server\share\extension.crx 또는 /home/share/extension.crx)에 복사합니다.
  2. 아래 나열된 폴더 중 하나에 다음 이름으로 파일을 만듭니다. aaaaaaaaaabbbbbbbbbbcccccccccc.json 여기서 파일 이름 (확장자 제외)은 확장 프로그램의 ID에 해당합니다. 위치는 운영체제에 따라 다릅니다.

    Mac OS X:

    특정 사용자: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ 모든 사용자: /Library/Application Support/Google/Chrome/External Extensions/

    모든 사용자의 외부 확장 파일은 경로의 모든 디렉터리가 사용자 root가 소유하고 admin 또는 wheel 그룹이 있으며 누구나 쓸 수 없는 경우에만 읽힙니다. 또한 경로에 심볼릭 링크가 없어야 합니다. 이러한 제한사항은 권한이 없는 사용자로 인해 모든 사용자의 확장 프로그램이 설치되지 않도록 합니다. 자세한 내용은 문제 해결을 참고하세요.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    참고: 필요한 경우 chmod를 사용하여 aaaaaaaaaabbbbbbbbbbcccccccccc.json 파일을 누구나 읽을 수 있도록 하세요.

  3. Linux만 해당: 파일에서 설치하는 경우 위에서 만든 파일에서 'external_crx' 및 'external_version'이라는 이름의 필드를 사용하여 확장 프로그램의 위치와 버전을 지정합니다.

    • 예:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • 참고:\` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`를 이스케이프 처리해야 합니다.
    • 업데이트 URL에서 설치하는 경우 필드 이름으로 확장 프로그램의 업데이트 URL을 'external_update_url'로 지정합니다.
    • 로컬 .crx 파일에서 설치하는 예 (Linux만 해당):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Chrome 웹 스토어에서 설치하는 경우의 예 (Mac 및 Linux)
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • 일부 브라우저 언어에만 확장 프로그램을 설치하려면 'supported_locale' 필드 이름에 지원되는 언어를 나열하면 됩니다. 언어는 'en'과 같은 상위 언어를 지정할 수 있습니다. 이 경우 확장 프로그램은 'en-US', 'en-GB'와 같은 모든 영어 언어에 맞게 설치됩니다. 확장 프로그램에서 지원되지 않는 다른 브라우저 언어를 선택하면 외부 확장 프로그램이 제거됩니다. 'supported_locales' 목록이 누락되면 확장 프로그램이 모든 언어에 설치됩니다.
    • 예:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. JSON 파일을 저장합니다.

  5. Chrome을 실행하고 chrome://extensions로 이동하면 확장 프로그램이 목록에 표시됩니다.

Mac OS 사용 권한 문제 해결

Mac OS에서는 파일 시스템 권한이 권한이 없는 사용자가 파일을 변경하지 못하도록 하는 경우에만 모든 사용자의 외부 확장 파일을 읽습니다. Chrome을 실행할 때 외부 확장 프로그램이 설치되지 않으면 외부 확장 프로그램 환경설정 파일에 권한 문제가 있을 수 있습니다. 이것이 문제인지 확인하려면 다음 단계를 따르세요.

  1. Console 프로그램을 실행합니다. /Applications/Utilities/Console에서 찾을 수 있습니다.
  2. 콘솔에서 맨 왼쪽 아이콘이 '로그 목록 표시'인 경우 해당 아이콘을 클릭합니다. 왼쪽에 두 번째 열이 표시됩니다.
  3. 왼쪽 창에서 '콘솔 메시지'를 클릭합니다.
  4. Can not read external extensions 문자열을 검색합니다. 외부 확장 프로그램 파일을 읽는 데 문제가 있으면 오류 메시지가 표시됩니다. 바로 위에서 문제를 설명하는 다른 오류 메시지를 찾습니다. 예를 들어 'Path /Library/Application Support/Google/Chrome is used by the wrong group' 오류가 표시되면 chgrp 또는 Finder의 정보 가져오기 대화상자를 사용하여 디렉터리의 그룹 소유자를 관리자 그룹으로 변경해야 합니다.
  5. 문제를 해결한 후 Chrome을 다시 실행합니다. 이제 외부 확장 프로그램이 설치되었는지 테스트합니다. 한 가지 권한 오류로 인해 Chrome이 두 번째 오류를 감지하지 못할 수도 있습니다. 외부 확장 프로그램이 설치되지 않은 경우 Console 애플리케이션에 오류가 표시되지 않을 때까지 이 단계를 반복합니다.

Windows 레지스트리 사용

  1. 레지스트리에서 다음 키를 찾거나 만듭니다.
    • 32비트 Windows: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • 64비트 Windows: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Extensions 키 아래에 확장 프로그램 ID와 동일한 이름 (예: aaaaaaaaaabbbbbbbbbbcccccccccc)으로 새 키 (폴더)를 만듭니다.
  3. 확장 프로그램 키에서 'update_url' 속성을 만들고 'https://clients2.google.com/service/update2/crx' 값으로 설정합니다(이 값은 Chrome 웹 스토어에서 확장 프로그램의 crx를 가리킴).

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. 브라우저를 실행하고 chrome://extensions로 이동하면 확장 프로그램이 나열됩니다.

업데이트 및 제거

Chrome은 브라우저를 시작할 때마다 환경설정 및 레지스트리의 메타데이터 항목을 검사하여 설치된 외부 확장 프로그램에 필요한 변경사항을 적용합니다.

확장 프로그램을 새 버전으로 업데이트하려면 파일을 업데이트한 후 환경설정 또는 레지스트리에서 버전을 업데이트합니다.

확장 프로그램을 제거하려면 (예: 소프트웨어가 제거된 경우) 환경설정 파일 (aaaaaaaaaabbbbbbbbbbcccccccccc.json) 또는 메타데이터를 레지스트리에서 삭제하세요.

FAQ

이 섹션에서는 외부 확장 프로그램에 관한 일반적인 질문에 답변합니다.

'사전 설치'를 허용하는 방법이 M33 이후 Chrome에서 계속 지원되나요?

예. 하지만 로컬 파일 경로가 아닌 Chrome 웹 스토어 update_URL에서 설치해야 합니다.

URL을 외부 확장 프로그램의 경로로 지정할 수 있나요?

예, Mac OS X 및 Linux의 경우 preferences JSON 파일, Windows의 경우 registry를 사용합니다. 확장 프로그램은 호스팅에 설명된 대로 호스팅되어야 합니다. 환경설정 파일에서 'external_update_url' 속성을 사용하여 확장 프로그램의 URL이 있는 업데이트 매니페스트를 가리킵니다. Windows 레지스트리에서 'update_url' 속성을 사용합니다.

환경설정 파일로 설치할 때 흔히 발생하는 실수에는 어떤 것이 있나요?

  • .crx에 표시된 것과 동일한 ID/버전을 지정하지 않음
  • .json 파일 (aaaaaaaaaabbbbbbbbbbcccccccccc.json)이 잘못된 위치에 있거나 지정된 ID가 확장 프로그램 ID와 일치하지 않습니다.
  • JSON 파일의 구문 오류 (쉼표로 항목을 구분하는 것을 잊어버리거나 후행 쉼표를 어딘가에 두는 것을 잊어버림)
  • JSON 파일 진입점이 .crx의 잘못된 경로를 가리킴 (또는 경로가 지정되었지만 파일 이름이 없음)
  • UNC 경로의 백슬래시가 이스케이프 처리되지 않음 (예: "\\server\share\file"이 잘못됨, "\\\\server\\share\\extension"여야 함)
  • 네트워크 공유의 권한 문제

레지스트리를 사용하여 설치할 때 흔히 발생하는 실수에는 어떤 것이 있나요?

  • Chrome 웹 스토어에 표시된 것과 동일한 ID/버전을 지정하지 않음
  • 키가 레지스트리의 잘못된 위치에 생성됨
  • 레지스트리 항목이 Chrome 웹 스토어에 있는 .crx 파일의 잘못된 경로를 가리킴
  • 네트워크 공유의 권한 문제

네이티브 바이너리와 확장 프로그램을 단계별로 업데이트하려면 어떻게 해야 하나요?

이전에는 오프 스토어 확장 프로그램이 지원되는 경우 네이티브 바이너리와 확장 프로그램을 잠금 단계에서 업데이트할 수 있었습니다. 하지만 Chrome 웹 스토어에서 호스팅되는 확장 프로그램은 개발자가 제어하지 않는 Chrome 업데이트 메커니즘을 통해 업데이트됩니다. 확장 프로그램 개발자는 네이티브 바이너리에 종속 항목이 있는 확장 프로그램 (예: NPAPI를 사용하는 기존 확장 프로그램)을 업데이트할 때 주의해야 합니다.

사용자가 확장 프로그램을 제거하면 어떻게 되나요?

사용자가 UI를 통해 확장 프로그램을 제거하면 시작할 때마다 더 이상 확장 프로그램이 설치되거나 업데이트되지 않습니다. 즉, 외부 확장 프로그램이 차단됩니다.

차단 목록에서 해제하려면 어떻게 해야 하나요?

사용자가 확장 프로그램을 제거하더라도 이를 존중해야 합니다. 하지만 개발자가 실수로 UI를 통해 확장 프로그램을 제거한 경우 UI를 통해 정상적으로 확장 프로그램을 설치한 다음 제거하여 차단 목록 태그를 삭제할 수 있습니다.