About

  • Macintosh の自作ソフトウェアを公開しています。
  • 配布しているアプリケーションは、すべてフリーウェアかつソースコードを公開しています。
  • コメント、不具合の報告、ご要望を待っています。

Donation

このサイトで配布しているソフトを常用されている方は寄付をお願いします。

Tags

2018.12.16

02:25:17Permanent Link

macOS Mojave 10.14 でサードパーティのスクリプティング機能追加を使う

macOS Mojave 10.14 の AppleScript ではサードパーティーのスクリプティング機能追加やフレームワークに大きな制限が導入された。

https://latenightsw.com/mojave-brings-in-big-security-changes/

従来、/ライブラリ もしくは ~/ライブラリ 以下にスクリプティング機能追加やフレームワークをインストールしたけど、無視される。

有効なのは、システム標準のスクリプティング機能追加とアプレットやドロップレットのバンドル内の Resources フォルダ以下とのこと。

アプレットやドロップレットのバンドル内はスクリプトエディタから参照されない。すなわち、開発時はどうするのさ?という話になって、実質的に意味なし。つまり、普通のスクリプトファイルやドロップレット/アプレットからサードパティーのスクリプティング機能追加やフレームワークは使えないということである。

この制約は、SIP (System Integrity Protection。通称 Rootless。) によってもたらされているとのこと。

AppleScriptObjC のおかげで随分とスクリプティング機能追加の必要性はずいぶん薄れたけど、自分は拙作の ModuleLoader.osaxHelpBook.osax の二つが使えないと生きていけない。仕様が無いから SIP の一部を無効化して、スクリプティンク機能追加を使えるようにする。その手順をまとめる。

本当なら、スクリプティング機能追加をバックグラウンドアプリケーションとして最実装するのがいいのかもしれないけど、利便性は確実に落ちる。悩ましいところです。

1. スクリプティング機能追加をインストール

まずは、普通にスクリプティング機能追加をインストールします。例として ModuleLoader.osax の場合を考えましょう。インストーラを使って、

/Library/ScriptingAdditions/ModuleLoader.osax

にインストールされたとします。

2. SIP の一部無効化

そのために、一度 Mac をシャットダウンし、Command + R キーを押しながら起動して、リカバリーモードで立ち上げます。

メニューバーから「ユーティリティー/ターミナル」を選択してターミナルを起動します。

ターミナルで次のコマンドを実行して、SIP をの一部を無効化します。

csrutil enable --without fs --without debug

アップルメニューから再起動を選択して、SIP が無効化された状態で Mac を起動します。

これで作業終了です。

csrutil コマンドについて補足

ちなみに、次の csrutil disable コマンドを実行すると SIP のすべてを OFF にできます。

csrutil disable

とりあえずこれでスクリプティング機能追加を使えるようになりますが、少々乱暴すぎるように思えるので、必要最低限の部分だけを OFF することを試みました。

csrutil enable コマンドには、unsuported ですがオプションを指定して一部の機能を場外にしてオンすることができます。

いくつものオプションがあるのですが、試行錯誤して、fs と debug の二つを OFF にすれば良いことがわかりました。

csrutil enable --without fs --without debug

どちらかではダメです。両方必要でした。

/System/Library/ScriptingAdditions に移動したら使えるんじゃ無いの?

システム標準のスクリプティング機能追加は有効なのだから、同じ場所に入れてやれば、サードパーティーのスクリプティング機能追加も使えるのでは無いかと最初考えましたが、そうではありませんでした。

場所は */Library/ScriptingAdditions ならどこでも関係なく、上記の SIP の一部をオフにすることが必要でした。

ターミナルで次のコマンドを実行しても良いでしょう。

2018.12.14

15:33:25Permanent Link

Show Help 1.2 : バンドル内の Help Book をヘルプビューアで表示

アプリケーションなどバンドルに設定されている Help Book をヘルプビューアで表示する AppleScript です。

アプリケーションのヘルプを表示する為には、起動してヘルプメニューから項目を選択する必要がありますが、Show Help を使えば、アプリケーションを起動しなくてもヘルプを表示させることができます。

起動時するとFinder で選択されているバンドルの Help Book を表示します。なんらかのランチャーから実行してください。

  • Spotlight メニューから実行する。
  • スクリプトメニューから実行する。
  • Dock に登録して実行する。
  • DragThing とかに登録してショットカットキーを割り当てて実行する。
  • LaunchBar で実行する。

LaunchBar と一緒に使うのがおすすめです。LaunchBar で検索したアプリケーションを Show Help で開くようにすると、Finder でアプリケーションを選択する手順を省略できます。

変更点:

  • コード署名を追加。
  • HelpBook.osax をバンドル内に含めた。

2018.12.13

20:31:30Permanent Link

AppleScriptHTML 2.7.3 : AppleScript のソ−スコードを、スタイルを再現する HTML に変換

AppleScript のソ−スコードを、シンタックスカラーリングを再現する HTML に変換するアプリケーションです。

以下のような特徴があります。

  • スタイルシートファイルを使って、ソースコードのカラーリングを行う XHTML を生成します。
    • スタイル情報がコードのマークアップと分離されているので、後からカラーリングや文字サイズなどの微調整を行うことが容易です。
    • クリーンでスマートな XHTML を生成します。
  • スクリプトリンク機能
    • ソースコードをスクリプトエディタで開くリンクを付け加えます。サンプルコードを表示する時に使うと、ユーザーにとっては便利だと思います。
    • ソースコードに日本語が含まれていても、正しく動作します。

変更点:

  • 2.7.3 -- 2018-12-13
    • "=" がコードに含まれているとスクリプトリンクが動作しない不具合を修正(fix さん、ありがとうございました)。

09:20:26Permanent Link

PowerSelect 2.5.2 : Finder で選択されている場所で、条件にマッチしたファイルを検索/選択

PowerSelect は選択されているフォルダの中から、条件にマッチしたファイルを検索します。それらのすべて、もしくは一部だけ選択できます。

以下のような用途に便利です。

  • たくさんファイルを含んでいるフォルダからファイルを見つけ出したい。
  • ある条件にマッチしたファイルを選択して・・・・
    • コピーしたい
    • 移動させたい
    • 削除したい
    • 何かのアプリケーションに Drag&Drop したい
    • その他、何かの処理を行いたい

変更点:

  • 検索文字列より短いファイル名があるとクラッシュする不具合を修正。
  • Sparkle framework を更新。

2018.12.10

08:35:08Permanent Link

西村さん、寄付ありがとうございました。

PowerRenamer をご利用いただいているとのこと。

拙作がお役に立てて光栄です。177人目。

< Previous Topics