125

指示に従って、ブリッジ ヘッダーを作成し、プロジェクトに追加しました。残念ながら、次のエラーが発生しました。

:0: エラー: Objective-C ヘッダー '---path--to---header/....h' をインポートできませんでした

スクリーンショット 1

ビルド設定で、ブリッジ ヘッダーの場所にヘッダー検索パス文字列を追加しましたが、何も役に立ちませんでした。

誰もこの問題を経験しましたか?

4

19 に答える 19

154

エラーが発生しているフォルダーにファイルを追加するように注意してください。Xcode からファイルを作成すると、次のフォルダーに移動します: Project->Project->Header.h

Xcode は Project->Header.h を探しています。

つまり、ファイルをプロジェクト フォルダー (ProjectName->ProjectNameFolder) 内に配置する必要があります。

それが役立つことを願っています;)

更新: あなたの言いたいことが理解できたかどうかわかりませんが、問題を解決するためにこれを試してください:
1. これまでに作成したすべてのブリッジング ファイルを削除します。
2. プロジェクトのメイン フォルダを選択し、[新しいファイル] -> [iOS] -> [ヘッダー ファイル] をクリックします。
3. 作成したヘッダー ファイルにインポートを書き込みます。
4. Xcode->Build Settings 内のプロジェクトを選択し、検索フィールドに「bridging」と入力し、キー SWIFT_OBJC_BRIDGING_HEADER にヘッダー ファイルの名前またはそのパスを入力します。

この手順に従うと、ヘッダー ファイルが正しい場所に作成されます。

:D お役に立てば幸いです!

于 2014-06-18T19:36:04.550 に答える
18

これはおそらくごく一部の人にしか影響しませんが、私の場合、私のプロジェクトは CocoaPods を使用しており、それらのポッドの 1 つに独自の CocoaPods を持つサブ仕様がありました。解決策は、フル アングル インポートを使用してサブポッド内のファイルを参照することでした。

#import <HexColors/HexColor.h>

それよりも

#import "HexColor.h"
于 2014-09-29T19:02:53.650 に答える
10

「ブリッジングヘッダーにリストしているヘッダーファイルを探す場所をXcodeに伝える必要があります。検索パスセクションを見つけて、ユーザーヘッダー検索パスのプロジェクトレベルの設定を変更し、「ポッド」の再帰エントリを追加しますディレクトリ: Pods/ ** " http://swiftalicio.us/2014/11/using-cocoapods-from-swift/

于 2015-09-15T13:25:44.370 に答える
6

私もこの問題を経験しましたが、残念ながらこれは SDK + Xcode の単なるバグです。WWDC のエンジニアと、これと CloudKit で抱えていた他のいくつかの問題について話しました。これらのバグは、Xcode の次のシードで対処される予定です。

ベータ版ソフトウェアを使用することの楽しい部分です。

于 2014-06-10T16:55:25.543 に答える
3

適切な方法ではない cocoapods のブリッジ ヘッダー ファイルからいくつかのファイルをインポートしました。

インポートする代わりに

#import <SomeCocoaPod/SomeCocoaPod.h>

私が書いた

#import "SomeCocoaPod.h"

そして、これは私の大きな間違いでした

于 2015-10-29T09:38:12.030 に答える
3

目的の c プロジェクトに迅速なクラスを追加するのに問題がある他の人のために。これは私のために働くものです:

  1. 新しい迅速なファイルを作成します。これにより、brigde-header.h を含む mix swift-objective-c プロジェクトのすべての設定を xcode で作成する場合、xcode にプロンプ​​トが表示されます。はいを押します。
  2. ここで、プロジェクトで使用する既存の Swift ファイルを追加します。
  3. 実装ファイルでは、swift クラス add : #import "YOURPROJECTNAME-swift.h" を使用します。このファイル xcode はあなたのために作成します。Xcode プロジェクトが myProject の場合、「myProject-swift.h」

以上です。Objective-C のように、コード内に迅速なクラスを作成します。

