閉じる

UI言語[UI Language]

記事自体は翻訳されません! 記事によって英語版があったりなかったりします。翻訳がある記事は文頭に記載があるよ!
Each articles themselves will not be translated by this setting. Some of article has translation and some of them doesn't. You will notice if the article has its translation by its preamble!

テーマ[Theme]


アイキャッチ画像

Chromeの拡張機能をSafariで使う方法(macOS Monterey, Safari 15.6)


表題の通りです 「 Chrome Safari  拡張機能」とか検索すれば解説記事が沢山出てくるんですが検索結果トップ 2 つ 3 つ辺りのやり方は同じでその通りにやっても出来なかったので少しルートが違う方法のメモです基本のやり方は同じですが変換したい拡張機能のソースコード一式を入手したりします

つまづいたところ

ちなみに検索して出てくる方法のどこで躓いたかと言いますとド頭変換したい拡張機能の保存場所を見つけるところです
/Users/ (ユーザー名) /Library/Application Support/Google/Chrome/Default/Extensionsの中に拡張機能の ID と同じフォルダがあるよと書かれているんですが無いのですID どころか拡張機能けっこう沢山入れてるのに該当フォルダには 2 3 個しかフォルダがありませんはて……


うまくいった方法

というわけで自分が取った方法はこちらの動画の方法です

外人さんが詳しく解説してくれてるのでこの通りにやれば出来ましたがエラーが発生したりと一筋縄ではいかなかったので自分の場合の手順を書いておきます

1. 変換したい拡張機能のChromeストアURLを取得する

というわけでいきなり手順が異なりますググって見つかる方法ではインストール済みの拡張機能一覧から ID をコピーするよう書かれていますがこちらの方法では Chrome ストアの URL を使いますなのでChrome にインストールしなくても変換できると思います
例えば今回筆者が変換したのはバックスペースキーでのブラウザバック機能を復活してくれる拡張機能 Go Back With BackspaceなのでChrome ストアの URL は下記になります

https://chrome.google.com/webstore/detail/go-back-with-backspace/eekailopagacbcdloonjhbiecobagjci?hl=ja

余談ですが各ブラウザからバックスペースキーで戻る機能を削除した罪深い連中は全人類がこれまでにバックスペースキーを使ってブラウザバックした回数の総数と同じ回数鞭で打たれるべきだと思います


2. 拡張機能のソースコードを入手する

拡張機能のCRXをダウンロードする

CRX Extractorを使って拡張機能のパッケージをダウンロードします下記サイトで 〈 START FOR FREE 〉ボタンを押すと URL を貼り付ける欄が出てくるので控えた URL をペーストして 〈 DOWNLOAD 〉ボタンを押しますボタンが 〈 GET .CRX 〉に変化するのでもうその一度ボタンをクリックするとextension_2_1_0_0.crxみたいなファイルがダウンロードできます
後でわかりやすいようにここで拡張機能の名前を表すようなファイル名に変更しておくといいかもです

.crxファイルをzipファイルに変換する

引き続き CRX Extractor のサイトで今度は 〈 Drop downloaded .CRX and get source code 〉の欄にダウンロードした .crx ファイルをドラッグ&ドロップします 〈 GET SOURCE CODE 〉ボタンが現れるのでクリックして zip ファイルをダウンロードします
CRX パッケージは基本 zip ファイルらしいのですが独自のヘッダが付いててそのままだと解凍できないということでこの作業でそれを取り除くようです

zipファイルを解凍する

変換した zip ファイルを解凍しますmanifest.json やアイコンが入っている icons フォルダなどがでてきますこれが拡張機能のソース一式というわけですね

CRXファイルの中身
CRXファイルの中身

こんな感じで拡張機能のソースコード一式が手に入ります


3. 変換コマンドを実行

ソースコード一式が手に入ったところでXcode の CLI ツールを使って Safari で使えるように変換しますターミナルでの作業になります
とりあえず Xcode が無いと話にならないのでインストールしてない場合は AppStore から入手します容量大きいのでインストールにはかなり時間がかかります

xcode-selectコマンドで下準備

Xcode が準備できたらおもむろにターミナルを起動して下記コマンドを打ちます
これは Xcode が複数インストールされている場合にコマンドラインからの各種コマンドがどのバージョンの Xcode を使うかを指定するもののようですこれを実行しておくことでどのディレクトリからでも Xcode 関連コマンドが使える様になります-sはおそらく--switchと等価で「この場所の Xcode に切り替えてね」みたいな意味合いかと管理者権限が必要なので頭にsudoです

sudo xcode-select -s /Applications/Xcode.app

safari-web-extension-converterで変換する

続いて本命の変換コマンドですxcrunコマンドを使ってsafari-web-extension-converterを実行します

xcrun に渡すsafari-web-extension-converterのパスがフルパスなのは環境変数にパスが正しく設定されていない可能性があるからだそうです直前の xcode-select はあくまで xcrun にのみ有効でその引数に指定するパスは関係ないというわけです
2 番目のパスは変換したい拡張機能のパスで先の手順で解凍したソース一式のパスを指定しますこっちももちろんフルパスです

xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/safari-web-extension-converter /Users/(ユーザー名)/Downloads/Go Back With Backspace

