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 이상