シミュレータ用のビルド時に"The linked library 'xxx' is missing one or more architectures required by this target: arm64."エラー

環境

症状

シミュレータ用にアプリをビルドすると以下のエラーが表示され、アプリが使用しているライブラリでシミュレータでは不要なはずのarm64バイナリを要求される。

The linked library 'xxx' is missing one or more architectures required by this target: arm64.

*素直にライブラリにarm64バイナリを含めると、今度はまた別のエラーになる。

解決方法

Xcodeがarm64用のバイナリをビルドしようとしていることが原因。

まず、プロジェクトとターゲットのビルド設定を開き、VALID_ARCHSが定義されている場合は削除する。
*プロジェクト側とターゲット側の両方の定義をチェックして削除すること。 f:id:shindo1687:20211003075754p:plain

次に、ターゲットのビルド設定のExcluded Architecturesの全てのコンフィグレーション(Debug, Relaseなど)について"Any iOS Simulator"の場合に"arm64"をセットする。
*ターゲット側に設定すること。なぜかプロジェクト側に定義しても同じエラーが発生する。 f:id:shindo1687:20211003075807p:plain