見出し画像

Jamf スクリプト経由で Xcode インストール

はじめに

Xcode の展開は、管理者にとって頭の痛い課題だと思います。アプリサイズが非常に大きく配布に時間がかかるため、インストール完了するまでの時間を把握することが困難で、更には途中でインストールに失敗していることもよくあります。

そのため、ユーザ自身が Apple Developer Program から取得したり、AirDrop などで Xcode を共有する方法を取った方が効率的とは言えますが、Apple IDを使用せずに配布したい場合、大変困ることとなります。

そこで、今回は、Jamf Pro でスクリプトを使用して Apple ID を使用せずに Xcode と CLIツールをインストールする方法をご紹介したいと思います!

Jamf Nation のスレッド と YouTube の説明動画をもとに検証を行いました。

手順書

① Apple Developer Program から対象 Xcode のバージョンをダウンロード

② ダウンロードした対象xipファイルを解凍、Xcode アプリをApplicationsフォルダに移動する

③ パッケージ化
パッケージ化ツールとして WhiteBoxのPackagesアプリ を使用しました。
(最初は普段使用しているJamf 社のツール Composer を使ってパッケージの作成を試したのですが、失敗するため別ツールを試しました。)

システム要求
Intel または Apple Silicon ベースの Mac
OS X 10.9 以降 (Ventura もサポートされてます。)

ウェブサイトの右上にある Downloadボタンでダウンロードします。
.dmgファイルを開いて、Install Packages.pkgを実行します。

パッケージ化の手順
1. Raw Packageを選択
2. プロジェクト名・プロジェクトフォルダを入力
3. プロジェクト作成後は Settingsタブに移動

4. Options > Require admin password for installationのチェックを外す

5. Payloadタブに移動

6. Contentsの中にあるApplicationsを選択し、左下の「+」ボタンを押下

7. /Applications/Xcodeを選択

8. 右横にあるAttributes欄のGroupをwheelに変更(Composerと同様に)

 9. メニューのFile > Save
10. メニューのBuild > Build

Build 完了までしばらく待ちます。(Xcode の場合、時間がかかります)
※ Build 完了後、プロジェクトフォルダ内にあるbuildフォルダで作成したPKGが表示されます。

④ 作成したPKGを Jamf Pro 環境にアップロードする
ネット状況にも応じますが、これも結構時間がかかります。

⑤ スクリプトの作成
記事に掲載されていたスクリプトを一部変更しています。
・コードで Gatekeeper 後にあるコードを外し、代わりパッケージインストールと初回実行アイテムに関するコードに変更
・別途post installスクリプトで最新バージョン Command Line Tools をインストール(参考コメント

作成したスクリプト:
XcodeConfiguration.zsh
XcodePostInstallCommandLineTools.sh
setSleepTime.zsh (処理中にスリープしないようにするため)

⑥ ポリシーの作成
④で作成した PKG ファイルと⑤のスクリプトを用いて Jamf Pro でポリシーを作成します。 スクリプト>優先順位は以下のような組み合わせとなります。

Policyのトリガーで実施する場合
・setSleepTimeをBefore実行
・XcodeConfigurationをAfter実行
・XcodePostInstallCommandLineToolsをAfter実行

Self Serviceで実施する場合
・XcodeConfigurationをAfter実行
・XcodePostInstallCommandLineToolsをAfter実行

ログ

XcodeConfiguration スクリプトのインストールログは以下の階層に保存されます。

/Library/Logs/Xcode/XCodeInstall.log

検証結果

・ポリシーの実行には2~3時間かかりましたが、問題なくパッケージのインストールとスクリプトによる展開が実行され、アプリも問題なく開くことができました。

※今回 macOS Ventura にて検証を行いましたが、今後のメジャーアップデート時は検証して実装をお願いいたします。


Xcode を Apple ID を使用せずに配布したい場合、本記事を参考にしていただけますと幸いです。

以上、 エンジニアのメリンダが担当いたしました。
最後まで読んでいただき、ありがとうございました。

ご参考

新しい記事の情報をツイッターで報告しておりますので是非@magichat2011もフォローして下さい!