chrome extension을 만들었는데 달랑 crx 파일만 있고 사적으로 호스팅하고 있는 상황이라면,

해당 extension을 설치하기 위해선 수동으로 하는 수 밖에 없다.


왜냐하면 보안정책상 Chrome WebStore가 아닌 다른 곳에선 브라우저에서 자동으로 extension을 설치할 수가 없기 때문이다.


그래서 수동설치법.




1. crx 파일 던져넣기

이게 제일 간단하다.

chrome 브라우저를 띄우고 주소창에 chrome://extensions 를 입력하여 확장 프로그램 관리 페이지로 들어간 다음,

crx파일을 드래그 앤 드롭으로 던져 넣으면 된다.


이게 제일 간단하고 여러모로 편한 방법이긴 한데,

'크롬이 뭐에요?' 상태의 사람에겐 설명하기가 애매하기도 하다.


클릭질 몇번으로 편하게 설치되는 것처럼 보이고 싶다면 아래의 2번 방법을 사용하면 된다.



2. EXTENSION_ID.json 파일 이용하기

chrome 브라우저는 시작시에 특정 위치에 있는 json 파일을 읽어서 extension을 설치할 수 있는데 이를 이용한 방법이다.

준비물 - crx파일 (혹은 호스팅 중이라면 updates.xml 경로) / EXTENSION_ID.json 파일


여기선 crx파일을 호스팅 중이라고 가정하고 진행한다.

어차피 업데이트도 시켜야 하고 crx 파일 다운로드도 자동으로 최신버전으로 해주므로 이게 여러모로 말이 되는 듯.


updates.xml의 경로는 http://www.bloodguy.com/updates.xml 이라고 하고,

extension ID 는 aaaaaaaaaabbbbbbbbbbcccccccccc 라고 가정.


우선 aaaaaaaaaabbbbbbbbbbcccccccccc.json 파일을 만들고 내용은 아래와 같이 입력한다.

updates.xml 의 경로다.

{

    "external_update_url": "http://www.bloodguy.com/updates.xml"

}


이 json 파일을 chrome이 시작될 때 체크하는 폴더에 이동시킨다.

아래와 같다.

CHROME_ROOT\Application\CHROME_VERSION\Extensions

예를 들자면 C:\Users\사용자\AppData\Local\Google\Chrome\Application\29.0.1547.76\Extensions


하나 주의할 점은 CHROME_ROOT\Application\ 까지 들어갔는데 버전이 2개 존재하는 경우가 있을 수 있다.

이럴 땐 제일 높은 버전을 선택하면 된다.

예를 들어 CHROME_ROOT\Application 까지 들어갔는데 버전처럼 생긴 폴더가 29.0.1547.66과 29.0.1547.76 2개가 있다면 29.0.1547.76 이 최신버전이다.


이 폴더에 aaaaaaaaaabbbbbbbbbbcccccccccc.json 파일을 놔두고 chrome을 재시작하면,

우측 상단의 설정버튼이 주황색(?)으로 빛나고 있고 클릭하면 나오는 리스트 메뉴 중 하단에 XXX 확장 프로그램이 설치되었다는 메세지가 있다.

해당 메세지를 클릭하면 일반적인 extension 설치시 물어보는 권한관련 confirm 창이 뜨고 사용하겠다고 하면 설치가 완료된다.


이게 아니라면 chrome 재시작 후에 바로 chrome://extensions 페이지로 가면 이미 설치가 되어 있는 상태임을 확인할 수 있고, '사용'에 체크하면 사용할 수 있게 된다.


이 방법을 이용할 경우 exe 파일을 하나 만들어서, 

실행만 시키면 경로 찾아서 json 파일 넣어주고 하는 일련의 과정을 자동화 할 수 있다는 장점이 있긴 한데,

치명적일지도 모르는 단점도 하나 있다.


이런 방식으로 설치된 extension의 경우,

사용자가 해당 extension을 제거하면 blacklist에 오르게 되어 해당 extension을 재설치 할 수가 없게 된다.

해결법은 crx 파일을 던져넣는 방식으로 다시 설치하고 삭제하면 blacklist에서 제거할 수 있지만 이렇게 되면 이미 편리함은 물건너 가게 된다는 것.





[참조]

http://developer.chrome.com/extensions/external_extensions.html







Posted by bloodguy
,