歯式メーカー アップデート
気がついたら1年半以上更新していない(^^;
たまには記事を投下しないと忘れ去られちゃうので...
ということで、突然ですがご好評いただいている「歯式メーカー」をアップデートしました(ってこれも結構前のことですがw)。
アップデートしたのはMac版だけです。
機能的には全く変更ありません。
最大の変更点は64bitアプリケーションになってMac OSX 10.15 Catalinaに正式対応した点です。
単純に64bitアプリケーションに対応しただけでなく、新しいMacのGatekeeperとアプリケーション公証(Notarized)制度への対応です。
10.14までは、アプリケーションを署名するだけでOKでした。署名をすることでアプリケーションが配布の過程で改竄、修正されていないことを証明していたのですが、時代が変わり、アプリケーション自体に悪意あるコードが仕込まれていないか、また、プライバシーの関連で不用意に個人情報に関わるハードウエア(カメラやGPSなど)にアクセスしていないかなどのチェックも必要になったために、10.15からアプリケーションの公証が必要になったのです。
署名自体もより深くまた追加の情報も必要になりました。また、実行環境の変化も見逃せません。実行コードは必ずリードオンリー(書き込み不可)の状態で実行され(Hardened Runtime)、コードの書き換えを禁止してマルウエアの可能性を排除することになり、また、実行時にアクセスするハードウエア等の情報(Entitlements)の付加も必要です。署名自体もタイムスタンプの付加が必須になりました。
この署名をした上で、アプリのコードをアプリをAppleに送り、内容をチェックし認証を受けます(公証)。認証されると「チケット」が発行されますので、これをアプリにホチキス止め(ステープル)してサイトにアップすることになります。
ダウンロードされたアプリは署名をチェックし、さらに「チケット」の有無と有効性をチェックされます。「チケット」がなければ、Appleの認証サーバーに問い合わせて、正しいアプリかどうかがチェックされます。この厳重なチェックを受けてようやく実行できるようになるんですね。
さらに、アプリは「アプリケーション」フォルダで実行する必要があります。「アプリケーション」フォルダ以外で実行すると、どこかわからない隔離された「箱庭」で実行されます。「箱庭」ではファイルアクセスも禁止されているので実質、起動できないんですねぇ。徹底してます。
そんなわけで、歯式メーカーも4Dv18を使うことで、上記への対応を済ませたバージョンにアップデートしたわけです。
上記への対応は、4Dv18から正式に対応してます。v17までは10.14までのコード署名にだけ対応していたので、v17で署名付きのアプリをビルドしても10.15では実行できませんでした。
v17で10.15へ対応するには、マニュアルで新しい署名をする必要があります。幸い4D社のmiyako氏が、新しい署名をするための4Dのプログラムを作成して公開されていますので、これをダウンロードして利用させていただきました。ありがとうございます。
https://github.com/miyako/4d-utility-build-application
v18では新しい署名に対応していますので、署名付きビルドをするだけでAppleの認証を受けられるアプリのコードを作ることができます。
ただ、歯式メーカーでは、4D社以外のプラグインを利用しており、これがどうしても4Dのオリジナルの機能ではうまく署名ができずAppleの認証を受けられませんでした。miyako氏のプログラムでは問題なく署名できたのではできたのでよかったですが、あいかわらずAppleへの対応では罠が多いですw
この新しい署名や公証の情報は少なくて最初の頃は苦労したのですが、これもmiyako氏がとても丁寧な記事を書いていらっしゃいますので、ご興味のあるかたは是非ご覧になってください。
https://miyako.github.io/2019/10/16/notarization.html