web-dev-qa-db-ja.com

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

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

  • Mac OSライオン
  • 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)

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

これは私のPodfileです

platform :ios  
dependency 'libPusher', '1.1'

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

320
angelokh

Xcodeprojではなくワークスペース(CocoaPodsによって生成されたもの)を開いていますか?

595
alloy

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

target :App do
    …
end

target :AppTests do
    …
end

これにより、2つの新しい製品libPods-App.alibPods-AppTests.aがそれぞれ生成され、以前の製品libPods.a廃止されました。両方のターゲットのビルドフェーズ構成のライブラリとのバイナリのリンクセクションからこの製品を削除する必要がありました。

171
Andras Hatvani

私は今日同様の問題に出くわした。

  1. 新しいプロジェクトを立ち上げます
  2. ココアポッドを取り付けました
  3. 既存のPreviewDebugと共に新しい設定Releaseを作成しました。
  4. この新しいPreview設定でコンパイルすると、コンパイラはPodsとリンクできず、次のメッセージを表示します。

    ld: library not found for -lPods
    

ソリューション:

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

 pod install

またして、新しいPreview設定用にcocoapodを設定します。私のプロジェクト、ワークスペース、そしてPodのプロジェクトファイルが更新され、問題は消えました

116
Besi

.xcworkspaceではなく、必ず.xcodeprojを開いてください

64
Michal Gumny

解決策は私のために働いていない、これは本当に耐え難いです、私はそれを削除し、すべてが正常に動作しているファイルlibpods.aがあります(それは赤い色でした)!応援します;)

53
Hemang

私はポッドリストを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.aBuild PhasesからライブラリLink Binary With Librariesを削除してください。

46
Ayush Goel

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

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

通常、cocoapodには、libPods-target.alibPods.aなどのライブラリが1つだけ含まれます。重複を削除して解決しました。

45
Sebastian Hojas

あなたがcocoapods v25/Xcode 5でこれに問題を抱えているなら

Pods Xcodeプロジェクトは、デバッグ設定でONLY_ACTIVE_Archビルド設定をYESに設定するようになりました。あなたはあなたのプロジェクト/ターゲットに同じ設定をしなければならないでしょう、そうでなければ構築は失敗するでしょう。

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

アップデート最新のgem/cocoapodがあることを確認してください

  • 宝石更新システム
  • 宝石アップデートカカオポッド

プロジェクトを再構築するには、Pod Installを使用してプロジェクトを再構築します。

44
johndpope

リンク時にXcodeからエラーが発生した場合ライブラリが-lPodsに見つかりません。暗黙の依存関係を検出しません。

Product> Schemeの編集をクリックします。Buildをクリックします。Podsスタティックライブラリを追加し、それがリストの一番上にあることを確認します。それでうまくいかない場合は、含めようとするスペックのソースがgithubから引っ張った。/Pods /を見てこれを行います。空の場合(そうではない場合)、〜/ .cocoapods/master //。podspecに正しいgitハブURLが含まれていることを確認してください。それでもうまくいかない場合は、XCodeのビルド場所の設定を確認してください。 「設定」 - >「場所」 - >「派生データ」 - >「詳細」の順に選択し、ビルド場所を「ワークスペースに相対的」に設定します。

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

37
HoratioCain

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

ポッドファイル

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

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

LibPods.aを削除したところ、すべてうまくいきました。

36
Khaled Annajar

GitHubに関するCocoaPodsのwikiは その答えをFAQ /に持っています:

  • Product > Edit Schemeに行く
  • Buildをクリック
  • Podsスタティックライブラリを追加し、それがリストの一番上にあることを確認してください。
  • 掃除してもう一度構築する
  • それでもうまくいかない場合は、含めようとしている仕様のソースが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に移動し、ビルド場所を "Relative to Workspace"に設定します。

Screen shot

27

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

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

enter image description here

12
Naloiko Eugene

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

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これで完了です。

