内容が多いので、準備編とアプリ配布の2回に分けることにする。
- Macで4Dのプロジェクトを署名付きでビルドする 準備編
- Macで4Dのプロジェクトを署名付きでビルドする アプリ配布編
このところ毎週、多いときは毎日のようにこの手順を実行している。道具と手順が多めで、慣れていても間違える時があるし、あとあと誰かに伝えるときにまとめ直すのも大変そうだから今のうちにブログに書いておく。
署名付きビルドを達成する道順は1つではない。アプリの出荷形態によっても異なる。うちの4Dアプリはデータファイルをバンドルして出荷する形が主流で、データファイルはアプリの横に置くようにしている。これはアプリのアップデートの際に、ユーザがデータファイルを識別しやすいと考えたからである。
4Dアプリは起動すると、On Startupメソッドが実行される前にデータファイル(.4DDファイル)を必要とする。もしデータファイルが認識可能なフォルダにない場合、作成するかどうかのダイアログが表示されて、ユーザが任意の場所にデータファイルを作成してしまうかもしれない。これを避けるために出荷時のファイル構成にデータファイルを加えておき、そこに起動時に必要な最低限のデータを格納しておく。例えば郵便番号とか、デフォルトの設定とか。
この出荷形態を前提に署名付きビルドの手順を示す。
用意するもの
- ビルドしたい4Dプロジェクト
- ビルドマシン:今回はMacBook Pro (13-inch, 2018)、macOS Mojave
ADCがらみは一度取得すればマシンを変えない限りずっと使える。ライセンス付き4Dは1年間有効のデベロッパー契約を結んでいる。
- 開発者アカウント(ADC(developer.apple.com)、iTunes Connect)
- ADCから発行された「Developer ID Application」
- 4D Developer License付きの4D
キーチェインアクセス、ディスクユーティリティー、ターミナルは、macOSに同梱されているので、ドックにドラッグしておくとよい。
- 「キーチェインアクセス」アプリケーション
- 「ディスクユーティリティー」アプリケーション
- 「ターミナル」アプリケーション
1)iTunes Connectにログインして、開発者のキーを取得
2)キーチェインアクセスでビルドマシン固有のキーを作成
3)ターミナルで「xattr -c -r」を実行して拡張属性を取り除く
ビルドする前に、4Dのプロジェクトが入っているフォルダーの中身のファイル全部の拡張属性を取り除く。
拡張属性はファイルをネットからダウンロードした際にmacOSが自動的に設定するもの。ビルドに必要なファイルの拡張属性がすでに取り除かれていた場合はこの手順は不要。
ビルドマシンですべてのファイルを作成している場合は問題にならないが、たとえば次のようなファイルが含まれているときは要注意。別のマシン(ビルドマシンではないmac)で作成してネット経由でもらってくる、というのはよくある話。
- アイコンファイル .icnsファイル
- Resourcesフォルダ内のファイル 各種設定ファイルをこのフォルダに置く場合
- Componentsフォルダ内のコンポーネント ビルドマシンでコンパイルしておくと良い
- 「お読みください」
署名付きビルドが失敗した場合は、次のコマンドでプロジェクトに含まれるファイルの拡張属性を疑ってみる。
- xattr -p
- xattr -d
「Macで4Dのプロジェクトを署名付きでビルドする アプリ配布編」