じつは粗忽者

富士通のワープロOASYSから親指シフトが大好きです

PopClipがMac App Storeからなくなった - 続編、PopClip Extensionを修正する

 先日PopClipがMac App Storeからなくなりました。

lefennec1765.hatenablog.com

スタンドアロン版に変更する際に自作のExtensionを修正した顛末です。

 

自作のExtensionを読み込んでくれない

 スタンドアロン版をダウンロードしてアプリケーションフォルダにコピーして実行したところ下のダイアログが表示されました。

引っかかったのは選択した文字列からリマインダーを作成する自作のExtensioです。インストールを再度試みると再びダイアログが

識別子に"com.pilotmoon."を使うな!ということです。それはExtensionのパッケージに含まれるplistに記述しています。

修正

 それならばと、識別子を書き換えて再試行。すると、

このExtensionは信用できないけれどそれでもいいのか?という警告です。自作のものですから「…インストール」を選択して無事に再び使えるようになりました。やれやれ。

ところで、この動作はPopClipのサイトにある説明のとおりです。

www.popclip.app

Extensionのインストールは用心が必要

 いままでExtensionはPopClip Extensions Directoryから目的の機能を持つものを探して躊躇することなくインストールしてきましたが今回の作業であらためてPopClipの安全性について考えてみました。

 PopClipの実行にはシステム設定のプライバシーとセキュリティで「下のアプリケーションにコンピュータの制御を許可」をオン(許す)にする必要があり、これは悪意を持ったExtensionが存在するとしたらMacに悪さができる余地を作るということです。

 PopClip Extensions Directoryに掲載されているExtensionのインストール時に先の警告はありませんがExtensionに悪意のコードが混入していないかどうかを確認をしているのかまでは今回は調べませんでしたがMac App Storeがアップデートを承認しなかったのはこの点を懸念したのかもしれません。

 悪意を持ったコードに悪さをされるそんな事態を避けるためにはまずPopClip Extensions Directoryに掲載されているものだけ使うこと。そして、ネット上にExtensionがたとえ存在したとしてもダウンロードを避けることが賢明です*1

機能追加を検討してみた

 とは言いながら、ちょうどよい機会なのでリマインダーを作成する際にちょっとした機能を追加しようとしました。それは、選択したテキストにURLが含まれていたらリマインダーのURL欄に追加しようというもの。リマインダーはURLを解釈してリンクとして表示してくれますがせっかく欄があるのですからここを使いたいと考えたからです。URLはAppleScriptの”contains”句で文字列から探せますし、”{popclip browser url}"でも参照することができます。しかし探したURLの格納場所がわかりません。

 Google先生に聞いてみて下の記事を見つけました。同じことに取り組んだ人がいました。

stackoverflow.com

記事の要点は、AppleScriptでリマインダーのすべてのプロパティを読み込んだもののリマインダーに記入してあるURLはどこにも見当たらない、ということです。

 試しに、スクリプトエディタで「ファイル」->「用語説明を開く…」でReminders.sdefを開き、Reminders Suiteからreminderを選択して表示されるプロパティを見てもURL、画像を表すような項目は見当たりません。プログラミングインターフェースとして公開されていないようです。

仕方がないので”{popclip browser url}"に文字がある場合はその文字をBodyに格納することでよしとしました。

 Extensionを自作する際にこちらのサイトにお世話になりました。記事の日付はかなり以前ですがplistに記載する項目の説明が詳細に書かれています。

ayame.space

これからも使い続けるでしょう

 PopClipはMacを使う際になくてはならない便利なアプリですが、便利な故に注意しなければならないことも久しぶりル設定その他を見直して再認識しました。

先の記事でも書きましたがこれからも健全アアプリであることを願ってやみません。

 最後まで読んでいただき、ありがとうございます。

*1:AppleScriptはじめとしてプログラミングの知識があればなおよいかと