-lPodsのライブラリが見つかりません


334

プロジェクトのアーカイブ中にエラーが発生しました。これが私の環境です。

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

プロジェクトのデプロイメントターゲットは次のとおりです。

IPHONEOS_DEPLOYMENT_TARGET 3.2

エラーが表示されます:

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

ポッドは、XCodeプロジェクトの依存関係を管理するために使用したCocoaPodsだと思います。 https://github.com/CocoaPods/CocoaPods

これは私のPodfileです

platform :ios  
dependency 'libPusher', '1.1'

エラーの意味がわかりません。


回答のいずれもカバーしていない問題の原因。ここでは、この答えを確認してください。stackoverflow.com/questions/24050012/...
ハサン・

回答:


611

xcodeprojの代わりに(CocoaPodsによって生成された)ワークスペースを開いていますか?


26
やった。この問題は、ポッドプロジェクトのリリースアーキテクチャを「armv6 armv7」に変更すると解決します。
angelokh

10
なるほど、あなたの中にPodfile、そのようなプラットフォームを指定しますplatform :ios, :deployment_target => "3.2"。これで、次回の実行時に正しく構成されますpod install
合金化

248
初心者でもわかりやすいように、.xcworkspaceではなくファイルを開く必要があります.xcodeproj。このようにして、プロジェクトに加えて、XcodeはPods/ディレクトリ内のプロジェクトとビルド方法を認識しますlibPods.a
Jonathan Tran 2013

13
@JonathanTranのコメントに続きます... .xcodeproj開いている場合は、.xcworkspaceファイルを開く前に閉じる必要があります。
ロス

4
ポッドを使用しているプロジェクトでも、アーキテクチャがarmv6 armv7に設定されている必要があります(ポッドプロジェクトアーキテクチャで使用しているオプションの場合)。そうしないと、まったく同じエラーが発生します。
Patrick Bassut、2014年

173

を使用して、Podfileでアプリとテストターゲットを分離しました

target :App do
    
end

target :AppTests do
    
end

これにより、2つの新しい製品libPods-App.aおよびlibPods-AppTests.aがそれぞれ生成され、以前の製品libPods.aは廃止されました。私がこの製品を削除しなければならなかったリンクのバイナリとライブラリのセクションビルドフェーズの両方のターゲットの設定。


3
はい、これは私にとってこれで終わりです。このスレッドで以前に他の多くのことを試した後です。上記のように私のpodfileには2つのターゲットがあるため、libPods.aはビルドされませんでした。「固定」のリンクバイナリとライブラリ]セクションから削除libPods.aこと(もちろん、私は今、行方不明のSQLiteのlibに起因する、通過ソートに32「未定義のシンボル」のメッセージを持っているものの、など
ホット・リックス

これは、stackoverflow.com / a / 21694261/581994およびその他のいくつかと同じ修正です。
ホットリックス2014

現在まだ発生する問題
nsantorello

「以前の製品libPods.aは廃止されました。削除する必要がありました...」
Vassily

これは主に私にとって問題でした。何らかの理由で、古いテストターゲットからのバイナリもそこにありました。
LJウィルソン

119

今日、同じような問題に遭遇しました。

  1. 新しいプロジェクトをセットアップしました
  2. ココアポッドを取り付けました
  3. 私は、新しい構成を作成しPreview、既存のと一緒にDebugし、Release
  4. この新しいPreview構成でコンパイルすると、コンパイラはポッドとリンクできず、次のメッセージが表示されます。

    ld: library not found for -lPods

ソリューション:

私がしなければならなかったことは走ることでした

 pod install

再び、こうして新しいPreview構成のためにcocoapodsを構成します。プロジェクト、ワークスペース、ポッドのプロジェクトファイルが更新され、問題が解決した


1
これも私を捕らえました。特に、構成を作成した後もずっと機能し続け、問題が発生したのは派生データを消去したときだけでした。
Daniel Wood

また、「ポッドインストール--verbose」または「ポッド更新--verbose」の出力の「送信統計」セクションに表示される警告に注意してください。 「...で定義されたビルド設定」または「...ターゲットは、「OTHER_LDFLAGS」ビルド設定をオーバーライドします...」
jk7 2016年

構成ごとのビルド製品パスプレビュー構成を変更してから、ポッドのインストールを行います。ポッドはポッドプロジェクトに私の値を保存しません。
リウプルート

ああ!この問題は、拡張機能の新しい構成を作成した直後に発生していました。最初の3つのステップは問題を理解するのに役立ちます。ありがとう!
iHarshil

70

開くの.xcworkspaceではなく、.xcodeproj


これは私の問題でした。通常のXcodeプロジェクトファイルからプロジェクトを開いていました。ココアポッドの使用を開始したら、.xcodeprojではなく.xcworkspaceファイルからプロジェクトを開く必要があります。
HotFudgeSunday

hehe私はいつもこれをします:)
yeahdixon