11
melle

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

"Unique"(デフォルト)に切り替えると、問題は解決しました。これを行うには、Preferences> Locationsに移動してAdvanced ...ボタンをクリックします。

8
Adam Sharp

Ad-HocやApp Storeのアーカイブを作成するために 'Distribution'または類似の設定を作成しましたか?他の多くの人と同じように、私はAppleの勧告に従い、それを 'Distribution'と名付け、それに異なる署名規則を設定した 'Release'設定と名付けました。とにかく、オーガナイザーにスキームと "Distribute"オプションを導入する前は、おそらくそれがお勧めでした。

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

それでも、私はファイルシステムでそれを見つけることができたけれども、アーカイブはOrganizerに現れなかった、しかしそれは0のサイズを持っていた。

これをすべて修正する最後のステップは、 'Release'設定の "Skip Install"設定を "NO"に変更することでした。ただし、これはメインプロジェクトに対してのみ行う必要があり、Podsプロジェクトに対しては行わないでください。 Podsプロジェクトは「pod install」を実行するたびに生成されるため、Podsプロジェクトはそのままにしておいてください。

更新CocoaPods devsから の回答が得られました 私にはうまくいかないようですPods設定が正しく設定されていました。しかしそれは他の人を助けることができます。

8
i4niac

"Pods/build/Debug-iphonesimulator"に "Library Search Paths"( 'MyProject'のビルド設定)を追加することだけが私のために働きました(シミュレータを使うとき)。

こちらから入手してください。 https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

5
Jan M

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

4
StackRunner

IOS7およびXcode5用にアーカイブしているときにこれらのエラーが発生した場合は、このリンクを参照してください。 Appleがココアポッドに必要なアーキテクチャを削除しているようです https://github.com/CocoaPods/CocoaPods/pull/1352

4

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

このスレッドで答えとして与えられた多くの解決策を試した後、これ以外のものは私のために働きました。それから私は自分のプロジェクト設定に行き、ポッドパスがOther Linker Flagにあった変更であることを知りました

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

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

しかし、新しいポッドはxxxxxpodNameなので、以下のようにOther Linker Flagを新しいものに置き換えました。

ポッドパス-l"xxxxxpodName"に変更しました、そしてそれはうまくいきました。

私はこの背後にある完全な理由を知りませんが、これは誰かに役立つかもしれません。

3
Bhavin_m

私はここですべての答えを調べました、しかし私にとってそれはめちゃくちゃ単純でした...ターゲット - > Build Phasesに行き、そしてlibPods-YourProject.aを削除し、そしてそれから "+"を使ってそれを再び追加してください。ライブラリが赤であることを心配しないでください、大丈夫です。

3
cph2117

私の場合、pod installは配布とリリースの仕組みを作成した後、問題を解決しました。

2
kernix

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

  • あなたのcocoapodsインストールを更新してください。 ($ [Sudo] gem install cocoapods)
  • プロジェクトの下に依存関係を再インストールします。 (ポッドインストール)
  • クリーンアップして再構築/アーカイブします。
2
SarpErdag

あなたがiOS7とXcode 5を使っているならば、してください:

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

やってみる

link_with 'YouTarget1'、 'YouTarget2' ...

私のプロジェクトはうまくいきました、ターゲットは突然コンパイルを止めました。それから "link_with"を追加して通常に戻しました。

どうやら、今は最初のターゲットに接続しているだけなのですが、そのリンクが言っていることです。

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

1
Wagner Sales

IOS 7でXcode 5を使う

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

追加:また、私の場合は、派生データの場所ではありません。私はビルド場所にユニークを選びました。

1
ytbryan

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

まとめると、2つの方法が私には役立ちます。

  1. [設定] - > [場所] - > [詳細設定]を[カスタム(ワークスペースに対して)]に設定します。
  2. Podfileを- platform :ios, :deployment_target => "5.0"に設定します
1
BabyPanda