時にMac のターミナルと言うか zsh って引数にパス渡す時にスペースあっても大丈夫なんですねどこまでをパスと判断してるんだろふしぎ

Xcode未実行の場合のライセンス同意

Xcode を一度も起動したことがないまま上記コマンドを実行するとXcode へのライセンス同意を促される事がありますターミナル上で同意できるようになってはいるのですが同意には管理者権限が必要なので今回のコマンドでは同意に失敗しますターミナル上でライセンス同意するためのコマンドもあるみたいですが一旦 GUI 上でサクッと Xcode を起動しちゃっておなじみのダイアログから Agree しちゃうのが手軽かなーと思います

Xcode and iOS SDK License Agreement
Xcode and iOS SDK License Agreement

コマンドラインからもちゃんと同意できるようになってるのは流石ですねー

ライセンスに同意できたら改めて先程のコマンドを実行することで変換作業が行われますターミナル上にはなにやら警告など表示されますがそのまま Xcode が起動してプロジェクトが読み込まれた状態になります


4. Xcode上での作業

コンパイルエラー修正

さて変換作業も大詰めあと一歩です
手順としては Xcode 上で実行ボタン(再生アイコン)を押せば済むはずなのですが自分の環境ではコンパイルエラーになってしまいその修復作業が必要でしたこういう時のコンパイルエラーってうんざりしますねー(笑)

未署名エラー
未署名エラー

コンパイルエラーの様子

エラーメッセージを見るにコンパイルには署名が必要みたいですね署名するには開発チームが必要ですとあります
筆者は昔 Apple Developer Program に登録していたアカウントを持っているのでとりあえずそれを使うことにしました課金しなくなり久しく放置状態のアカウントでしたが問題ありませんでした

アカウントの追加
アカウントの追加

Xcode のアカウント追加画面

Xcode の 〈設定〉  → 〈アカウント〉Apple ID を追加今はもう課金してないとは言え昔はデベロッパープログラムに登録してアプリなども公開していたアカウントでチーム設定などもその時に済んでいるのですんなり通りましたこの辺普通の ID だとどうなるのかちょっとわからないですすみません

Xcode にアカウントを追加すると先程の Xcode プロジェクト設定の 〈 Signing & Capabilities 〉の Team のところから追加したアカウントのチームが選択できるようになります自分のアカウントの Personal Team を設定した状態でコンパイルすると今度はエラーもなくコンパイル成功しました


5. 変換できた拡張機能を有効にする

Safariを開発モードに

やっと変換作業が終わりましたこれで拡張機能が既に Safari に追加されているのですがそのままだと表示されません 〈設定〉  → 〈詳細〉ページの一番下にある 〈メニューバーに“開発”メニューを表示〉にチェックを入れて Safari をデベロッパーモードにします

さらにデベロッパーモードでのみ表示される 〈開発〉メニューの下の方にある 〈未署名の拡張機能を許可〉を選択しますこれで Safari の 〈設定〉  → 〈拡張機能〉のページに変換した拡張機能が表示されるようになります

アクセス権の警告
アクセス権の警告

もちろん初期状態では有効になっていないのでチェックを入れて拡張機能を有効にします閲覧する全ての Web サイトのデータを読み取れるなどと物騒な警告が出ますがこれは Chrome でも同じブラウザ拡張機能はそういうものなので仕方ないです

拡張機能インストール成功
拡張機能インストール成功

Go Back With Backspace が Safari に降臨!

というわけで苦労の甲斐あってChrome の拡張機能を Safari に移植する事に成功しました!
ざっと使ってみた限りは正しく動作してるようですこれで Safari でも  Backspace でブラウザバックができるようになりました!

ちなみに拡張機能を導入するとそのアイコンがウィンドウ右上に追加されますがツールバー上を右クリックして 〈ツールバーのカスタマイズ〉から削除できますSafari のタブはアドレスバーと統合されていてスッキリしているので統一感のない拡張機能のアイコンでごちゃごちゃさせたくないですね

ツールバーのカスタマイズ
ツールバーのカスタマイズ

後記

というわけでChrome 拡張機能を Safari で使えるようにする方法自分の場合でした
ぶっちゃけ手間ですよねーまあこれだけの手間をかけても使いたいと思える拡張機能しか変換しなくなるので本当に必要なものを厳選できて良いかもしれません自分も今の所 Go Back With Backspace 以外はってなってますあでもキーボードで快適にブラウジングできるようになるMoly HaHは欲しいかなあとReturn YouTube Dislikeるなー(笑)

この記事のタグ[This article is filed under]: Safari( ブラウザ )[Safari(browser)] | macOS[macOS] | Chrome( ブラウザ )[Chrome(browser)] | ハウツー[How to]


この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!

That's all for this article. Thank you for your reading.
Please share this if you like it!

Twitter | Reddit | Facebook | Pinterest | Pocket

前の記事[Prev Post]

前の記事のアイキャッチ画像

【軸の秤】 version 0.2.2 リリースノート

次の記事[Next Post]

次の記事のアイキャッチ画像

【解決】VS CodeでPlatformIOのProject Tasksがグレーアウトして使えない