THIS THIS THIS THIS
bryan

OMG私はあなたを抱きしめたいです。最初は問題ではなかった多くのことを変更しました!
kjonsson

53

解決策は私にとってうまくlibpods.aいきませんでした、これは本当に耐えられません、ファイルがあります(それは赤い色でした)私はそれを削除し、すべてがうまくいきました!乾杯;)


6
私にも起こりました。ターゲットの名前を変更すると、この問題のあるアーティファクト.aファイルが作成されました。
seenickcode

これを行うと、Cocoapodsを使用して追加したライブラリがプロジェクトに追加されません。
フランシスココラレスモラレス

1
uは私の日を作った:D、2つのターゲットがあり、1つを削除したが、そのポッドはまだ残っており、ビルドに失敗した。そのターゲットのポッドの参照を削除するだけで解決
mohammad alabid

同じことが私にも起こりました。それは私が何年も触れなかった古いプロジェクトでしたが、古い形式のPodfileなどがまだありました。
デパルタメントB

46

ポッドのリストを次のPodfileような異なるターゲットに分けました。

target :ABC do
  pod 'KissXML', '~> 5.0'
  pod 'libPhoneNumber-iOS', '~> 0.7.2'
end

target :ABCTests do
  pod 'OCMock', '~> 2.2.1', :inhibit_warnings => true
end

そして走った pod install

これにより、libPods-ABC.a私のバイナリをリンクする必要がある新しいライブラリが作成されました。しかし、バグは以前のライブラリ、つまりを削除しなかったということでしたlibPods.a

解決策:ライブラリーを取り外しlibPods.aからBuild PhasesLink Binary With Libraries


これは、stackoverflow.com / a
Hot Licksの

2
解決策は異なります。これは、この正確なソリューションを使用して私のためにそれを修正しました。
cynistersix 2015年

ライブラリlibPods.aを削除してから、ポッドインストールで問題を解決してください。
bisma 2016

1
エラーがIPHONEOS_DEPLOYMENT_TARGET = 9.0で「ld:ライブラリが-lPodsに見つかりません」である場合に解決される
jacksonfdam

ターゲットの名前を変更した後、機能します。
alsantos123 2017年

46

古いlibPod.aファイルを指定しました(おそらくターゲットを変更したことが原因です)。

プロジェクト設定 -> ビルドフェーズ -> ライブラリとバイナリをリンク

通常、cocoapodsは一つだけのようなライブラリー、含まれるlibPods-target.aかをlibPods.a。重複を削除して解決しました。


5
これでうまくいきました。私は、テスト対象(*テストおよび* UITests)とから変更基本構成のためのポッドのサポート追加されたPods.debugのをPods-MyApp.debug、今私が唯一の必要性libPods-MyApp.a(古いのアイコンを「色あせ」がありましたlibPods.a)、
ニコラ・Miari

色あせたアイコンはありませんでしたが、これが機能する唯一のソリューションでした。
Yogesh Maheshwari 2016

こっちも一緒。ありがとう
rmvz3 2017

プロジェクト名を変更したところ、エラーが発生しました。上記の解決策は私にとってうまくいきました。
ガネス、

44

cocoapods v25 / Xcode 5でこれに問題が発生している場合

