'Debug'または 'Release'以外の名前のビルド構成を使用しようとすると、Xcodeは突然私のSwiftフレームワークを見つけることができません。構成は名前以外はまったく同じです(実際には、新しい構成は、作業中の「デバッグ」構成から複製されました)。
Xcodeは「そのようなモジュールはありません」と報告します
これは本当に奇妙なバグのようです。確かに誰かがこれに遭遇したことがありますか?私のグーグル検索は結果をもたらさなかった。誰かがこの問題を引き起こしている可能性があるものを知っていますか?フレームワークを正しく追加したと確信しています。
私が行っていることを正確に示すために、短いスクリーンキャストを作成しました: http://www.screencast.com/t/zpgZ5ZYgvH
結論:
サンプルプロジェクトをダウンロードすることもできます: http://s000.tinyupload.com/?file_id=4879776321627427182
Xcode 6.0.1(6A317)とYosemite 10.10(14A361c)を実行しています。
ターゲットの_Framework Search Path
_に次の_Build Settings
_を追加します:$(SYMROOT)/Release$(EFFECTIVE_PLATFORM_NAME)
そしてそれを_non-recursive
_にします
私の場合、これはAlamofire用で、gitサブモジュールとしてプロジェクトに追加されました。
フレームワークは正しくビルドされており、ビルドログで確認できますが、デフォルトのフレームワーク検索パスはスキーム名から派生していると思います。 AlamofireフレームワークとdSYMファイルは_Release-iphoneos
_/_Release-iphonesimulator
_にあります。
スキーム名がデフォルトである限り、これはどのSwiftフレームワークでも機能すると思います。そうでない場合は、ビルドログを確認し、それに応じてフレームワークの検索パスを調整してください。
CocoaPodsを使用している場合は、pod install
を試してください。これにより、構成名を使用していくつかの.xcconfigファイルが生成されます。ビルドフォルダをクリーンアップして、再度ビルドします。
モジュール構造がある場合(たとえば、アプリがフレームワークを使用してUI、サービス、またはビジネスロジックをアプリケーションのメインモジュールから分離している場合)、これらのフレームワークをビルドする各サブプロジェクトに新しいビルド構成を追加します。
この場合、作成者が自分のワークスペースにServices Frameworkを持っているとすると、その作成者はDebugOriginal構成も追加する必要がありました。そしてもちろん、pod install
を実行します。
これが私の問題を修正した方法です。