私は無駄にこのスレッドですべての答えを試してみました。最後に、ターゲットプロジェクトの「Pre-Configuration Build Products Path」とPodsプロジェクトの値を一致させることで、私の問題を解決しました。 2つの異なる出力場所にそれらが構築されていたことがわかりました。このスレッドの他の提案はどれも私にとって意味がありませんでした。 XCodeが便利なエラーの説明(libを使用できない理由、ファイルが見つからない、一致するアーキテクチャが見つからないなど)を提供していただければ幸いです。

1
user3588900

この問題では、システムにすでにpodをインストールしてアップデートしている場合、XcodeはPodsライブラリを見つけることができません。この問題を解決するには、以下の原因が考えられます。

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

それでも問題が解決しない場合は、次のことを試してください。

pod update

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

1
Shobhit C

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

アクティブアーキテクチャのみを構築するYESに設定

私の問題を解決してください。

0
Joeful6

@ i4niacの答えを簡単にするために:

これに対するもう一つの一般的な原因はSchemeのBuild Configurationの不一致です。私たちの場合、私たちの 'AppName-AppStore'スキームは、 "AppStore"の代わりに "Build"をアーカイブビルド設定として持っていました(他の人にとっては逆の方法かもしれません)。

0
yonix

私は自分のプロジェクトと同じアーキテクチャと有効なアーキテクチャをすべてのポッドに設定することでこの問題を解決しました。だから私の場合の穴の解決策は次のとおりです。

  • ココアのさやをアップデートする:Sudo gemココアのさやをアップデートする
  • ポッドの更新:ポッドの更新
  • あなたのPodsであなたのBuild settings> Architecturesに行き、ここでArchitecturesとValid Architecturesをメインプロジェクトと全く同じ値に設定してください。
0
Mumbar

私は同じ問題を抱えていました。私の場合はxCodeのバグであることがわかりました。私がしなければならなかったのは、 "有効なアーチ"を削除し、きれいにし、それらを再追加することだけでした。また、一般的にアップデートされたカカオポッドを試してみてください。

0
anders

私もそうでした、Cocoapodsバージョン0.28.0

ここで簡単に修正、長い読書: - Cocoapodsをアンインストールする(コマンドラインまたはAppCode) - Podfile、Podfile.lock、Podsフォルダを消去する

  • cocoapodを再インストールする
  • 新しく作成したワークスペースを起動します。
0
brainray

私はtargetlibPods.aが欠けていたので、最初にやるべきことはそれをリンクされたフレームワークとライブラリに追加することです

次に、Product - > Build for - > Profilingの順に指定します。 )

そして最後に、Build Podsリソーススクリプトをビルドフェーズでチェックします(2番目のターゲットと同じ場合は、Podfileとそのターゲットによって異なります)。それならあなたはうまく構築するべきです。

0
Jakub Truhlář

some_project.workspaceファイルの名前をsome_project.workspace.backupに変更し、$ podインストールを実行しました。それは新しいワークスペースファイルを作成し、そしてエラーは消えました。

0

私は自分自身の.xcworkspaceを作成したという問題に遭遇しました。それはそれ自身を作成することからpodsを保っていました(それはそれがそれがそれのライブラリを取り付ける場所です)。

溶液

作成した.xcworkspaceを移動してpod installを再度実行し、次に手動で.xcworkspaceと両方のワークスペースを開いて作成した1つの pods をマージしました。あるワークスペースから別のワークスペースにファイルをドラッグします。

0
Jacksonkr

xcodeprojファイルの代わりにxcworkspaceファイルを開く

0
Hoàng Nghĩa

CocoaPodのキャッシュフォルダを削除する〜/ Library/Caches/CocoaPodsとインストールポッドは私にとってはうまくいく。

0
kaushal

私の場合、このリンクのFAQのうち4番目は、 https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods

問題が解決しない場合に試してみることができる追加のことがいくつかあります。

0
user511