ポッドXcodeプロジェクトは、デバッグ構成でONLY_ACTIVE_ARCHビルド設定をYESに設定します。プロジェクト/ターゲットに同じを設定する必要があります。そうしないと、ビルドが失敗します。

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250

更新最新の宝石/ココアポッドがあることを確認してください

  • 宝石更新システム
  • 宝石更新ココアポッド

ポッドインストールを使用してプロジェクトを再構築し、プロジェクトを再構築します。


非常に古いプロジェクトにCPを追加した後、これで終わりです。
Josh Hudnall、2014

私と同じです-非常に古いプロジェクトにCPを追加しました。シミュレータでビルドできましたが、デバイス用のビルドに切り替えるとすぐにビルドが失敗しました。その答えはとても役に立ちました!
フロリアン

40

リンク時にXcodeが不平を言う場合(たとえば、-lPodsのライブラリが見つからない場合)、暗黙的な依存関係は検出されません。

(製品)>(スキームの編集)に移動します(ビルド)をクリックしますポッドスタティックライブラリを追加し、それがリストの一番上にあることを確認しますクリーンアップして再度ビルドしますそれが機能しない場合は、追加しようとしているスペックのソースが含まれていることを確認しますgithubからプルされました。これを行うには、/ Pods /を調べます。空でない場合(空であってはなりません)、〜/ .cocoapods / master //。podspecに正しいgitハブのURLが含まれていることを確認してください。それでも機能しない場合は、XCodeビルド場所の設定を確認してください。[設定]-> [場所]-> [派生データ]-> [詳細]に移動し、ビルド場所を[ワークスペースを基準]に設定します。

http://docs.cocoapods.org/guides/getting_started.html


3
最初の部分で問題が解決しました(製品>スキームの編集、最初のアイテムとしてビルドにポッドを追加)。ありがとう
William Power

私はcocoapods 0.36.0を備えたxCode 6.3でこの問題を抱えていましたが、これがそれを修正しました。ありがとうございました!
ProgrammierTier

xcode 6.3 cocoapods 0.37と同じ->ありがとう!! 問題はスキームでしたが、ターゲット設定に夢中になりました。ポッドを追加するだけです。
altagir 2015

36

以前にターゲットなしで使用していたターゲットを追加するPodfileを編集したときにも、同じ問題が発生しました。

Podfile

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

不思議に思った後、ターゲットプロパティ>>一般タブ>>リンクされたフレームワークとライブラリセクションの下に、新しいlibPods-xxxx.aと古いlibPods.aがあることがわかりました

libPods.aを削除したところ、すべて正常に動作しました。


それも私にとって問題でした。問題の原因は、開発中にCocoaPodsとPodfileの形式をアップグレードしたことだと思います。
gklka

2
ポッドにターゲットを追加した後も、まったく同じシナリオでした。+1の精度
Adriano Spadoni

27

GitHubのCocoaPodsのwikiのFAQに答えあります

  • に行く Product > Edit Scheme
  • クリック Build
  • ポッド静的ライブラリを追加し、それがリストの一番上にあることを確認します
  • クリーンしてもう一度ビルドする
  • それが機能しない場合は、含めようとしているスペックのソースがgithubからプルされていることを確認してください。これを行うには、を調べ<Project Dir>/Pods/<Name of spec you are trying to include>ます。空の場合は(空であってはなりません)、~/.cocoapods/master/<spec>/<spec>.podspecに正しいgithub URLが含まれていることを確認してください。
  • それでも機能しない場合は、XCodeビルド場所の設定を確認してください。に移動してPreferences -> Locations -> Derived Data -> Advanced、ビルドの場所を「ワークスペースに対して相対的」に設定します。

スクリーンショット


6
私もこの問題に遭遇しましたが、これらの手順を実行できないようです。「ポッドの静的ライブラリを追加し、リストの先頭にあることを確認する」で行き詰まります。クリックしてビルドスキームに追加しても、静的ライブラリが表示されません。何か案が?
ベイフィリップス

