自作の拡張機能をsafariで使えるようにする
この記事は、大阪工業大学 Advent Calendar 2024の21日目の記事です。
概要
オレオレ拡張機能をSafariで使えるようにする方法を調べてみました。
調査
https://developer.apple.com/jp/news/?id=qiz0arxc
なんかいい感じに変換するやつがあるらしい。
変換してみる
以前作った拡張機能(https://github.com/Dodai-Dodai/nhkpp)を変換してみます。
$ xcrun safari-web-extension-converter nhk++
Xcode Project Location: /Users/USERNAME
App Name: NHKPP
App Bundle Identifier: com.yourCompany.NHKPP
Platform: All
Language: Swift
Warning: Unable to add icons to created project:
Error Domain=SafariWebExtensionConverterErrorDomain Code=-1 "manifest.json is missing icons" UserInfo={NSLocalizedDescription=manifest.json is missing icons}
Warning: Unable to add a large icon image to created project:
Error Domain=SafariWebExtensionConverterErrorDomain Code=-1 "manifest.json is missing a large icon size" UserInfo={NSLocalizedDescription=manifest.json is missing a large icon size}
アイコンが無いのでエラーが出ていますが、とりあえず変換はできました。 xcodeが立ち上がります。
ビルドしてみます。画面左上の三角ボタンを押すとビルドが始まります。終わるとこんな画面が出るので、ウィンドウ下部の"Quit and Open Safari Settings..."をクリックします。
ここで拡張機能を管理する画面が開きますが、未署名の拡張機能は使えないので、画面右上の"デベロッパ"をクリック、"未署名の拡張機能を許可"をクリックします。
再度、拡張機能を管理する画面を開き、先ほど作成した拡張機能を選択します。
これで使えるようになってるはずです。
補足: アプリに署名する
"未署名の拡張機能を許可"というチェックは、起動するたびにチェックを入れ直す必要があるので、拡張機能に署名してしまうと、チェックを入れ直す必要がなくなります。
画像中で"None"となっているところを自分のApple IDを選択して、署名します。