LoginSignup
2
2

【Xcode Cloud】OSS側でプラグイン使用時にCI環境でビルドできない時の対応

Posted at

概要

普段、Xcode Cloudを使用してビルド・リリースをしているのですが、
LicenseListというライブラリを入れたら、Xcode Cloudのビルドでエラーが発生するようになりました。

本記事はその対応内容のメモになります。

まず最初に

LicenseListというライブラリについて
https://github.com/cybozu/LicenseList

このライブラリはOSSのライセンス情報を一覧で画面に表示してくれるライブラリです。
使い方は、このライブラリを入れて、指定の画面を起動するだけ!
開発時はOSSを入れたり消したりするので、このライブラリは非常にありがたいです :pray:

起こったエラーの内容

下記エラーがXcode Cloudのログに書かれてました。

Validate plug-in “PrepareLicenseList” in package “licenselist”
“PrepareLicenseList” is disabled

image.png
※黒塗りはアプリ名です。

原因

外部のライブラリがXcodeBuildToolPluginを組み込んでビルドを行う場合、安全性を考慮して、ビルドが失敗するようになっていました。

LicenseListではPrepareLicenseListというプラグインをビルド時に実行しています。

対応

Xcode Cloudで下記コマンドを実行するようなci_post_clone.shファイルを作成しました。

defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidatation -bool YES

内容

xcodebuildコマンド時に-skipPackagePluginValidationオプションをつければ良いが、Xcode Cloud環境ではコマンドのオプションはカスタムできません。

したがって別の対応として、対応欄に書いたコマンドを実行することで、上記オプションと同じ設定内容でビルドが実行されます。

感想

いつも便利なOSS群のおかげで、楽に開発ができています。ありがとうございます :pray: :pray: :pray:
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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2