@BayPhillips現在のプロジェクトを閉じ、プロジェクトフォルダーに作成された.xcworkspaceを開きます。次に、静的ライブラリが表示されます
Juneho Nam

12

プロジェクトの名前を「Partners」から「NBSelector」に変更していました。

プロジェクトの名前を変更した後、「libPods-Partnersのライブラリが見つかりません」というエラーが発生しました。Xcodeが古いPartners.aファイルにリンクしようとしていました。名前を変更した後でpodInstalledを使用している場合は、削除してください。

ここに画像の説明を入力してください


私の問題の完璧な解決策:)しかし、ポッドを削除した後、使用したい場合は再度追加する必要があります
satheesh

11

すべてのポッドでONLY_ACTIVE_ARCH = NOを使用すると、問題が解決しました。これを永続化するために、post_installフックをPodfileに追加しました。

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
      target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      end
  end
end

pod install これで完了です。


8

「配布」または同様の構成を作成して、アドホックおよびApp Storeアーカイブを作成しましたか?他の多くの人と同様に、私はAppleの推奨に従い、「リリース」構成と呼び、「配布」と呼び、さまざまな署名ルールを設定しました。まあ、多分それは彼らがスキームとオーガナイザの「配布」オプションを導入する前の推奨事項でした、とにかく、私は以前からそれを持っていただけです。

次に、ポッドで同じ問題が発生しました。デバッグ時にはすべてうまくいきましたが、リンクエラーでアーカイブが失敗しました。これを試した後、元のプロジェクトのアーカイブ構成を「配布」から「リリース」に変更したところ、リンクエラーは発生しませんでした。

それでもアーカイブはオーガナイザーに表示されませんでしたが、ファイルシステムで見つけることができましたが、サイズが0でした。

これをすべて修正する最後の手順は、「リリース」構成の「インストールのスキップ」設定を「NO」に変更することでした。これを行う必要があるのはメインプロジェクトのみであり、ポッドプロジェクトではないことに注意してください。「ポッドインストール」を実行するたびに生成されるため、ポッドプロジェクトはそのままにしておくことをお勧めします。

アップデート ちょうどCocoaPods devsから回答を得ました ポッド構成を適切に設定していたので、私にはうまくいかないようです。しかし、それは他の誰かを助けることができます。


8

私の場合、問題はXcodeの派生データの場所が「レガシー」オプションに設定されていることでした。CocoaPodsターゲット(libPods.a)は正しくビルドされていましたが、Xcodeはそれを間違った場所で探していました。

「ユニーク」(デフォルト)に切り替えると問題が解決しました。これを行うには、[設定]> [場所]に移動し、[詳細...]ボタンをクリックします。


しかし、私は「レガシー」を使用する必要がある状況にあり、別の解決策を探し続けます...
CocoaBob



4

「暗黙的な依存関係を検索」(製品/編集スキームの下)を選択すると、ポッドをターゲットとして追加する代わりに、この問題が解決されることがわかりました。


また、ポッドインストールを再度実行すると、これらの手順を実行すると役立ちます。
StackRunner 2014

3

私はここですべての答えを調べましたが、私にとってはめちゃくちゃ簡単でした... Target-> Build Phasesに移動し、次にlibPods-YourProject.aを削除してから、「+」を使用してもう一度追加します。ライブラリが赤くなる心配はありません。問題ありません。


3

cocoapodsを更新した後、古いバージョンのcocoapodを使用しました。長期間更新した後のメジャーアップデートのため、インストールしたポッドを更新することをお勧めします。私はそれを更新し、新しいバージョンのポッドはうまく更新されました。しかし、その後、私はのようなエラーが発生しましたlibrary not found for -lPods-xxxprojectName-xxxxxpodName

このThredでの回答として与えられた非常に多くの解決策を試した後、これのどれも私にはうまくいきませんでした。それから私は私のプロジェクト設定に行って、ポッドパスがオンになっている変更であることがわかりましたOther Linker Flag

Manage Schemesポッド名が正しいOther Linker Flagかどうかを確認し、で比較します。類似していない場合は変更します

古いポッドパスは -l"lPods-xxxprojectName-xxxxxpodName"

