Macbook Air(M1) で JW Library を使う

:::note warn
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で使えるの！？とせっかちな方のために…
![スクリーンショット 2021-06-22 14.51.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/64d7e02f-c61a-26e3-8f23-ee50649f1cb5.png)

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

## 失敗その① ipaファイル抽出
まず検索して見つけたのはこの方法。詳しくは下記動画をご覧ください。

https://youtu.be/rXdH3aRpVjw

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

https://japanese.engadget.com/m1-mac-blocking-sideloading-ios-app-041916235.html

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

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

## 失敗その② Windows 10 (ARM) on Parallels Desktop 16 for Mac
Parallels Desktop が M1 に対応してる！ということでこの記事を参考にインストールしました。

https://pc.watch.impress.co.jp/docs/topic/review/1322461.html

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

https://a5m2.mmatsubara.com/wp/?p=8950

こちらの記事を参考に Wine をインストール。とりあえずさくっと動きそうなものからということで，まずは Watchtower Library を動かしてみるところから試してみました。
![スクリーンショット 2021-06-22 15.06.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/40bf27d1-9b4d-4994-2028-1fddf2f64445.png)

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

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

https://ja.noblenaz.org/931640-is-it-possible-to-run-ZMEFSP-article

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

https://nobushiueshi.com/android-studiomac-m1apple-silicon%E3%81%A7android-emulator%E3%81%AEapi-level-30%E3%81%AEarm64-v8a%E3%81%8C%E3%81%AA%E3%81%84%E6%99%82%E3%81%AB%E8%A9%A6%E3%81%97%E3%81%9F%E6%96%B9%E6%B3%95/

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

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

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

Android StudioからAVD Managerを開き，画面下の「+ Create Virtual Device...」を開きます。すると，下のように「Select Hardware」の画面が表示されます。
![スクリーンショット 2021-06-22 15.24.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/d89f951a-acb0-a71a-caff-c74de7e8e6e3.png)
この「Pixel C」を選び，「Next」。
![スクリーンショット 2021-06-22 15.26.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/1e8d0fc1-67c4-7b84-2e16-99bba73ab798.png)
System Imageの画面上のタブから「Other Images」を選び，__先ほどインストールしたAPI Level「S」ABI「arm64-v8a」__を選びます。で「Next」。

AVD Nameはお好みで。「JWLib」とかにしておきましょうか。
__次が大事なんですが，Show Advanced Settingsをクリックし，詳細を開きます。__そして__Internal Storageを大きくすること。__デフォルトだと800MBなので，いざJW Libraryをインストールする時になって「容量が足りなくてインストールできません」となります。ぐったり。（１敗）
![スクリーンショット 2021-06-22 15.34.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/689b71a0-74c5-7580-73d3-7be4b54951a8.png)
自分はとりあえず__4GB(4096MB)__にしておきました。ディスク容量に余裕があるとか，いっぱいビデオダウンロードするよ，って場合はもっと増やした方が良いと思います。

ここまできたらAVD Managerから起動しましょう。
![スクリーンショット 2021-06-22 15.38.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/e95348f9-08b8-539d-d556-ea384db00389.png)
![スクリーンショット 2021-06-22 15.38.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/d78b1031-3eb2-dd58-26a7-951e6acd7e9b.png)
__おめでとうございます！__ここまで来たらもう少しです。
エミュレーター上のChromeを起動して，jw.orgにアクセスします。Chromeが立ち上がって__jw.orgが表示されるまでかなり時間がかかります__ので，お茶でも飲んで一息入れましょう。一度表示されたらそこからは早いです。
![スクリーンショット 2021-06-22 15.40.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/32b06e56-366e-a3fd-bc26-0c70259039ed.png)
見慣れたjw.orgが表示されたら一番下にある「JW Library」をクリックします。
![スクリーンショット 2021-06-22 15.41.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/2fd8379a-cdc6-ea38-78d5-133d3c18fd15.png)
この画面にある「アプリストアにアクセスできない場合にJW Libraryをインストールする（Android）」をクリックします。
![スクリーンショット 2021-06-22 15.42.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/9492911b-a389-762f-9a1c-c5672af50dc5.png)
「ダウンロード」ボタンからAPKファイルをダウンロードします。
ダウンロードした「jwlib_E.apk」を実行しましょう。セキュリティ通知が出たら許可するのを忘れずに。インストールできたらホーム画面にアイコンが出ます。__お疲れさまでした！__![スクリーンショット 2021-06-22 15.45.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/dfb68f4b-4d13-b6b0-ccb2-9fd711b24dce.png)
##おまけ：Dockから起動できるようにする
毎回Android Studioから起動するのは面倒なので，Dockに登録しましょう。
ターミナルからファイルを作成します。

```zsh
%touch ~/JWLibrary.command
```

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

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

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

できたcommandファイルをDockに登録します。JW Libraryのロゴをコピーして指定しておくとそれらしくなりますよ。
![スクリーンショット 2021-06-22 15.55.10（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1675445/c97abc84-caaf-88cb-e634-3ac32b76a9fb.png)

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