CocoaPodsを使ったiOSプロジェクトがあります。他の開発者が同じプロジェクトに取り組むまで、すべてが順調に進んでいました。彼はいくつかの変更を加え(私の知る限りコードを書くためだけに)、リポジトリに新しいブランチを作りました。彼のブランチをチェックアウトしてビルドしようとしましたが、エラーが発生しています。ASLogger/ ASLogger.hファイルが見つかりません。
プロジェクト全体を削除して新しいコピーを作成して「pods install」を使用したとしても。ビルド失敗はまだあります。問題が発生する可能性がある場所はありますか。さらに情報が必要な場合は、聞いてください。
更新
設定ファイルがないターゲットでは、Podfile
にlink_with
が含まれていることを確認してください。 Cocoapodsのみ デフォルトで最初のターゲットを設定 それ以外の場合。例えば.
platform :osx, '10.7'
pod 'JSONKit', '~> 1.4'
link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'
------更新を終了します
注:以下のステップについては、プロジェクト - >情報 - >構成を調べてください。
同様の症状があり、pods.xcconfig
ファイルがビルドしようとしていた特定のtarget
に含まれていないことがわかりました。他の提案された解決策のいくつかは私のために働いたが、これは根本的な問題の一部に対処するように思われた。
簡単な解決策は、1つのセットがないターゲットの設定ファイルを変更することでした。
更新
私は最初の答えからこれを更新しました。もしそうなら、私の投票を取り戻すことを願っています。
ヘッダーがインポートされていない場合は、おそらくHEADER_SEARCH_PATHS
で競合があります。ビルド設定のヘッダー検索パスに$(inherited)
を追加して、CocoaPodから.xcconfigファイルに含まれている検索パスが取り込まれるようにします。
これはどんな衝突でも助けて、あなたのソースを正しくインポートさせるでしょう。
ヘッダファイル、あなたは私の死になるでしょう...
最後に(引用符を含む)を追加することで動作するようになりました
"${PODS_ROOT}/BuildHeaders"
user Header Search Pathsエントリに移動し、 'recursive'をチェックします。
私は${PODS_HEADERS_SEARCH_PATHS}
が見つからず、それが私のDevelop gitブランチで定義されていないことを発見したので、再帰的なヘッダ検索パスに"$(SRCROOT)/Pods/Headers/"
を追加しました
それは私には問題ありません
他の答えは両方ともここでは役に立ちませんでした。私はそれを修正するかもしれない2つの他の問題を見つけました:
Xcodeプロジェクト(あなたのプロジェクト)のProject-> Info-> ConfigurationsはDebug、Release(そしてあなたが持っているもの)のために 'Pods'に設定されるべきです。 "ヘッダーが見つかりません - 検索パスは含まれていません" を参照してください。
多分あなたはlink_withコマンドでターゲットをリンクしなければなりません。 "静的ライブラリプロジェクトでヘッダが見つかりません" を参照してください。
EDITこの方法でシンボリックリンクをチェックすることができます。拡張子を付けずに 'check'という名前のテキストファイルを作成します。これらの行をコピーしてください。
file=/Users/youUserName/XcodeProjectName/Pods/BuildHeaders/SVProgressHUD/SVProgressHUD.h
if [[ ! -e $file && -L $file ]]; then
echo "$file symlink is broken!"
else
echo "symlink works"
fi
それから端末に行き、チェックファイルが置かれているフォルダに移動して、
bash check
これは私のために働いたものです:
[ターゲット]> [ビルド設定]タブに移動して、[ユーザーヘッダー検索パス]設定を見つけます。
これを "$(BUILT_PRODUCTS_DIR)"に設定し、 "再帰的"チェックボックスをチェックしてください。
ビルドされたターゲットは、ワークスペースの共有ビルドディレクトリを検索してリンク可能なヘッダーファイルを見つけます。
====
更新
私は最近似たような(少し異なるが)問題を抱えていた。 .xcodeproj
ファイルではなく.xcworkspace
ファイルを開いたため、XcodeはPodを見つけることができませんでした。将来他の人を助けるかもしれません。
上記のどれでもうまくいかず、Podfileでuse_frameworks!
に切り替えただけでこのエラーが発生した場合は、次のように読み替えてください。
私は上のすべての解決策を試しましたが、私の特定のケースでは検索ヘッダーパスに関するものではないことを学ぶ前に、もっと多くのことを試しました。 Podfileでuse_frameworks!
に切り替えたときに、ブリッジングヘッダにフレームワークを含める必要がなくなり、実際にXcodeは非常に役に立たない「ヘッダを見つけることができません」エラーをスローします。
あなたがする必要があるのはあなたのブリッジングヘッダファイルからすべてのインポートを削除して、代わりにあなたの個々のSwiftファイルでSwift import Module
を使うことです。
また、Obj-Cクラスでフレームワークヘッダーを使用している場合(私の場合はFBSDKを使用した便利なクラスがあります)、ローカルインポートからグローバルインポートに変更する必要があります(これは#import "Module.h"
を#import <Module/Module.h>
に変更することを意味します)。フレームワーク名を入力し始めると、あなたのためにオートコンプリートするべきです(私の場合は<AFNetworking/AFHTTPRequestOperationManager.h>
)。
編集:私はそれ以来@import Module
を行うことはさらに安全であるアンブレラファイルを使用することを学びました。
あなたはCocoapodsスタイルをインポートしてみましたか?
#import <ASLogger.h>
サイト上の情報はあまり明確ではない、私はプルリクエストを送信しました:
https://github.com/CocoaPods/cocoapods.org/pull/34
更新:彼らは私の要求を引っ張りました:)
wiki はこの問題を解決する方法についてアドバイスを与えます:
Xcodeが依存関係のヘッダを見つけられない場合:
PodヘッダーファイルがPod/Headersで正しくシンボリックリンクされていて、HEADER_SEARCH_PATHSを上書きしていないかどうかを確認してください(#1を参照)。それでもXcodeがそれらを見つけることができない場合は、最後の手段としてインポートを追加することができます。 #import "Pods/SSZipArchive.h".
私はチーム内で同じ問題を抱えている唯一の開発者でした。それはすべての人にとって完璧に機能したので、自分の環境でなければならないことに気付きました。私は別のディレクトリで同じプロジェクトのgit clone
を試して、それが完全にコンパイルされた、そしてそれから私はそれが私のプロジェクトパスのどこかへのXcodeキャッシングものでなければならなかったことに気づいた。あなたのプロジェクト、それは私のために働いた。
次のようにしてパスを取得したり、Finderでフォルダを開くこともできます。
Xcode - > Preferences - > Locations - > ** DerivedData
私は自分のビルド設定で以下のことを更新します、そして私はエラーを得ませんでした。あなたのカカオポッドを更新している間これらをチェックすることは事柄です。
ビルド設定
ビットコードを有効にする - YES(ビットコードを使用している場合)
マクロプリプロセッサ - $(継承)
その他のリンカーフラグ - objc、-lc ++、$(継承)
ビルドアーキテクチャーのみ
デバッグ - はい
関連 - いいえ
検索パス
フレームワーク検索パス - $(継承)$(PROJECT_DIR)
ライブラリ検索パス - $(継承)
ヘッダ検索パス - $(継承)
"pod install"または "pod update"の後にビルドエラーが発生した場合は、ポッドの1つがXCode)でビルドされている可能性があります。 6.あなたがまだ以前のバージョンを使っている間。
私の場合は、Xcode 6.3を使用して問題を解決するために、OSXをマーベリックからYosemiteに更新する必要がありました。
私は同じ問題を抱えていますが、上記の解決策は機能しません。私はこれを行うことでそれを修正しました:
そしてそれはうまくいきます。
私にとっては、問題はOther Linker flagsの値にありました。何らかの理由で私は-l"xml2"
-l"Pods-MBProgressHUD"
のようなフラグの中に引用符がありませんでした。
GitハブからZipをダウンロードし、見つからないファイルをPodの対応するパスでFinderにドラッグします。
もう1つの理由は、次のとおりです。すべてのヘッダーパスは問題ないようでしたが、まだコンパイル済み(.pch)ファイルにエラーがあり、Podヘッダーを読み取ろうとしていました。
(#import <CocoaLumberjack/CocoaLumberjack.h>)。
生のビルド出力を見てみると、エラーが原因で、ビルドしているメインターゲットではなく、Watch OS Extension Targetが壊れていることに気付きました。そこ。付随するWatch OSのターゲット設定が.pchファイルをインポートしようとしないことを確認してください(特に、私が行ったようにマスターターゲット設定からインポートを設定した場合)。
私はXcode 5.0のGMシードを使っていましたが、これらの答えのどれもうまくいくことができませんでした。私はすべての答えをSOで試してみました。ヘッダーのインポート(w/cocoapods)について複数の異なる質問をしました。
最終的に私にはうまくいく解決策を見つけました:私はMac AppStore(GM seedの上にインストールされています)でXcode 5.0にアップグレードしました。 。
私はまだ私のシステムにXcode 5のベータ版を持っていました、そして私も同様にそれを削除しました。たぶんそれは2つのことの組み合わせでした、しかしうまくいけばこれは他の誰かに役立ちます。
私にとってうまくいったのは、Podsプロジェクトの選択、Podプロジェクトのターゲットディレクトリのヘッダが欠けているターゲットフレームワークの検索と選択、そしてターゲットのビルド設定の「Architectures」の下の「Build Active Architecture Only」を「No」に設定することでした。
私は、ポッドインストールとしてライブラリを含めることが動的ライブラリを直接助けることを発見しました。たとえば、Firebaseの場合:
pod 'RNFirebase', :path => 'path/to/node_modules/react-native-firebase/ios'
またはASLoggerの場合:
pod 'ASLogger', :path => 'path/to/node_modules/aslogger/ios' // path to header files
HEADER_SEARCH_PATHS
を変更したりハードコーディングしても役に立ちませんでした。それでもエラーが発生する場合は、rm -rf node_modules
やpodファイルを削除する必要はありません。キャッシュをクリアすると便利です。
反応ネイティブのために、私は実行します
rm -rf $TMPDIR/react-native-packager-cache-*
rm -rf $TMPDIR/metro-bundler-cache-*
rm -rf $TMPDIR/metro-*
rm -rf $TMPDIR/react-*
rm -rf $TMPDIR/haste-*
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
npm start -- --reset-cache
Xcodeのために私は~/Library/Developer/Xcode/DerivedData
の中のフォルダーを削除します
答えのどれも私を助けませんでした(私のポッドをすべてのターゲットとリンクさせた、構成設定を正しく構築し、検索パスを正しく設定した "$(inherited)"など)。
標準のinstall/updateコマンドを使用してcocoapodsを最新のデバッグバージョンに更新した後、問題は自動的に解消されました。
gem install cocoapods --pre
または
Sudo gem install cocoapods --pre
(Sudoがインストール中に使用された場合).
それはカカオポッドのバグだったに違いありません。
私にとっては、私のPodsプロジェクトのためのiOSのデプロイメント目標を修正したのは私のプロジェクトよりも低いものでした。私のプロジェクトと同じものにすると、ヘッダーファイルを見つけることができました。
これは私のための答えでした、私はカカオポッドを更新しました、そしてそれがPODS_HEADERS_SEARCH_PATHSをなくしたと思います。私の解決策はこれに似ていたが、私は "$(PODS_ROOT)/ヘッダ"を使用した - Andrew Aitken
この回答をどうもありがとうございました。問題を解決する方法を探すのに苦労しました。どうもありがとうございました。