자동 업데이트

Google에서는 Chrome과 동일한 이유로 확장 프로그램 및 앱을 자동 업데이트하기를 원합니다. 버그 및 보안 수정사항을 통합하고 새로운 기능 또는 성능 개선사항을 추가하며 사용자 인터페이스입니다.

Chrome 개발자 대시보드를 사용하여 게시하는 경우 이 페이지를 무시해야 합니다. Chrome 웹 미리보기를 통과한 스토어 제출물은 확장 프로그램의 Chrome 웹 스토어 항목 등록정보에 자동으로 제공되고 최종 사용자에게 배포됩니다.

웹 서버에서 CRX 파일을 호스팅하고 엔터프라이즈 정책을 사용하여 관리 계속 읽어보세요. 호스팅패키징도 참조하세요.

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

개요

  • 매니페스트에는 'update_url'이 포함될 수 있습니다. 필드가 업데이트 검사를 수행하기 위한 위치를 가리킵니다.
  • 업데이트 확인에서 반환되는 콘텐츠는 최신 상태를 명시한 업데이트 매니페스트 XML 문서입니다. 확장 프로그램 버전입니다

브라우저는 설치된 확장 프로그램이나 앱에 업데이트 URL이 있는지 몇 시간마다 확인합니다. 대상 각 URL에 업데이트 매니페스트 XML 파일을 찾도록 요청합니다. 업데이트가 설치된 것보다 최신 버전이 설치되어 있고, 브라우저가 다운로드되고 새 버전이 설치됩니다 수동 업데이트와 마찬가지로 새 .crx 파일은 비공개 키를 현재 설치된 버전으로 설정합니다.

업데이트 URL

자체 확장 프로그램 또는 앱을 호스팅하는 경우 'update_url'을 추가해야 합니다. 필드를 manifest.json 파일에 추가합니다.

{
  "name": "My extension",
  ...
  "update_url": "http://myhost.com/mytestextension/updates.xml",
  ...
}

매니페스트 업데이트

서버에서 반환하는 업데이트 매니페스트는 다음과 같은 XML 문서여야 합니다. (강조표시된 부분은 수정해야 하는 부분을 나타냄):

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

이 XML 형식은 Google의 업데이트 인프라인 Omaha에서 차용한 것입니다. 자세한 내용은 http://code.google.com/p/omaha/를 참조하세요. 확장 프로그램 시스템은 다음을 사용합니다. 속성( 요소 관련)은 다음과 같습니다.

appid

다음에 설명된 대로 공개 키의 해시를 기반으로 생성된 확장 프로그램 또는 앱 ID 패키징. 확장 프로그램 페이지로 이동하여 확장 프로그램 또는 Chrome 앱의 ID를 찾을 수 있습니다. (chrome://extensions).

그러나 호스팅된 앱은 확장 프로그램 페이지에 표시되지 않습니다. 앱 ID는 다음 단계를 따르세요.

  • 앱을 엽니다. 새 탭 페이지에서 아이콘을 클릭하면 됩니다.
  • JavaScript 콘솔을 엽니다. 도구 아이콘을 클릭하고 도구 > JavaScript 콘솔을 엽니다.
  • JavaScript 콘솔에 chrome.app.getDetails().id 표현식을 입력합니다. 이 콘솔에서 앱 ID를 따옴표로 묶은 문자열로 표시합니다.
코드베이스

.crx 파일의 URL.

version

클라이언트가 지정한 .crx 파일을 다운로드해야 하는지 여부를 결정하는 데 사용합니다. codebase 'version'의 값과 일치해야 합니다. .crx 파일의 manifest.json 파일에 있습니다.

업데이트 매니페스트 XML 파일에는 여러 개의 요소.

테스트

기본 업데이트 확인 빈도는 몇 시간이지만 확장 프로그램 페이지의 지금 확장 프로그램 업데이트 버튼

고급 사용법: 요청 매개변수

기본적인 자동 업데이트 메커니즘은 서버 측 작업을 정적 XML 파일을 Apache와 같은 일반 웹 서버에 설치하고 출시할 때 해당 XML 파일을 업데이트합니다. 새 버전의 확장 프로그램을 다운로드합니다.

고급 개발자는 업데이트 매니페스트에 대한 요청을 생성하여 확장 프로그램 ID 및 버전을 나타냅니다. 그런 다음 동적 서버 측 코드를 실행하는 URL을 가리키며 모든 확장 프로그램의 URL을 업데이트합니다. .

요청 매개변수의 형식은 다음과 같습니다.

?x=_<extension_data>_

여기서 _<extension_data>_는 다음과 같은 형식의 URL 인코딩 문자열입니다.

_id=<id>_&v=_<version>_

예를 들어 동일한 업데이트 URL을 가리키는 두 개의 확장 프로그램이 있다고 가정해 보겠습니다. (http://test.com/extension_updates.php):

  • 확장 프로그램 1 <ph type="x-smartling-placeholder">
      </ph>
    • ID: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    • 버전: '1.1'
  • 확장 프로그램 2 <ph type="x-smartling-placeholder">
      </ph>
    • ID: 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
    • 버전: '0.4'

각 개별 확장 프로그램의 업데이트 요청은 다음과 같습니다.

  • http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
  • http://test.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

고유한 업데이트 URL마다 하나의 요청에 여러 확장 프로그램을 나열할 수 있습니다. 위 예를 들어 사용자가 두 확장 프로그램을 모두 설치한 경우 두 요청이 하나의 단일 요청:

http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

동일한 업데이트 URL을 사용하는 설치된 확장 프로그램의 수가 GET 요청을 실행할 만큼 큰 경우 URL이 너무 길면 (영문 기준 2,000자 이상) 업데이트 확인 시 있습니다.

고급 사용: 최소 브라우저 버전

확장 프로그램 시스템에 API를 추가하면 업데이트된 버전을 출시하고 싶을 수 있습니다. 최신 버전의 브라우저에서만 작동하는 확장 프로그램 또는 앱 버전을 삭제해야 합니다. Google은 Chrome 자체는 자동 업데이트되므로 대부분의 사용자가 업데이트할 수 있습니다 특정 업데이트가 Chrome에만 적용되도록 하기 위해 버전이 특정 버전 이상이면 'prodversionmin'을 추가합니다. 속성을 요소를 지정해야 합니다. 예를 들면 다음과 같습니다.

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' prodversionmin='3.0.193.0'/>
  </app>
</gupdate>

이렇게 하면 사용자가 Chrome을 실행하는 경우에만 버전 2로 자동 업데이트됩니다. 3.0.193.0 이상