hero-rinのブログ

某会社で某システムの運用、開発をやっているただのおじさん

ShiftItアプリをmacOS Mojaveで使用する方法

ShiftItで警告みたいなのが出るようになった

皆さんmacでウィンドウ分割って何を使っていますか?最近(OS X EI Capitan以降)は、Split Viewなんて機能も標準装備されているんですが、Split Viewは3分割・4分割できないので自分は時と場合によってShiftItSplit Viewを使い分けています。ただどうも32bit版を使い続けていたようでこの前OSをアップデートした中で『これ64bitツールじゃないよ!』といった感じの警告が出るようになり気持ち悪かったので、64bit版を入れ直したんですがちょっと手順が必要だったのでここに残しておこうと思ったしだいです。

ShiftItとは

macで一番有名(だと思ってる)ウィンドウ分割ツールです。以前使っていた"公式版"はいつの間にか終了しているらしく今はMike's Versionさんがその後を引き継いでるとのこと、引き継がれたソースはgithubにて公開されているので、こちらを使わせていただく形で最新化したいと思います。

github.com

ShiftIt導入手順

導入自体は、サクッといけるんですが、"アップデートの確認"を使う場合ちょっとした対応が必要になるので、そこも含め記載して行こうと思います。

1. shiftItをダウンロード

Mike's Versionさんのgithubサイトから"Latest release"のzipファイルをダウンロードします。

github.com

上のリンクからgithubのreleasesページを開きます。開いたら"Latest release"を探します。2019年4月16日現在1.6.6が"Latest release"になります(①の部分)。

f:id:hero-rin:20190416015852p:plain

"Latest release"を見つけたら②の部分のShiftIt-1.6.6.zip(バイナリファイル)をダウンロードします。(時期によってバージョンが違うので"Latest release"下にあるShiftIt-X.X.X.zipをダウンロードして下さい。)下の"Source code"はソースをそれぞれzip圧縮とtar.gz圧縮*1で用意されているのですが、アプリを使用したいだけであれば関係ないので無視して貰って大丈夫です。

2. shiftIt-X.X.X.zipを解凍

ダウンロードしたshiftIt-1.6.6.zipを解凍します。(ダブルクリックすれば解凍できると思います。)解凍するとShiftIt.appf:id:hero-rin:20190416024534p:plain:w24)ができます。

3.アプリケーションフォルダに移動

解凍してできたShiftIt.appf:id:hero-rin:20190416024534p:plain:w24)をアプリケーションフォルダに移動させます。

f:id:hero-rin:20190416031044p:plain

4. 起動の前にロックを解除

移動させたShiftIt.appをダブルクリックすると下のようなメッセージが出ると思います。(でない場合は問題ないのでに進んじゃって下さい。)

ShiftIt.app”は、開発元が未確認のため開けません。

メッセージが出てしまった場合、前に"Caffeine"の時にも書かせて貰った理由と同じ理由で"ShiftIt"もロックを解除しないと使用することができません。

hero-rin.hatenablog.com

"Caffeine"時と同じ操作になりますが、"ShiftIt"のロック解除手順も記載しておきます。

メニューバーのリンゴマークから"システム環境設定"を開きます。開いたら"セキュリティとプライバシー"を選択します。

f:id:hero-rin:20190417014117p:plain

③の"プライバシー"タブを選択、④の"アクセシビリティ"を選び⑤の鍵を外して⑥の"ShiftIt.app"にチェックを入れて⑤の鍵を戻して完了です。

f:id:hero-rin:20190417020116p:plain

それでもメッセージが出て実行できない場合は"セキュリティとプライバシー"の一般タブ(⑦)も確認してみて下さい。

f:id:hero-rin:20190421021552p:plain

⑨の"ダウンロードしたアプリケーションの実行許可"を見て、もし"App Store"が選択されていた場合は⑧の鍵のロックを外し"App Storeと確認済みの開発元からのアプリケーションを許可"を選択して⑨の鍵をロックして完了です。

5.常駐設定

移動させたShiftIt.appをダブルクリックするとメニューバーに登録されるので、これで起動完了です。そのまま常駐させたい場合はメニューバーにあるShiftItアイコン(f:id:hero-rin:20190416032728p:plain:w24)をクリックするとメニューが表示されます。

f:id:hero-rin:20190416034511p:plain:w200

そのメニューから環境設定を選ぶとShiftItの環境設定画面がでるので、その中にあるログイン時に開くにチェックを入れておくと再ログインしてもログインしたタイミングで起動されるので常に常駐されるようになります。

