17

XCodeベータ版でSwiftを試しています。特に @IBDesignable と @IBInspectable を使用します。(@IBDesignable)UIViewサブクラスとシンプルなiOSアプリを含むフレームワークを構築してテストしています(両方ともワークスペースに含まれ、ワークスペースを介してリンクされています)。ビルドが数回成功した後、フレームワークのビルド出力に次のエラーが表示されます。

:0: エラー: /Users/richardpj/Projects/Swift2/Swift2FW/build/Swift2FW.build/Debug-iphonesimulator/Swift2FW.build/unextended-module.modulemap:2: アンブレラ ヘッダー 'Swift2FW.h' が見つかりません:0:エラー: Objective-C モジュール 'Swift2FW' をビルドできませんでした

あなたが尋ねる前に、派生データをクリーンアップして削除しましたが、ワークスペースとプロジェクト ファイルを削除して再作成する以外に何も解決していないようです。

エラーの原因、再現方法(バグレポート用)に関するアイデア、または私は愚かですか。

編集:これが投稿されてから、50 回の閲覧がありました。報告しなければならないバグのようです。それを行う方法についてのアイデアはありますか?

4

8 に答える 8

8

独自の迅速なフレームワークを作成すると、「Objective-C モジュールをビルドできませんでした」というエラーが発生しました。

「Link Binary With Libraries」に行き、「UIKit」を追加して修正しました。

于 2014-12-13T14:03:29.513 に答える
8

Swift で組み込みフレームワークを作成している場合は、プロジェクト設定 -> フレームワーク ターゲット名 -> ビルド フェーズ -> ヘッダーを確認してください。現在 (Xcode 6.2) ここの Public セクションにリストされているヘッダー ファイルは、次のエラーを引き起こす可能性があります。

<unknown>:0: error: could not build Objective-C module 'YourFrameworkName'

于 2015-03-19T13:46:40.777 に答える
5

.h アンブレラ ファイルの名前が Swift ファイルの 1 つと同じ場合、このエラーが発生していました。フレームワークが構築したswiftファイルの名前を変更したら。

Ex. Project Name: TestProject
|_
  TestProject.h <=
  |_
    Models
    |_
      TestProject.swift <= 

矢印 ( <= ) が付いた 2 つのファイルに同じ名前を付けると、「Objective-C モジュールをビルドできませんでした」というエラーが発生しました。

于 2014-06-09T14:38:44.570 に答える
1

この問題に何度も遭遇し、時にはプロジェクト全体を再作成することに頼った後、この非常に奇妙なビルドの問題は通常、ブレークポイントが設定されていることが原因であることがわかりました。

ブレークポイント ナビゲーター ウィンドウ (CMD-7) を開き、すべてのブレークポイントを削除します。

これは通常、この問題を修正しますが、奇妙に聞こえるかもしれません。

余白をクリックしてコンパイル エラーを調査しているときに、誤ってブレークポイントを追加するのは非常に簡単です。

于 2014-12-28T10:23:55.197 に答える
1

私の場合、 Public Headers Folder Path をオーバーライドする以前のビルド設定がありました(PUBLIC_HEADERS_FOLDER_PATH)。それを(新しい?)デフォルト値にクリアすると$(CONTENTS_FOLDER_PATH)/Headers、エラーが修正されました。

于 2014-08-08T07:05:12.380 に答える
1

私の場合は、埋め込まれた Swift Framework ターゲットの [スキームの編集] ウィンドウ ([製品] > [スキーム] > [スキームの編集]) を開き、[共有] のチェックを外すだけでした。組み込みでない Swift フレームワークはまだサポートされていないため、フレームワーク スキームを共有することは、モジュールの Objective-C コンポーネントが必要であることを意味します。

「スキームの管理」ウィンドウでこれをオフにすることもできます (製品 > スキーム > スキームの管理...)。

于 2014-08-29T21:26:48.403 に答える
0

私の場合、これは、他のターゲットのビルド段階でフレームワークを依存関係としてリストするのに失敗したことが原因であることが判明しました。私がそれをするとすぐに、すべてがうまくいきました。

これは、それを使用するターゲットの前にフレームワークがビルドされることが保証されるためだと思います。

この問題が断続的に発生する理由は、明らかに、依存関係がなければ、ビルドの順序が不確定であるためです。そのため、たまたま正しい順序でビルドが機能することもあれば、たまたま間違った順序でビルドが失敗することもあります。

于 2016-01-29T21:41:34.003 に答える