
Apple Businessでアプリケーションのインストーラパッケージを作成する
アプリケーションのインストーラパッケージを作成してApple Businessに追加し、ユーザーに導入することができます。アプリケーションにインストーラパッケージがない場合は、macOSに内蔵されているツールを使用してパッケージを作成し、配布することが可能です。この方法に最も適しているのは、シンプルな構造のアプリケーション(単一の.appバンドルに全体が包含されており、通常は「/Applications」フォルダにあるものなど)です。
パッケージに署名する
Apple Businessを使用して配布するパッケージを作成するには、管理対象デバイスに信頼される、暗号化された署名IDを持っている必要があります。このIDは、パッケージ作成者を確認するため、および署名後に改変がないことを確認するために使用されます。Apple Developer Programのメンバーは、自分のインストーラIDを使用できます。「アプリケーションに署名してGatekeeperで保護する」を参照してください。
インストーラIDを作成する
署名IDを持っていない場合は、作成することができます。このIDには選択した名前が付けられ、IDを識別するためのシリアル番号がランダムで付与されます(複数のIDを作成できます)。いずれかの時点でこの手順が失敗する場合は、ターミナルのウインドウを閉じ、新しいウインドウを開いてください。またこれらのステップは、macOS 13以降を搭載したMacで実行する必要があります。
デスクトップに「temp」という名前のフォルダを作成します。
ターミナルアプリを開いて「
cd」と入力して、スペースバーを1回押します。「temp」フォルダをターミナルアプリのウインドウにドラッグします。
次のようなパスが表示されます。
cd /Users/[YourShortUserName]/Desktop/packagesReturnキーを押します。
「
ID="name"」と入力します。「name」には、組織の名前を短縮して入力します。名前にスペースを使用する場合は引用符を使用してください。たとえば、My Organizationの場合は、「MyOrg」(引用符を付けない)や「“My Organization”」(引用符を付ける)にできます。Returnキーを押します。
重要: それ以降のコマンドはすべてこのウインドウ内で実行する必要があります。
以下のコマンドをすべてペーストし、Returnキーを押します。
KEY="InstallerCertificate_${ID}_PrivateKey.pem"openssl req -x509 -nodes -days 365 -newkey rsa:4096 -sha256 \-addext basicConstraints=critical,CA:false \-addext keyUsage=critical,digitalSignature \-set_serial "0x$(openssl rand -hex 4)" \-subj "/CN=Installer Certificate ($ID)" \-out InstallerCertificate_"$ID".pem \-keyout "$KEY"同じターミナルのウインドウに、以下のコマンドをすべてペーストし、Returnキーを押します。新しいIDの証明書を信頼できるものとして設定するためのパスワードを入力します。
security import "InstallerCertificate_$ID.pem"security import "$KEY" \-T /usr/bin/productbuild -T /usr/bin/pkgbuildsecurity add-trusted-cert -d InstallerCertificate_"$ID".pem「temp」フォルダを開き、新しい証明書「InstallerCertificate_name.pem」およびその秘密鍵「InstallerCertificate_name_PrivateKey.pem」(「name」はステップ4で選択した名前)があることを確認します。
この証明書は、これによって署名された信頼できるパッケージに対してデバイスを設定する際に必要になるため、記録用にコピーして保管しておいてください。
この秘密鍵は、キーチェーンに読み込まれて安全に保存されるため、このフォルダからは削除できます。
重要: 第三者が組織に成りすましてパッケージに署名できないようにするため、証明書の鍵を削除することは重要です。
IDは作成から1年後に有効期限切れになります。その際はこのプロセスを再度実行し、以前のIDで署名していて引き続き配布するパッケージがあれば再署名します。IDのRSA秘密鍵は、セキュリティのためキーチェーンに保存されます。別のMacでパッケージを構築して署名する必要がある場合は、秘密鍵を書き出して、そのMacで読み込む必要があります。
デバイスで署名IDを信頼するよう設定する
署名IDを作成した後は、その署名IDを信頼するようデバイスを構成する必要があります。そのためには、IDの証明書を構成として配布します。
IDの「InstallerCertificate_name.pem」を取得します(「name」は作成時に選択した名前)。
「証明書構成を作成する」の手順に従い、作成したパッケージをインストールするすべてのデバイスにこれを割り当てます。
重要: 署名IDの秘密鍵の所有者はだれでも、構成済みのデバイスが信頼する(警告が表示されない)パッケージを作成できます。そのため、この証明書のペアとなる秘密鍵が紛失または不正コピーされたと考えられる場合は、その証明書構成を削除し、新しい署名IDを作成できます。
単一バンドルのアプリケーションパッケージを作成する
設定したデバイスから信頼される署名IDを取得した後は、それを使用してパッケージを作成し、対象デバイスにアプリを配布できるようになります。その際、単一の.appバンドル内に含まれるアプリケーションが最も配布しやすいということを念頭に置いてください。
作成元とするアプリケーションが「/Applications」フォルダにあることを確認してください。
デスクトップに「packages」という名前のフォルダを作成します。
ターミナルアプリを開いて「
cd」と入力して、スペースバーを1回押します。「packages」フォルダをターミナルアプリのウインドウにドラッグし、Returnキーを押します。
次のようなパスが表示されます。
$ /Users/[YourShortUserName]/Desktop/packages「
productbuild --sign」と入力して、スペースバーを1回押します。IDの名前(「インストーラIDを作成する」のタスクの手順4で入力した名前)を追加してスペースバーを1回押し、「
--component」と入力して、スペースバーをもう一度押します。アプリケーションを「/Applications」フォルダからターミナルのウインドウにドラッグし、スペースバーを1回押します。
パッケージの名前を入力します。末尾は「
.pkg」である必要があり、通常はアプリケーションと同じ名前にします。たとえば、以下のようになります。
productbuild --sign MyCo --component /Applications/AppName AppName.pkgReturnキーを押します。
「
productbuild」コマンドは、アプリケーションを処理してパッケージをパッケージフォルダに構築しながら、情報を表示します。作成したIDを初めて使用する場合は、パスワードを入力して、IDの鍵の使用を許可するよう求められる場合があります。その場合は、パスワードを入力して、「Always Allow」(常に許可)を選択します。
ターミナルアプリを終了します。
注記: Apple Businessでは、Apple Developer Program以外で作成されたIDで署名されているパッケージは拒否されます。ただしデバイス管理サービスが、そのIDを信頼するよう構成されている管理対象デバイスにパッケージを配信する場合は除きます。この方法で作成したパッケージを別のデバイスにインストールしようとすると、インストールに失敗します。
構成に証明書を追加する
パッケージをユーザーに送信してアプリケーションをインストールするには、新しい署名IDを信頼するようAppleデバイスを構成する必要があります。
証明書を配布します。「証明書構成を作成する」を参照してください。
すべてのデバイスに新しい証明書を設定したら、パッケージをアップロードできます。「パッケージを作成する」を参照してください。