web-dev-qa-db-ja.com

Xcodeが生成できませんでしたSwift自分のフレームワークの表現

OSXアプリで使用したいフレームワークを作成しました。 El CapitanでXcode7に更新してから、importステートメントをコマンドキーでクリックしようとすると、Xcodeは次のビューに移動します。

enter image description here

XcodeにSwift表現を適切に表示させるにはどうすればよいですか?以前にそれが発生したことがありました。私の解決策は、やりたくないすべてのプロジェクトファイルを再作成することでした。

25
David Skrundz

私の経験から、この問題には2つの原因が考えられます。 1つ目は、フレームワークが見つからないことです。これを修正するには、ターゲットのビルド設定に移動し、フレームワーク検索パスにパスを追加する必要があります。

_/Users/{user}/path-to-framework-parent-directory
_

またはプロジェクトディレクトリからの相対:

_$(PROJECT_DIR)/path-to-framework-parent-directory
_

別の考えられる原因は、フレームワークへのパスにスペースが含まれていることです。バックスラッシュ_../Project\ Name/frameworks_でエスケープしようとするか、パス全体を二重引用符_"../Project Name/frameworks"_で囲むかは問題ではないことがわかりました。その結果、SourceKitはモジュールをロードできませんでした。

$(PROJECT_DIR)は、スペースを含むパスに展開される可能性があり、それでも同じエラーが発生することに注意してください。そのため、Xcode/SourceKitのバグのように見えます(最新のXcode 7.2-beta3を試しましたが、バグはまだ残っています)。

私のリポジトリは2番目のハードドライブ_/Voluems/Macintosh HD/Repos_にありました。ハードドライブの名前をHDに変更したので、パスは_/Volumes/HD/Repos_のようになり、問題は解決しました。

38
Max S.

私にもこの問題があり、他の解決策が機能しませんでした。私はついにそれを私の場合に理解しました:

ターゲット名にもスペースを含めることはできません

名前を変更するには:

  • プロジェクト設定に移動します
  • まだ表示されていない場合は、左側のターゲットリスト列を展開します
  • 関連するターゲットを1回クリックします(またはを押します Enter または Tab 選択した場合)、スペースなしで新しい名前を入力します
1

Max S.の回答は私を正しい方向に向けましたが、フレームワークパスに「再帰的」オプションを使用していました。

物事を機能させるには、問題のフレームワークの直接の親ディレクトリに直接パスを明示的に追加する必要がありました(「再帰的」オプションが設定された上位のディレクトリの1つへのパスを持つだけでなく)。

HTH

1
Oliver Pearmain

実行中Product-> Clean、Product-> Buildが私のために働いたものです。

1
myQwil

私の場合、SDKのフレームワークをpodspecとともに作成して、カカオポッドにしました。

SDKを使用すると同じ問題が発生し、SDKを使用しているファイルにFoundation APIをインポートしたときに修正されました

import Foundation

0
Rakesh Yembaram

奇妙なことに、フォルダの名前を「開発者」から「開発」に変更するだけで、問題が解決しました。

0
DardanM