web-dev-qa-db-ja.com

Xcode 6.1とCocoapodsの統合/依存関係エラー--lPods- {Pod Name}のライブラリが見つかりません

OS 10.10 YosemiteとXcode 6にアップグレードしたばかりで、CocoaPods依存関係を持つiOSアプリをビルドするのに問題があります。

クリーンアンドビルドを実行した後、以下のようにApple Mac-O Linker Errorを取得します

Ld /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator/ToWatchList.app/ToWatchList normal i386
    cd "/Users/nick/Dropbox/ToWatchList/ToWatchList App"
    export IPHONEOS_DEPLOYMENT_TARGET=8.0
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk -L/Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator -F/Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator -F/Users/nick/Dropbox/ToWatchList/ToWatchList\ App/Pods/CrashlyticsFramework -F/Users/nick/Dropbox/ToWatchList/ToWatchList\ App -filelist /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Intermediates/ToWatchList.build/Release-iphonesimulator/ToWatchList.build/Objects-normal/i386/ToWatchList.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-AFNetworking -lPods-AuxRepo -lPods-CrashlyticsFramework -lPods-Reachability -lPods-SSKeychain -lPods-SVProgressHUD -lPods-Tapstream -framework CoreGraphics -framework Crashlytics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.0 -lz -lPods -Xlinker -dependency_info -Xlinker /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Intermediates/ToWatchList.build/Release-iphonesimulator/ToWatchList.build/Objects-normal/i386/ToWatchList_dependency_info.dat -o /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator/ToWatchList.app/ToWatchList

ld: library not found for -lPods-AFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

私のプロジェクトでOTHER_LDFLAGS(その他のリンカーフラグ)に何かがあるようです。アプリケーションターゲット->ビルド設定->その他のリンカーフラグに移動してポッドを並べ替え、そのリストの項目を並べ替えると、同じ方法で他のポッドにリンカーエラーを生成させることができます(少なくともAFNetworkingの問題ではありません)。 CocoapodsとXcodeは、他のエラーや警告を生成していません。

これまでのところ、私は試しました:

  • Cocoapodsの最新バージョンへの更新:Sudo gem update cocoapods

  • ポッドファイル内のすべてのポッドをコメント化し、pod updateを実行してそれらをすべて削除し、コメントを外してpod updateを実行して、すべての依存関係を再ダウンロードしてインストールします。

  • ポッドフォルダーとロックファイルを削除してからpod installを実行して、ポッドを最初から再インストールします

残念ながら、これらの手順のいずれもこのエラーを修正しなかったため、プロジェクトに調整が必要なビルド設定があると思いますが、次に何を試すかわかりません。

25
Nick

これを修正するには、削除する必要がありましたlibPods.aApplication Targets-> General-> Linked Frameworks and Librariesの下。それは赤で強調表示されました(不明を意味します)が、それを置き換える必要はありませんでした。単にそれをクリアするだけで十分でした。

29
Nick

.xcworkspaceファイルではなく.xcodeprojファイルを開いていることを再確認してください。これは、この種の問題を引き起こす可能性のある一般的な間違いです。

41
dulgan

私にとっての問題は、私のプロジェクトとCocoapodのビルド構成が一致しないことでした。つまり、コンパイルされたライブラリの異なるディレクトリを探していたのです。

6
Ethan Edgerton

同じ問題がありました。

私の問題は、ターゲットの「アクティブアーキテクチャの構築」であり、ポッドターゲットが完全に一致していませんでした。

それらを同一にした後、問題は解決されました。

1
Will
  1. 「プロジェクトターゲット->ビルド設定->前処理->プリプロセッサマクロ」に移動します。 「プリプロセッサマクロ」のすべてのデバッグ、統合、リリースで「COCOAPODS = 1」を設定します

  2. 「プロジェクトターゲット」の下の「その他のリンカーフラグ」に以下を追加します$ inherited -ObjC -lc ++ -all_load

  3. Deploymentターゲットを7.0から8.0にアップグレードし、use_frameworksを有効にした後も同じ問題が発生しました。

0
Bejibun