Macbook Air(M1) で JW Library を使う


JW Library のバージョン 12.5 から Apple silicon(M1以上)で動作するようになっていますので,App Storeから最新版をインストールしてお使いください。
下記の方法はiOS版を動かせなかった当時のものです。

前書き

これまで使っていたWindowsマシンの調子が悪くなったところに, AppleのM1がすごくいいという話が飛び込んできていました。最近の仕事はWebばっかりであえてWindowsを使う理由もなくなってきたということもあり,前々から触ってみたいと思っていたのもありMacbook Airを買いました。

ライフワークのJWではもちろんJW Libraryを使ってますが,「iOSで使えてるアプリなんだからM1の乗ってるMacなら動くでしょ」とよく下調べもせず買ったら,Appストアにない…使えない…

これまで使ってたiPad ProはMBAを買うために売ってしまったのです。諦めるわけにはいきません。
いやいや,なんとか使う方法があるはずだ,と奮闘した過程を記しておきます。どこかの誰かのお役に立てれば嬉しいなという気持ちと,備忘録として…。

とりあえず結果

M1Macで使えるの!?とせっかちな方のために…

はい,使えます!見ていただければわかるように Android Emulator を使ってます。ちゃんと音も出るし動画も再生できますよ!ここに至るまで苦労したんですが…というわけで苦労の顛末と方法をどうぞ。

失敗その① ipaファイル抽出

まず検索して見つけたのはこの方法。詳しくは下記動画をご覧ください。

この方法で動いて,さすがApple様やったー!と思っていたのもつかの間,OSを11.3にアップデートした瞬間使えなくなりました。えぇぇ…

この変更自体は、実際の.IPAファイルを配信するApp Storeシステム上で行われており、OSのDRM(デジタル著作権保護)を管理するAPIの一部であるため、今後、回避策が見つかる可能性は低そうと見られています。

しょんぼり…。仕方ありません。別の方法を考えます。

失敗その② Windows 10 (ARM) on Parallels Desktop 16 for Mac

Parallels Desktop が M1 に対応してる!ということでこの記事を参考にインストールしました。

インストールそのものは全く問題なくできるのですが,JW Library を立ち上げると更新中のままさっぱり先に進まず…。日々の聖句すら表示されずに終わりました。挙動を見てると,ダウンロードがうまくいかないみたいです。Mac側とのディスク共有が悪さしてるのかなと思い,設定を変えて3回インストールし直してもダメ。諦めて次の方法を考えることに。

失敗その③ Wine

こちらの記事を参考に Wine をインストール。とりあえずさくっと動きそうなものからということで,まずは Watchtower Library を動かしてみるところから試してみました。

こちらはわりとさっくり動かせました。先人の皆さまありがとう…。特別難しいことはありませんでしたが,気が向いたら詳しく書きます。今回は割愛します。

気を良くして今度はJW Libraryを…と頑張ったんですが,そもそもWineでWindows 10 UWPアプリを動かすことは難しい模様。

ARM版のファイルをダウンロードするなど頑張ってみたんですが,全くダメでした。
いよいよ手詰まりか…いや,Windowsのエミュレーションがダメなら,同じARMのAndroidのエミュレーションならいけるのでは?
##本命:Android Emulator
ちょうど最近,Android StudioのEmulatorがM1で動くようになったという話を見たので,チャレンジしてみます。まずAndroid Studioをインストールしましょう。その後,参考にさせていただいたのはこちら。この通りにシステムイメージをインストールします。

これでエミュレーターは動くのですが,JW Libraryをインストールするちょっとしたノウハウを書いておきます。

まず,システムイメージは__Google API add-on System Images__にしました。
作成するVirtual Deviceは__タブレット__にします。画面が広い方が使いやすいですよね。もちろん表示上リサイズもできます。

では早速デバイスの作成から…

Android StudioからAVD Managerを開き,画面下の「+ Create Virtual Device...」を開きます。すると,下のように「Select Hardware」の画面が表示されます。

この「Pixel C」を選び,「Next」。

System Imageの画面上のタブから「Other Images」を選び,__先ほどインストールしたAPI Level「S」ABI「arm64-v8a」__を選びます。で「Next」。

AVD Nameはお好みで。「JWLib」とかにしておきましょうか。
__次が大事なんですが,Show Advanced Settingsをクリックし,詳細を開きます。__そして__Internal Storageを大きくすること。__デフォルトだと800MBなので,いざJW Libraryをインストールする時になって「容量が足りなくてインストールできません」となります。ぐったり。(1敗)

自分はとりあえず__4GB(4096MB)__にしておきました。ディスク容量に余裕があるとか,いっぱいビデオダウンロードするよ,って場合はもっと増やした方が良いと思います。

ここまできたらAVD Managerから起動しましょう。


__おめでとうございます!__ここまで来たらもう少しです。
エミュレーター上のChromeを起動して,jw.orgにアクセスします。Chromeが立ち上がって__jw.orgが表示されるまでかなり時間がかかります__ので,お茶でも飲んで一息入れましょう。一度表示されたらそこからは早いです。

見慣れたjw.orgが表示されたら一番下にある「JW Library」をクリックします。

この画面にある「アプリストアにアクセスできない場合にJW Libraryをインストールする(Android)」をクリックします。

「ダウンロード」ボタンからAPKファイルをダウンロードします。
ダウンロードした「jwlib_E.apk」を実行しましょう。セキュリティ通知が出たら許可するのを忘れずに。インストールできたらホーム画面にアイコンが出ます。お疲れさまでした!
##おまけ:Dockから起動できるようにする
毎回Android Studioから起動するのは面倒なので,Dockに登録しましょう。
ターミナルからファイルを作成します。

%touch ~/JWLibrary.command

できたファイルをテキストエディタで編集します。

#!/bin/zsh
/Users/**ユーザ名**/Library/Android/sdk/emulator/emulator -avd JWLib -no-snapshot -no-snapshot-load

この「-no-snapshot」「-no-snapshot-load」を指定することで,エミュレーターから音が鳴るようになります。

できたcommandファイルをDockに登録します。JW Libraryのロゴをコピーして指定しておくとそれらしくなりますよ。

こんどこそ,お疲れさまでした。良いJW & M1ライフを!