私は3つのプロジェクトを持っています:
- 私のカスタム開発フレームワーク「XXX.framework」(サードパーティの「YYY.framework」に依存しています)。両方のフレームワークには、実際のデバイスとシミュレーターのバージョンが異なるため、構築するアーキテクチャが異なります。
- Objc-C 'DemoObjC.app' と Swift 'DemoSw.app' の 2 つのデモ アプリは、'XXX.framework' を使用します。
カスタム 'XXX.framework' を、別々にビルドして正常に実行する 2 つのデモ アプリにリンクしました。
しかし、3 つのプロジェクトをワークスペースに埋め込んで、すべてのプロジェクトを 1 つのウィンドウで同時に作業すると、奇妙な動作に直面します。デバイスまたはシミュレーターでアプリを実行できないことがあります。つまり、ビルドして正常に実行されることもありますが、何も変更しないと失敗することがあります。または、シミュレーターでは正常に実行できますが、実際のデバイスでは実行できませんが、XCode の再起動後、デバイスでは実行できてもシミュレーターでは実行できない場合があります。プロジェクトのクリーンアップ、DerivedData の削除、XCode の再起動、および再起動を試みましたが、数回の実行が成功した場合にのみ役立ち、その後も予期しない動作が発生します。
たとえば、ワークスペースでデバイスで「DemoObjC.app」を実行しようとすると、
ld: warning: ignoring file /Path_Here/SIMULATOR/YYY.framework/YYY,
missing required architecture arm64 in file /Path_Here/SIMULATOR/YYY.framework/YYY, (2 slices)
Undefined symbols for architecture arm64:
<List of files that can't be find>
デバイスで実行すると SIMULATOR で失敗する理由がわかりません。別々のプロジェクトが正常にビルドおよび実行されるため、プロジェクトとターゲットは適切に構成されているようです。
または、シミュレーターで実行しようとするとエラーが発生します:
ignoring file /Path_Here/NOT_A_SIMULATOR/YYY.framework/YYY,
missing required architecture x86_64 in file /Path_Here/NOT_A_SIMULATOR/YYY.framework/YYY (2 slices)
Undefined symbols for architecture x86_64:
XCode 8.2 と 8.2.1 の同じ問題
何が間違っているのですか?私はそれがXCode関連の問題であることに傾いています。