크롬의 확장이 동작하지 않으면?

2009/07/26 13:12

크롬 확장

원래 크롬은 확장을 지원하지 않았다. 그러나 2.0 베타부터 확장을 지원하기 시작했다. 그래서 쓴 글이 크롬에서 Firefox처럼 확장 사용하기라는 글이다. 이 당시 크롬(Chrome)의 확장은 경로만 맞으면 동작했다. 그러나 크롬의 개발이 진행되면서 확장에 대한 규칙이 몇가지 바뀌었다.

목차

크롬 확장

원래 은 확장을 지원하지 않았다. 그러나 2.0 베타부터 확장을 지원하기 시작했다. 그래서 쓴 글이 크롬에서 Firefox처럼 확장 사용하기라는 글이다. 이 당시 크롬(Chrome)의 확장은 경로만 맞으면 동작했다. 그러나 크롬의 개발이 진행되면서 확장에 대한 규칙이 몇가지 바뀌었다. 바뀐 부분은 다음과 같다.

  • 서명 요구
    예전에 만들어진 크롬 확장은 확장에 필요한 파일을 단순히 ZIP 파일로 압축한 뒤 확장자만 CRX로 바꾸면 동작했다. 그러나 최근에는 반드시 서명을 하도록 바뀌었다. 따라서 크롬에서 사용할 수 있는 모든 확장에서 소개한 확장은 모두 동작하지 않는다.
  • 폴더 아이디 변경
    예전에는 JSON 파일의 ID를 이용해서 폴더를 만들었지만 지금은 JSON 파일의 ID가 아니라 설치할 때 폴더 ID를 만들어 확장을 설치한다. 따라서 이전의 방법으로 JSON 파일의 ID를 참조해서 폴더를 만들어도 동작하지 않는다.
  • page_actions.icon 변경
    page_actions.icon의 이름을 page_actions.icons로 변경했다. 따라서 page_actions.icon을 사용하는 모든 확장은 다음과 같은 오류 메시지를 내며 동작하지 않는다.

이 문제를 해결하는 방법은 간단하다. 일단 page_actions.icon을 사용하는 확장은 manifest.json을 편집하면 된다. 또 서명을 요구하는 확장은 서명을 추가해서 사용하면 된다. 이 글에서는 델리셔스 확장 0.2를 예로 사용해서 설명하도록 하겠다.

오동작 하는 확장의 변경

  1. chrome-delicious-extension-0.2.crx에 마우스 오른쪽 단추를 클릭한 뒤 다른 이름으로 저장을 클릭한다. 델리셔스 확장은 현재 0.4까지 올라와 있지만 0.3 이상의 판은 주소 표시줄에 아이콘을 만드는 것이 아니라 상태 표시줄에 나타나기 때문에 지금까지 0.2판을 사용하고 있다.
  2. chrome-delicious-extension-0.2.crx라는 파일 이름을 chrome-delicious-extension-0.2.zip으로 바꾼 뒤 임의의 폴더(예: E:\Down\Imsi\Extension\Delicious)에 압축을 풀어둔다.
  3. 풀어둔 압축 파일 중 manifest.json 파일을 불러온 뒤 page_actions 배열의 iconicons로 바꾼 뒤 저장한다.

    **변경전**  
    "page_actions": [
    {
      "id": "TagPageAction",
      "name": "The TagPageAction for Delicious",
      "icon": "tagUp24.png",
      "tooltip": "Click to tag the page with Delicious",
      "type": "tab"
    }
    ]
    
    **변경후**  
    "page_actions": [
    {
      "id": "TagPageAction",
      "name": "The TagPageAction for Delicious",
      "icons": "tagUp24.png",
      "tooltip": "Click to tag the page with Delicious",
      "type": "tab"
    }
    ]
    

서명을 추가한 뒤 확장 생성

서명이 없는 확장이나 파일로만 가지고 있는 확장은 크롬 확장을 직접 패키징해서 사용하면 된다. 절차는 다름과 같다.

  1. 현재 실행 중인 모든 크롬을 끝낸다. 크롬을 실행하고 있으면 크롬 창만 활성화되므로 작업 관리자로 떠있는 크롬이 있는지 확인한 뒤 실행해야 한다.
  2. 명령행에서 다음과 같은 형식의 명령을 실행한다.

    <크롬 설치 폴더>\chrome.exe --pack-extension=<확장을 저장한 폴더>
    예:
    c:\Users\artech\AppData\Local\Google\Chrome\Application\chrome.exe --pack-extension=e:\down\Imsi\Extension\Delicious
    

  3. 다음 그림과 같은 창이 나타나면 확인 단추를 클릭한다. 그림을 보면 알 수 있지만 확장(CRX)과 서명(PEM)이 만들어 진 것을 알 수 있다. 이제 이 확장을 크롬에 끌어 놓아 확장을 설치할 수 있다.

관련 글타래

Tags

Chrome, Delicious, Extension, 델리셔스, 크롬, 확장