343

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

  • 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)

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

これは私のポッドファイルです

platform :ios  
dependency 'libPusher', '1.1'

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

4

42 に答える 42

621

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

于 2012-04-03T07:25:38.047 に答える
172

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

target :App do
    …
end

target :AppTests do
    …
end

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

于 2014-04-15T13:25:51.340 に答える
120

私は今日同様の問題に遭遇しました。

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

    ld: library not found for -lPods
    

ソリューション:

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

 pod install

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

于 2013-01-02T12:53:07.163 に答える
74

.xcworkspace開くのではなく、必ず開くようにしてください.xcodeproj

于 2013-01-08T23:03:22.850 に答える
53

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

于 2014-11-04T11:41:21.067 に答える
47

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

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

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

于 2016-01-22T13:16:52.040 に答える
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 Phasesを削除しますLink Binary With Libraries

于 2014-06-21T11:23:10.907 に答える
44

cocoapods v25 /Xcode5でこれに問題が発生した場合

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 update cocoapods

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

于 2013-10-15T09:10:32.913 に答える
40

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

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

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

于 2013-09-24T16:40:42.677 に答える
36

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

Podfile

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

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

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

于 2015-04-06T13:53:04.800 に答える
27

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に正しいgithubURLが含まれていることを確認します。
  • それでも機能しない場合は、XCodeのビルド場所の設定を確認してください。に移動しPreferences -> Locations -> Derived Data -> Advanced、ビルドの場所を「RelativetoWorkspace」に設定します。

スクリーンショット

于 2013-11-30T23:46:19.877 に答える
12

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

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

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

于 2014-02-11T05:58:29.967 に答える
11

すべてのポッドで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これで完了です。

于 2014-01-30T09:53:33.523 に答える
8

Ad-HocおよびAppStoreアーカイブを作成するために、「配布」または同様の構成を作成しましたか?他の多くの人と同じように、私はAppleの推奨事項に従い、「リリース」構成と名付け、「配布」と呼び、それに異なる署名ルールを設定しました。まあ、それは彼らがオーガナイザーにスキームと「配布」オプションを導入する前の推奨事項だったのかもしれませんが、とにかく、私は以前からそれを持っていました。

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

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

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

アップデート CocoaPodsの開発者から回答 がありましたポッドの構成が適切に設定されていたため、うまくいかないようです。しかし、それは他の誰かを助けることができます。

于 2012-05-23T03:58:03.007 に答える
8

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

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

于 2013-05-29T00:00:30.523 に答える
5

「ライブラリ検索パス」(「MyProject」のビルド設定内)を「ポッド/ビルド/デバッグ-iphonesimulator」に追加するだけでうまくいきました(シミュレーターを使用している場合)。

ここから入手: https ://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

于 2013-02-13T23:38:49.633 に答える
4

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

于 2013-09-22T22:13:32.433 に答える
4

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

于 2014-07-08T16:42:47.847 に答える
3

私はここですべての答えを調べましたが、私にとってはめちゃくちゃ簡単でした...[ターゲット]->[ビルドフェーズ]に移動し、libPods-YourProject.aを削除してから、「+」を使用して再度追加します。ライブラリが赤くなることを心配する必要はありません。問題ありません。

于 2014-08-20T19:30:59.390 に答える
3

cocoapodsを更新した後、古いバージョンのcocoapodを使用しました。久しぶりに更新するため、メジャーアップデートのためにインストール済みのポッドを更新することをお勧めします。私はそれを更新し、新しいバージョンのポッドは正常に更新されました。しかしその後、私は次のようなエラーが発生しました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"、機能しました。

この背後にある完全な理由はわかりませんが、これが誰かを助けるかもしれません。

于 2016-06-15T05:53:07.350 に答える
3

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

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

私の問題を解決します。

于 2018-10-12T06:17:45.197 に答える
2

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

  • cocoapodsのインストールを更新します。($ [sudo] gem install cocoapods)
  • プロジェクトの下に依存関係を再インストールします。(ポッドインストール)
  • クリーンアップして再構築/アーカイブします。
于 2013-09-25T11:26:34.437 に答える
2

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

于 2013-11-27T08:25:08.593 に答える
2

ここに書かれていることは何も私を助けませんでした-しかしそれは私を正しい道に導きました。私がやったことは次のとおりでした:

  1. エラーメッセージを分析します。

    それは言うLibrary not found: -lPods-..。したがって、その特定のライブラリを見つけることができません。それを解決する方法は?このライブラリが検索パスにあることを確認してください。では、このライブラリはどこにありますか?

  2. ライブラリが配置されている場所を検索します。

    フォルダfind . | grep -e 'Pods-.*\.a'に端末を入力しました。~/Library/Developer/Xcode/DerivedDataたとえば、自分のlibPods-... 図書館がたくさんの場所にあることがわかりました。~/Library/Developer/Xcode/DerivedData/[generated-name]/Build/Products/Release-iphonesimulator/libPods-[name].a

  3. これらのフォルダの1つをライブラリ検索パスに追加します

    これらのフォルダの1つをライブラリ検索パスに追加すると、問題は解消されます。ただし、私の場合、すべてのパスに[generated-name]フォルダがあります[Project]-guyraaahpczkqmhghlwgsdsqyxxs

    では、責任を持ってそのフォルダを検索パスに追加するにはどうすればよいでしょうか。ビルド時間変数を使用することによって!この答えを見れば、どの変数が存在するかのリストを得ることができます。定義されている変数の1つがと呼ば${PODS_CONFIGURATION_BUILD_DIR}れていることがわかり、その正確なフォルダーにmylibPods-[Product].aがあります。

  4. 次に、そのフォルダをライブラリ検索パスに追加します。

    これは簡単な部分であり、この質問に対する私の実際の答えです。[ビルド設定] ->[検索パス]-> [ライブラリ検索]に移動し、折りたたまれていることを確認して、 <複数の値>をダブルクリックします。

    ポップアップ表示されるダイアログで、左下の小さな「+」記号をクリックします。ここ"${PODS_CONFIGURATION_BUILD_DIR}"で、と入力し、ドロップダウンオプションを「非再帰的」のままにします。<Enter>と入力します。次に、このエントリを最後までドラッグして、の真下に配置し$(inherited)ます。

  5. 完了です。製品を再構築してください!

    私のエラーは今や消えていました。この答えに賛成し、タブを閉じて、これまでに存在した問題を忘れてください