でも新しいポッドだけだったxxxxxpodNameのでOther Linker Flag以下のように交換しました

ポッドパスに変更され-l"xxxxxpodName"、動作しました。

私はこれの完全な理由を知りませんが、これが誰かを助けるかもしれません。


3

ワークスペースを開きましたが、同じエラーが発生しました。

ビルドアクティブアーキテクチャのみYESに設定

私の問題を解決します。


それが役立ちます。ありがとうございました。どういうわけか、残りの構成に「NO」が設定されている間のみ、デバッグに「YES」が設定され、Debug以外のすべてのビルドでそのエラーが表示されました。
Pavel Yakimenko、

これは私を助けました。このような「.workspaceとして開く」という答えは退屈すぎます。私は、開発者が最初に徹底的に十分な..ガイドドキュメントをインストールするチェックすべきだと思う
KoreanXcodeWorker

2

以下の手順で解決しました:

  • cocoapodsインストールを更新します。($ [sudo] gem install cocoapods)
  • プロジェクトに依存関係を再インストールします。(ポッドインストール)
  • クリーンして再構築/アーカイブします。

これは実際には非常にうまくいきました。プロジェクトのポッドの1つを更新したところ、それが壊れました。私はこれらのステップに従って、それはうまくいきました。それは簡単な修正でした。ありがとう
agarcian 2013年

2

私の場合pod install、配布とリリースのスキームを作成した後、問題を修正しました。


1

送信用にアーカイブするときに同じ問題が発生しました。この問題に関する議論はここで見つけることができます:https : //github.com/CocoaPods/CocoaPods/issues/155

要約すると、私には2つの方法が有効です。

  1. 「設定->場所->詳細」を「カスタム(ワークスペースを基準)」に設定または
  2. Podfileを - platform :ios, :deployment_target => "5.0"

1

iOS 7でXcode 5を使用する

これは私が1時間立ち往生した後にやったことです。ビルド設定>有効なアーキテクチャからARM64を削除します。

追加:また、私の場合、それは派生データの場所ではありませんでした。ビルドの場所には一意を選択しました。


1

iOS7とXcode 5を使用している場合:

  • ポッドプロジェクトを選択します。
  • ターゲットポッドに移動し、ビルド設定で、[アーキテクチャ]-> [標準アーキテクチャ(armv7、armv7s)]を選択します。
  • ポッドプロジェクトのすべてのターゲットに対して同じことを行います。

1

私は無駄にこのスレッドですべての答えを試してみました。最後に、ターゲットプロジェクトの「事前設定ビルド製品パス」をポッドプロジェクトの値と一致させることで問題を解決しました。2つの異なる出力場所に構築していることがわかりました。このスレッドの他の提案はどれも私には関係がありませんでした。XCodeが有用なエラーの説明を提供した場合、すばらしいでしょう(たとえば、libを使用できない理由-ファイルが見つからない、一致するアーキテクチャが見つからないなど)。


1

この問題では、システムにポッドを既にインストールして更新している場合、Xcodeがポッドライブラリを見つけることができません。この問題を解決するには、次の原因が発生していないか確認してください。

  1. ワークスペースを使用しています。
  2. ポッドライブラリがビルドされます。
  3. ポッドライブラリは、プロジェクトの製品グループで参照されます。
  4. ターゲットのフレームワークビルドフェーズとのリンクにポッドライブラリが含まれています。

1

試す

link_with 'YouTarget1'、 'YouTarget2' ...

私のプロジェクトはうまくいき、ターゲットは突然コンパイルを停止しました。次に「link_with」を追加して通常に戻りました。

どうやら、今では最初のターゲットに接続するだけで、リンクはこう言っています:

http://guides.cocoapods.org/syntax/podfile.html#link_with


これは私のためにそれを修正しました...最初のターゲットがビルドしていて、2番目のターゲットが「ld:-lPodsのライブラリが見つかりません...」で失敗するという問題がありました
Muxor

1

それでもこの問題が発生する場合は、以下を試してください。

pod update

私のために仕事をしました、これがあなたを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.