概要
私は、Carthageによって統合される動的フレームワークの複数のカスケード セットの開発に取り組んでいます。このブログ投稿のプリンシパルと、 iOS と OS X の間の WWDC ビデオ共有コードを適応させようとしています。
私の状況:
カスケード形式で互いに含まれる3つの動的フレームワークがあります。
動的フレームワーク: DataManagerには動的フレームワークが含まれます: GDL90には DynamicFramework: EGL96 が含まれます。
これまでの作業...
私がやっていることの要点は、単一のターゲットを取り、iOS と Mac の両方のフレームワークを構築するように構成することです。
- ベース SDK: OSX
- サポートされているプラットフォーム:
machos iphoneos iphonesimucator
- 有効なアーキテクチャ:
arm64 armv7 armv7s i386 x86_64
次に、テスト ターゲットの下で検索パスを変更します。
- ランパス検索パス:
$(inherited) @executable_path/Frameworks @loader_path/Frameworks @executable_path/../Frameworks @loader_path/../Frameworks
- フレームワークの検索パス:
$(SDKROOT) $(inherited)
問題の始まり
複数のターゲットに対して複数のビルドをビルドするように、 EGM96プロジェクトを構成しました。これはうまく機能し、正常にコンパイルされます。問題が始まるのは、カルタゴが関与したときです。
私のGDL90プロジェクトでは、カルタゴのEGM96を含めました
実行carthage update
すると、次のファイルが作成されます。
./Carthage/Build/Mac/EGM96.framework
./Carthage/Build/iOS/EGM96.framework
また、マルチプラットフォーム ビルドを実行するようにGDL90プロジェクトを構成しましたが、そこからエラーが発生します。ビルド プロセスを動的に構成して (これまでのところ)、正しいターゲットに基づいて正しいフレームワーク バージョンをプルすることができません (つまり、OS X ビルドは からプルし/Carthage/Build/Mac/EGM96.framework
ます)。
Xcodeのビルド変数を調べるのに時間を費やしましたが、まだ有効な解決策を見つけていません。
注意点は、これらは最初にフレームワークで Xcode にiOS
リンクしたプロジェクトであったため、完全に適切なエラーが発生することです。iOS
ld: building for OSX, but linking in object file built for iOS, file '/Users/jstein/devel/DigitalCopilot/GDL90/Carthage/Build/iOS/EGM96.framework/EGM96' for architecture x86_64
コンパイル時にXcodeが適切なカルタゴビルドパスからフレームワークをプルできるようにする、私が見逃しているいくつかの隠しビルド変数に対する簡単な解決策はありますか?