概要
普段、Xcode Cloudを使用してビルド・リリースをしているのですが、
LicenseListというライブラリを入れたら、Xcode Cloudのビルドでエラーが発生するようになりました。
本記事はその対応内容のメモになります。
まず最初に
LicenseListというライブラリについて
https://github.com/cybozu/LicenseList
このライブラリはOSSのライセンス情報を一覧で画面に表示してくれるライブラリです。
使い方は、このライブラリを入れて、指定の画面を起動するだけ!
開発時はOSSを入れたり消したりするので、このライブラリは非常にありがたいです
起こったエラーの内容
下記エラーがXcode Cloudのログに書かれてました。
Validate plug-in “PrepareLicenseList” in package “licenselist”
“PrepareLicenseList” is disabled
原因
外部のライブラリがXcodeBuildToolPlugin
を組み込んでビルドを行う場合、安全性を考慮して、ビルドが失敗するようになっていました。
LicenseList
ではPrepareLicenseList
というプラグインをビルド時に実行しています。
対応
Xcode Cloudで下記コマンドを実行するようなci_post_clone.sh
ファイルを作成しました。
defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidatation -bool YES
内容
xcodebuildコマンド時に-skipPackagePluginValidation
オプションをつければ良いが、Xcode Cloud環境ではコマンドのオプションはカスタムできません。
したがって別の対応として、対応欄に書いたコマンドを実行することで、上記オプションと同じ設定内容でビルドが実行されます。
感想
いつも便利なOSS群のおかげで、楽に開発ができています。ありがとうございます
Xcode Cloud環境でもオプションのカスタマイズとかできれば、わざわざファイルなんか作らなくていいからありがたいな〜。
参考
https://zenn.dev/kyome/articles/56974297795cb5
https://forums.swift.org/t/telling-xcode-14-beta-4-to-trust-build-tool-plugins-programatically/59305