于 2020-08-18T07:34:15.567 に答える
1

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

要約すると、2つの方法が私のために働きます:

  1. 「設定->場所->詳細」を「カスタム(ワークスペースに対して)」に設定または
  2. Podfileをに設定します- platform :ios, :deployment_target => "5.0"
于 2013-07-31T07:46:40.383 に答える
1

iOS7でのXcode5の使用

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

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

于 2013-10-09T00:32:12.783 に答える
1

iOS7とXcode5を使用している場合は、次のようにします。

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

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

于 2014-04-30T10:36:04.293 に答える
1

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

  1. ワークスペースを使用しています。
  2. Podsライブラリがビルドされます。
  3. Podsライブラリは、プロジェクトの製品グループで参照されます。
  4. ターゲットには、フレームワーク構築フェーズとのリンクにポッドライブラリが含まれています。
于 2014-06-05T14:20:57.797 に答える
1

試す

link_with'YouTarget1'、'YouTarget2'..。

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

どうやら、今では最初のターゲットに接続するだけで、リンクには次のように書かれています。

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

于 2014-10-28T16:04:06.373 に答える
1

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

pod update

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

于 2016-08-29T10:45:19.497 に答える
0

xcodeprojファイルの代わりにxcworkspaceファイルを開いてみてください

于 2013-05-11T04:23:55.380 に答える
0

私の場合、このリンクのFAQのnr 4が役に立ちました: https ://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods

問題が解決しない場合は、さらにいくつか試してみることができます。

于 2013-06-12T16:55:21.677 に答える
0

some_project.workspaceファイルの名前をsome_project.workspace.backupに変更し、$podinstallを実行しました。新しいワークスペースファイルが作成され、エラーは解消されました。

于 2013-09-12T03:41:16.613 に答える
0

私もそれを持っていました、Cocoapodsバージョン0.28.0

ここで簡単に修正でき、長時間読む必要はありません:-Cocoapods(コマンドラインまたはAppCode)をアンインストールします-Podfile、Podfile.lock、Podsフォルダーを消去します

  • Cocoapodsを再インストールします
  • 新しく作成したワークスペースを開始します。
于 2013-11-27T23:48:36.867 に答える
0

私も同じ問題を抱えていました。私の場合、それはxCodeのバグであることが判明しました。私がしなければならなかったのは、「有効なアーチ」を削除し、クリーンを実行し、それらを再度追加することだけでした。また、一般的に更新されたココアポッドを試してください。

于 2014-01-21T22:41:26.320 に答える
0

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

  • cocoa podsの更新:sudo gemcocoapodsの更新
  • ポッドの更新:ポッドの更新
  • ポッドで、[ビルド設定]> [アーキテクチャ]に移動し、ここで[アーキテクチャ]と[有効なアーキテクチャ]をメインプロジェクトとまったく同じ値に設定します。
于 2014-04-01T10:56:24.173 に答える
0

@ i4niacの答えを単純化するには:

これのもう1つの一般的な原因は、スキームのビルド構成の不一致です。私たちの場合、「AppName-AppStore」スキームでは、アーカイブビルド構成として「AppStore」ではなく「Release」が使用されていました(他の人にとっては逆の場合もあります)。

于 2015-08-10T18:42:04.883 に答える
0

に欠けlibPods.aていたtargetので、最初に行うことは、リンクされたフレームワークとライブラリに追加することです。

次に、 Product- > Build for-> Profiling (または、libPods.aを追加する前に、完全に欠落している場合)

最後に、ビルドフェーズでPodsリソースのコピースクリプトを確認します(2番目のターゲットと同じ場合-Podfileとそのターゲットに依存する場合があります)。次に、正常にビルドする必要があります。

于 2015-12-05T10:16:10.473 に答える
0

ポッドを作成して独自のポッドを作成し続けるという問題が発生しました.xcworkspace(ライブラリがアタッチされる場所はどこですか)。

解決

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

于 2017-04-19T15:24:04.887 に答える
0

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

于 2017-12-21T09:59:07.857 に答える
-1

私はすべての答えに飽きてしまい、最終的にポッドライブラリをXcodeビルドスキームに追加することで修正できました。実行できた後、ビルドスキームからこれを削除しようとしましたが、それでも問題なく動作しました。正確な理由を理解できませんでした。

于 2015-07-05T11:41:00.740 に答える