于 2015-02-01T10:35:09.133 に答える
2

私にとっては、フレームワークの追加中に宛先パスで「必要に応じてアイテムをコピーする」を選択していませんでした。このオプションを選択して、フレームワークを再度追加するだけです。

于 2016-02-03T17:27:54.297 に答える
2

プロジェクトに一時的な Objective-C ファイルを追加します。好きな名前を付けることができます。

[はい] を選択して、Objective-C ブリッジ ヘッダーを構成します。

作成した一時的な Objective-C ファイルを削除します。

作成した projectName-Bridging-Header.h ファイルに、次の行を追加します。

'#import < GoogleMaps/GoogleMaps.h >'

AppDelegate.swift ファイルを編集します。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    GMSServices.provideAPIKey("AIza....") //iOS API key

    return true
}

完全なサンプルのリンクをたどってください

于 2015-11-16T21:30:42.620 に答える
1

私は別の理由で同じ問題を抱えています。これは、スライドメニューを含める必要があるプロジェクトをビルドする私のケースです。それにアプローチするために SWRevealViewController lib を使用しています。

ライブラリ ファイルをインポートすると、.h && .m ファイルのサポート ファイルの下にサブフォルダー (SWRvealViewController) を追加すると、2 つのエラーが発生し、ブリッジをインポートできず、SWRevealViewController.h が見つかりません。

修正方法

ファイルを Supporting Files に直接移動すると (サブフォルダーを削除)、SWRevealViewController.m が Build Phases --> Compile Sources に自動的に追加され、問題はなくなりました

ここに画像の説明を入力

于 2016-04-03T09:10:46.027 に答える
1

上記の解決策では解決できない同様の問題がありました。私のプロジェクトでは CocoaPods を使用しています。エラーとともに、次のメッセージで警告が表示されることに気付きました。

Uncategorized: Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'Pods.framework' because its architectures 'arm64' didn't contain all required architectures 'armv7 arm64'

ここに画像の説明を入力

したがって、解決策は非常に簡単でした。Pods プロジェクトの場合、Build Active Architecture OnlyフラグをNoに変更すると、元のエラーはなくなりました。

于 2016-08-18T17:53:05.873 に答える
1

アプリに Today 拡張機能を追加しているときに、そのようなエラーが発生しました。拡張機能のビルド ターゲットは、アプリのビルド ターゲットと同じ名前のブリッジ ヘッダーで生成されました。拡張機能がアプリのブリッジ ヘッダーにリストされているファイルを認識しないため、これがエラーの原因でした。

必要なのは、拡張機能のブリッジ ヘッダーの名前を削除または変更することだけで、すべて問題ありません。

これが役立つことを願っています。

于 2016-11-03T13:28:24.383 に答える
1

最初の数日間の苦労の末、ついに Facebook サインアップを iOS アプリにうまく統合することができました。手順は次のとおりです (マシンに Facebook SDK v4.1 以降が既にインストールされていることを前提としています)。

  1. プロジェクトの下に Facebook フレームワーク - FBSDKCoreKit、FBSDKLoginKit を追加します。
  2. FB SDK v4.1 以降ではヘッダー ファイルをブリッジする必要がないため、ビルド設定を変更しないでください。
  3. FBSDKCorekit、FBSDKLoginKit を ViewController.swift、AppDelegate.swift ファイルにインポートします。
  4. ここに記載されているように、pList に情報を追加します。

  5. アプリをビルドします。そしてうわー!コンパイル時エラーはありません。

于 2015-07-26T17:45:14.220 に答える
0

他の修正の中で、Product->Archive を実行しようとしたときにエラーが発生しました。私はこれを持っていたことがわかりました:

Objective-C Bridging Header
  Debug (had the value)
  Release (had the value)
    Any architecture | Any SDK (this was blank - problem here!)

その最後の行に設定した後、機能しました。

于 2015-10-15T13:32:22.247 に答える
0

Precompile Bridging HeaderNoに設定すると、問題が解決します。

于 2017-11-23T05:50:47.640 に答える