f:id:hero-rin:20190416035110p:plain

ShiftItアップデートの確認でエラーがでる方へ

新しいShiftItはアップデートの確認ができるようになりました。(昔からだったらごめんなさい。)

f:id:hero-rin:20190421012637p:plain:w200

ただ自分の場合、”アップデートの確認”をクリックしたところエラーになってしまいうまくアップデート確認できなかったので、その時自分が解決した対応方法を記載しておきます。

ShiftIt.appの属性を確認

まず、ShiftIt.appの属性を調べたいのでターミナルアプリを立ち上げます。

control + space

上のショートカットを実行すると"Spotlight検索"が立ち上がるので、そこに"ターミナル"と打ち込んで、ターミナルアプリを立ち上げて下さい。

f:id:hero-rin:20190421015041p:plain

ターミナルアプリを使いcdコマンドを実行してShiftIt.appの置いてある場所に移動します。(今回の場合、アプリケーションフォルダに移動想定で話を勧めます。)

cd /Applications

f:id:hero-rin:20190421023602p:plain

cdコマンドにて移動したらlsコマンドでShiftIt.appの属性を確認します。

ls -ld ShiftIt.app

f:id:hero-rin:20190421044417p:plain

drwxr-xr-x@                           ShiftIt.app

@が付いていれば自分が対応した方法でエラーがでなくなると思います。

属性の@って何?

自分も知らなかったので調べました。拡張属性らしいです。似たもので"+"があってそれは拡張セキュリティ情報ACL*2)とのこと、今回は拡張属性を掘り下げます。

拡張属性とは

extended attribute(EA)。通常の基本属性(種別*3+パーミッション、所有者、所有グループ、ファイル名など)とは別に拡張された属性で名前空間識別子という名前空間に情報を付与することができるようです。

名前空間識別子

拡張属性には、user, trusted, security, systemという名前空間があり、それぞれ下に書いた内容でルール化されているようです。

識別子 内容
user ユーザー用(自由に設定可能)
trusted スーパーユーザーのみが利用可能
security カーネルが使用
system カーネルが使用

使用用途として、通常ユーザーはuserの領域を使用して例えばFinderに表示されないように設定など、基本属性ではできない設定を行い使用しているみたいですね。

本題に戻るんですが、拡張属性*4xattrにて確認や属性の付与、削除ができます。今回の場合はこんな感じで確認できます。

xattr ShiftIt.app

すると、com.apple.quarantineと表示されるんですが、どうもこの設定が悪さをしているようなのです。この設定はセキュリティの一貫で、何気なくファイルを実行してしまってウィルスやマルウェアに感染するのを防止するため『開いてもよろしいですか?』と注意喚起してくれる設定になります(だいぶザックリ(^^; )。なので通常であれば悪いことは無いんですが今回のような一度信用したアプリの最新確認をするのに一々この設定に引っかかりエラーになるというのもちょっとな感じがするので、今回はこの設定を消してしまいます。

拡張属性(user空間の情報)を消す方法

だいぶ長くなってしまいましたが、これを実行することで今回の"アップデートの確認"ができない問題は解決です(自分はこれで解決しました)。

xattr -dr com.apple.quarantine ShiftIt.app

オプションについてディレクト内を再帰的に削除したいので-drを指定しています。

上の拡張属性削除コマンドを実行後、もう一度ls -ld ShiftIt.appを実行してみて@が消えていればOKなので、この状態で"アップデートの確認"を実行してみて下さい。

f:id:hero-rin:20190421074258p:plain:w300

これがでれば成功です。

余談 xattrのオプション

-l で詳細情報も表示

xattr -l ShiftIt.app
com.apple.quarantine: 0081;5cb4bdb2;Chrome;4BCF018E-A807-45C7-A6C5-57402FB69627

-p + <拡張属性名>で詳細情報のみ表示

xattr -p com.apple.quarantine ShiftIt.app
0081;5cb4bdb2;Chrome;4BCF018E-A807-45C7-A6C5-57402FB69627

最後に一言

どうでしたか?ShiftItを新しくするだけだったんですが、いろんな情報てんこ盛りで自分も意外に勉強になりました。次回はそろそろAWSサービスの続きを書こうと思ってます。

それでは、今回はここまで!

*1:tarで固めてgzで圧縮しているファイルになります

*2:Access Control List

*3:ファイル or ディレクトリ or シンボリックリンク

*4:明確には、拡張属性のuserの名前空間領域