web-dev-qa-db-ja.com

ブリッジングヘッダーのプリコンパイル済みヘッダーを送信できませんでした

GitHubからプロジェクトをダウンロードした後、次のファイルをポッドします。これらのファイルの一部はOBJ-Cによって書き込まれ、ブリッジヘッダーを使用しました。

pod ‘SnapKit’
pod ‘MJRefresh’
pod ‘Alamofire’
pod ‘Kingfisher’
pod ‘MBProgressHUD’
pod ‘pop’
pod ‘EVReflection’
pod ‘StreamingKit’
pod ‘iCarousel’
pod ‘ReflectionView’

Xcode 9.0 beta 2でプロジェクトを実行すると、残念ながら次のようなエラーログが記録されます。

エラー:ブリッジングヘッダー '/ Users/ringo/Downloads/EvoRadio-master/EvoRadio/Resources/EvoRadiodio/Resources/EvoRadiodio/Resources/EvoRadio/dios/EvoRadiodio/Resources/EvoRadiodio/Resources/Bridging-Header.h '

Googleで検索しましたが、そのような問題はありません。エラーは、PCHファイルが必要ですか?これは私の.pchヘッダー設定です: enter image description here 解決できません。

作り方

24
Ringo

暗号化されたコアデータ にココアポッドを追加した後も、まったく同じ問題(Xcode9ベータ6)が発生しました。
これは私のPodFileです:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
pod 'EncryptedCoreData', :git => 'https://github.com/project-imas/encrypted-core-data.git'

target 'Root' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Root

  target 'RootTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'RootUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

解決策:
1 $(inherited) non-recursiveSearch Path -> Header Search Pathsに追加しました
2その後、${PODS_ROOT} recursiveSearch Path -> User Header Search Pathsに追加しました
上記の両方のプロジェクトのターゲットビルド設定。

これらのSO回答をご覧ください:
ヘッダー検索パスを1つ継承
2つのユーザー検索パスを継承

19
D4ttatraya

これも発生する可能性があることに注意してくださいブリッジヘッダー自体がアプリのSwiftモジュールをインポートするObjective-Cコードをインポートする場合myproject-Swift.h経由。解決策は、Swiftタイプに前方宣言を使用し、.mファイルにプロジェクトSwiftモジュールをインポートすることです。

@class MySwiftClassまたは...

typedef NS_ENUM(NSInteger, MySwiftEnumType)

MySwiftEnumTypeは、クラスでも最低レベルの名前です。 Swift enum MyClass.MySwiftEnumTypeMySwiftEnumTypeになります

16

適切なプロジェクトワークスペースを開いていることを確認してください。開いていない場合、Podfileにコンパイルに必要なすべてのリソースがない場合があります。

以前に正常に動作していたプロジェクトでも、同じエラーが発生しました。

ProjectName.xcodeprojファイルではなく、誤ってProjectName.xcworkspaceファイルを開いたことを発見しました。 xcworkspaceファイルを開くと、プロジェクトは再び機能しました。

13
BAP

私にとって、この問題は、既存のプロジェクトに新しいビルド構成とスキームを追加したときに発生しました。

解決策は、新しく作成されたスキームでpod installを実行することでした。その後、プロジェクトが正常にビルドされました。

9
Aliens

この解決策を試すことができます。この方法で同じ問題を解決しました。

製品>スキーム>スキームの編集>左メニューの「ビルド」を選択>暗黙的な依存関係を検索

[ビルド]タブで、[暗黙的な依存関係を見つける]をオンにします。

Find implicit dependencies

その後、クリーンを作成し、再度ビルドします。

5
Okan

私は答えに記載されている上記の手順をすべて試しましたが、何もうまくいきませんでした、問題は基本的にプロジェクトとポッドファイルの展開ターゲットバージョンにありました。

私のプロジェクト展開ターゲットでは10.0でしたが、ポッドファイルでは11.0でした。

Scr1

scr2

3
paras gupta

私の場合、「Supporting Files」ではなく「Supporting FIles」というフォルダ名にタイプミスがありました。

2
Gomfucius

私の場合、プロジェクトファイルの1つに「不明なタイプ」などの追加エラーを含む同じコンパイラエラーがあったため、これを問題のあるファイルに追加するだけで、すぐに解決しました。

#import <UIKit/UIKit.h>

2
Benzi Heler

これに関する私の経験では、Xcodeはプロジェクトにインポートされたポッド/フレームワークのヘッダーファイルを見つけることができません。

私のプロジェクトでの経験:Xcode9.2-9.3の更新では、暗黙の定義が現在利用できないか古いために、多くのココアポッドを更新する必要がありました。
Podfileを変更して、「use_frameworks!」を含めるようにしました。これに続いて、他のコンパイルの問題に対処した後、私はあなたが経験しているエラーを見つけました。 「use_frameworks! iOS 8より前のサポートのある一部のポッドが正しくコンパイルできなかった。この問題を修正するために行った手順:

  1. ココアpod deintegrateを使用してPods /ディレクトリを削除しようとしました
  2. 次に、Xcodeでプロジェクトを開き、ビルドフォルダーとプロジェクトをクリーンアップしました。 (派生データフォルダー内のコンテンツを削除)
  3. その後pod installを再度実行しましたが、問題は解決しませんでした。

  4. 最終的には、Podfileのuse_frameworks行を削除し、手順1〜3を繰り返しました。プロジェクトは見つからないヘッダーファイルを見つけることができ、問題は二度と現れませんでした。

1
Randoramma

Podfile.lockを削除してpod installを再実行すると、これが修正されました。

1
Zack Shapiro

次のような非常に多くの理由があります。

  • Xcodeの再起動、クリーン、ビルド
  • PodsディレクトリとPodのインストールを削除する
  • 不足しているファイルがポッドファイルに追加されていることを確認します
  • 不足しているファイルがブリッジングヘッダーに追加されていることを確認してください
  • 次のようにヘッダー設定を変更します iOS-ビルドがCocoaPodsで失敗し、ヘッダーファイルが見つかりません

私のために働く唯一のものは、 Xcode 9-プリコンパイル済みヘッダーの発行に失敗しました で受け入れられた答えです。

platform :ios, '11.0'ポッドファイルはプロジェクトのターゲットと一致する必要があります

1
Allen

同じシナリオがありました。ファイルAYourProjectName-Bridging-Header.hに含めたことを確認してください

  • 他のクラスを使用する場合、それらのクラスもその前に含まれますFile A
0
Muhammad Waqas

また、新しいXcodeを更新した後、これに悩まされました。数時間の調査の後、複数のターゲットがある場合、Xcode 10のポッドファイルにさらにターゲットを追加する必要があることがわかりました。したがって、コードは次のようになります。

platform :ios, '9.0'

target 'EvoRadio' do

pod ‘SnapKit’
pod ‘MJRefresh’
pod ‘Alamofire’
pod ‘Kingfisher’
pod ‘MBProgressHUD’
pod ‘pop’
pod ‘EVReflection’
pod ‘StreamingKit’
pod ‘iCarousel’
pod ‘ReflectionView’

target 'EvoRadio2ndtarget'   # add your second target

end

Xcode 9では追加する必要はありませんが、Xcode 10では追加する必要があることがわかりました。お役に立てれば。

0
Richter

私の場合、間違ったスキーム(左上メニュー)でビルドしていました。

0
atulkhatri