Chromeエクステンションを作ろう：Chromeウェブストア編


説明で使用した拡張機能は[こちら](https://chrome.google.com/webstore/detail/redmine-lazy-applicant/dofmgcleeckgckfapnhookpocglpbmgp)からインストールできます. 一人でも多くの方に利用いただければ幸いです.
ソースコードは[こちら](https://bitbucket.org/dhun-h/lazy-applicant)から閲覧できます.

## Chromeウェブストアとは

> [Chrome ウェブストア](https://chrome.google.com/webstore/category/apps)では、Google Chrome ブラウザ向けのアプリ、拡張機能、テーマを見つけることができます。アプリや拡張機能、テーマを追加すると、Chrome でできることが増えます。


## デベロッパーダッシュボードとは

[デベロッパーダッシュボード](https://chrome.google.com/webstore/developer/dashboard)とは、Chromeウェブストアに公開するアイテムの管理ポータルになります.

### デベロッパーダッシュボードの表示手順

1. Chromeウェブストアにアクセス
2. 画面右上の歯車アイコン＞デベロッパーダッシュボード　をクリック

## 公開するChrome拡張機能の追加手順

1. デベロッパーダッシュボードにアクセス
2. 新しいアイテムを追加する　をクリック
3. ファイルを選択　をクリックして、拡張機能のzipファイルを選択
4. アップロード　をクリック

zipファイルについて記載された公式ドキュメントを探したのですが見つかりませんでした.
今回は次のzipファイルをアップロードしました.

```bash
$ tree -L 1 .
.
├── _locales
├── css
├── images
├── js
├── lib
└── manifest.json

$ zip -r app.zip *
```


## 公開するChrome拡張機能の編集

![developer-dashboard.png](https://qiita-image-store.s3.amazonaws.com/0/74102/35a99b8d-742d-fc32-0080-257603fd7518.png "developer-dashboard.png")

### 準備したリソース

恐らくここが一番の関心どころだと思います.
次のリソースを準備しました.

* 128x128のアイコン画像
* 詳細説明の文言 ... 日本語と英語の２パターン
* 1280x800のスクリーンショット ... 日本語と英語の２パターン

### 編集中の言語

編集する言語を選択します.
恐らく公開するChrome拡張が国際化していない場合は、表示されないと思います.

### アップロード

Chrome拡張機能をアップグレードする場合に利用します.
アップグレードする場合はバージョン番号が厳格にチェックされます.
必ずアップグレード前より、バージョン番号を更新したzipファイルをアップロードする必要があります.

プラグインでは、バージョン番号は次の形式にしました.

* メジャー番号 ... 大幅に機能改善したときに更新する番号
* マイナー番号 ... 機能拡張したときに更新する番号
* リビジョン番号 ... 不具合改善したときに更新する番号

現時点では、プラグインのバージョン番号は`v2.1.0`です.


### 詳細説明

「編集中の言語」で指定した言語が有効なブラウザで表示される詳細説明を編集します.

### アイコン

マニフェストファイルで宣言した128x128のアイコンファイルをそのまま使っています.
公式ドキュメントには下記のように記載されていましたが、透過部分はなくても大丈夫でした.

> 四角形アイコンの場合は、アルファを使って各辺 128 ピクセルのうち 16 ピクセルを透明にします（見える部分は 96x96 ピクセル）

### スクリーンショット

拡張機能のスクリーンショットを添付します.
サイズは厳格にチェックされ、1280x800 or 640x400 以外はアップロードすることさえ出来ませんでした.

拡張機能を国際化している場合は、スクリーンショットを表示する言語を指定できます.
ただしGoogleにしてはイマイチUIが分かりづらかったので、指定方法を特記します.

1. スクリーンショットをアップロード
2. スクリーンショットをマウスで左クリックして選択状態にする
3. すべての言語で表示 or 編集中の言語の場合のみ表示 のラジオボタンが表示されるので、任意の選択肢を選択する

### プロモーションタイル画像

プラグインでは指定しませんでした.

### ウェブサイト

よく分かりません.

アイテムに対するサポート＆よくある質問へのリンク だけ、サポートサイトのURLを指定指定してみました.
⇒　公開するアイテムのウェブストア＞サポートタブ＞デベロッパーサポートサイト　にURLが反映されました

### カテゴリ

適当に選べば良さそうです

### 価格と支払い

プラグインは無料公開としたため、まったく調べていません

### 地域

日本語＋英語でi18nしたので、すべての地域　を選択しました.
たぶん動くはず,,,

### Google Play for Education

チェックなし

### OpenID

チェックなし

### 成人向けコンテンツ

チェックなし

### インラインインストール

チェックなし

### Analytics

GoogleAnalyticsのトラッキングIDを指定しました.
指定しなくてもGoogleAnalyticsによる統計情報収集は機能しましたが、一応指定しておきました.

### 要件

よく分かりません

### 公開オプション

* 公開  
  すべてのユーザのウェブストアに表示されます. 一般公開する場合にはこの選択肢を選びます.
* 限定公開  
  ウェブストアには表示されません. [こちら](https://chrome.google.com/webstore/detail/redmine-lazy-applicant/dofmgcleeckgckfapnhookpocglpbmgp)のような拡張機能のURLにダイレクトアクセスした場合にだけ表示されます.  
  社内限定プラグインはこの選択肢を選ぶのだと思います.
* 非公開  
  デベロッパーダッシュボードでテスターアカウントに指定したユーザにだけ、ダイレクトアクセスを許可する選択肢です.


## 拡張機能の自動更新について

公式サイトより引用：
> If you publish using the Chrome Developer Dashboard, you can ignore this page. You can use the dashboard to release updated versions to users, as well as to the Chrome Web Store.

Chromeウェブストアに公開した拡張機能をアップデートした場合、インストールユーザには自動的に更新が反映されます.

ユーザにアップデートを促すようなことはせず、自動的に反映されました.
監視してはいないので正確なことは書けませんが、拡張機能をアップデートしてから数時間後にブラウザを確認したところ、拡張機能が最新バージョンに更新されていました.

[公式サイト](https://developer.chrome.com/extensions/autoupdate)


## tips

### 拡張機能の削除について

2015/09現在では、できません.

[Chromeウェブストアで公開したアプリや拡張機能を削除する方法](http://qiita.com/shoito/items/8687d604cec10d12dc86)のような記事もいくつか見かけたのですが、コマンドを実行してもエラーになりました.