「Utils」と呼ばれる Swift フレームワークを使用する「Box」と呼ばれる Objective-C フレームワークがあります。どちらにも、開発中に使用する標準ターゲットと、開発が完了し、ユニバーサル フレームワークを構築する必要があるときに使用するカスタム ターゲットがあります。
Xcode 10.2/swift 4 まではすべてうまく機能し、「Box」と「Utils」の両方のユニバーサル フレームワークをコンパイルして、swift で記述されたテスト アプリで使用したり、他のフレームワーク内のフレームワークとして使用したりできました。
Xcode 10.2/swift 5 に切り替えると、少なくともすべてのターゲットに対して、「Box」から「Utils」のオブジェクトとメソッドを参照できなくなりました。
「Box」標準ターゲットと実際のデバイスを使用すると、フレームワークを構築してテスト アプリで実行できます。「Box」から「Utils」オブジェクト/メソッドをポイントしてクリックできるので、それらを参照できます。
「Box」標準ターゲットとシミュレーターを使用すると、フレームワークをビルドできず、次のようなエラーが発生します。
"No visible @interface for 'UIColor' declares the selector 'initWithHexString:'" -> initWithHexString is a method declared into an extension of UIColor inside "Utils" framework
"use of undeclared identifier 'StringUtils'" -> StringUtils is a class declared inside "Utils" framework
カスタム ターゲット (ユニバーサル フレームワークのビルドに使用されるクラシック スクリプトのターゲット) を使用して "Box" ユニバーサル フレームワークをビルドしようとした場合も同様です。
そのため、Xcode 10.2 以降、不明な理由で、一部のターゲットについて、「Box」から「Utils」フレームワークを参照できなくなりました。すべてのメソッドは @objc でマークされているため、問題はありません。
何が問題なのかについて何か考えはありますか?
他に役立つ情報を追加する必要があるかどうかはわかりません...
どうもありがとう!
更新:「Utils」フレームワークをオンザフライで作成された Swift フレームワークにインポートして、テストを実行しようとしました。そしてそれはうまくいくようです。そのため、Swift の「Utils」フレームワークを Objective-C の「Box」フレームワークにインポートしようとすると問題が発生するようです。