AdMobにアプリケーションを配置した後のエラー「ライブラリが見つかりません」


150

アプリケーションをAdMobに配置した後、エラーが発生します。アプリは今日まで機能していました。エラーは次のとおりです。

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

どうすれば修正できますか?ありがとうございました。


このお試しください:stackoverflow.com/questions/1471968/...を
NMH


時々:デバイスのプラグを抜き、最初にプロジェクトをビルドします。ライブラリが生成され、デバイスで実行できるようになります。
TheTiger

回答:


114

場合によっては、ライブラリの参照を削除して、再度参照を追加するだけです。

Google Mobile Ads SDKやその他のライブラリを最初から追加し直す以外に、ライブラリ検索パスを確認することをお勧めします。ターゲットをコピーまたは複製する場合があります。Xcodeは、二重引用符を「\」でエスケープする必要があると判断します。すべての\を削除してください。

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

パスの前に複数の「\」を付けることで、エラーを再現できました。


良いもの、ポッドのインストール後、ライブラリの1つがそこにリストされていませんでした。理由はわかりませんが、ライブラリパスを追加すると機能します。
ウェアウルフ2018

これで私の問題「-lARTのライブラリが見つかりません」が修正され、本当に信じられないほどです。ありがとうございました !
ZedTuX 2019年

「ヘッダー検索パス」も検討してください。
Luat Vu Dinh

@rauroraライブラリ検索パスにどのようにアクセスしますか?
Massimo Frittelli

1
@MassimoFrittelliプロジェクト>ビルド設定タブ>検索パス。検索オプションで入力することもできます。
raurora

315

同様の「ライブラリが見つかりません」という問題がありました。ただし、誤って.xcodeprojファイルの代わりにファイルを使用していたため.xcworkspaceです。


4
誰かが.xcodeprojと.xcworkspaceの目的を説明できますか?
EFreak 2018

11
このようなことで、Javascriptエコシステムが好きになりました
Mark

どうすれば変更できますか?
Brayan Loayza

8
xcworkspaceは、Cocoapodsを使用する場合です。Xcodeの問題ではなく、ユーザーの問題です。
Azam

1
.xcworkspaceは、ソリューション内に複数の「プロジェクト」がある場合です。たとえば、外部ライブラリ(cocoapods)や、多くのプロジェクトで使用する独自のライブラリを使用できます。
Daniel Benedykt

86

あなたのターゲットを選択し、に行く"Build Phases""Link Binary With Libraries"削除".a"、そのライブラリのファイル。クリーンとビルド。


3
うん、Xcodeのは、それを着色することにより、それが欠落しているマークを付けていないことを奇妙に十分ではRed
brainray

すごくいい!!私の問題は、古いプロジェクトにユーザーフレームワークを追加したときでした。coreplot.aを削除して正常に動作します!!!!
ホセポーズS

66

Cocoapodsに関連するエラーが次の場合:

library not found for -lPod-...

他のリンカーフラグを確認して、そこから削除する必要があります。

追加情報:ココアポッドを使用する古いプロジェクトがある場合。そして最近、use_frameworksを追加する必要がありました!あなたのポッドファイルに。cocoapodsはライブラリを他のリンカーフラグに追加しなくなり、継承されます。したがって、use_frameworksを使用する前に、追加された他のリンカーフラグからそれらを手動で削除する必要がある場合があります。


1
ここには多くのフラグがありますが、ポッドのフラグをすべて削除するか、1つだけ削除する必要がありますか?
Mayur Deshmukh 2016年

これらのフラグが問題を引き起こす場合。まだ使用したい場合は、それらを削除するか、保持してライブラリを追加する必要があります。
ハサン:

1
ココアポッドによって手動で追加されたライブラリを削除しようとすると、そうなると思います。正しい方法は、podfileからライブラリを削除することです。次に、ポッドインストールを再度実行します
hasan 2016

1
ありがとう!! これは私にとっての手がかりでした:)。私の場合、重複するターゲットは-l「フレームワーク」ごとに「-l」と「フレームワーク」の2行に分割されています!!
Eva Madrazo 2017年

1
@IanSteffyはそれを組み合わせる
Eva Madrazo

57

私の場合はXcode 7Xcode 9.1でも動作しました

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

セットBuild Active architecture OnlyYes

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


2
App Storeの製品ビルドを作成する必要がある場合はどうなりますか?つまり、プロダクションビルドではNOであるべきです。
ジャバー

本番
Ted

2
これは製品ビルドのインストールには影響しませんか?
ジャバー

1
XCode 9.2とiOS 11にPinterest SDKを統合する際に私のために働きました
Aakash Aggarwal

21

これは、cocoapodsを使用している場合に発生し.xcworkspace、デフォルト.xcodeprojファイルの代わりにファイルを使用します。


15

エラーが次のような場合

ld:-lpodsのライブラリが見つかりません

不足しているファイルのように赤い色のファイル「libPods.a」がプロジェクトのフレームワークグループに作成されていることがわかりました。私は単にそのファイルを削除しただけで、すべてがうまくいきました。

編集:別のソリューション

私が同様の質問ですでに回答した別の解決策はこのリンクにあります


12

goto Build Phases-> Binary with Librariesを削除し、ライブラリを削除します。このライブラリはプロジェクトフォルダで利用できないため、エラーが表示されます。


これは私の特定の問題を修正しました。同じような名前のライブラリが2つありました。1つはlibPods-Foo BarTests.a、もう1つはlibPods-FooBarTests.aです。
エデンウェイト2018年

9

これは、ワークスペースではなくプロジェクトファイルを開いた場合にも発生する可能性があります。私はこのように自分自身を一日のように浪費しました。


1
ワークスペースを閉じている間にポッドの更新も行い、ポッドの更新が完了した後に開いた
Badr

5

答えは遅いですが、私が試したもののリストはここにありますので、誰かが問題を修正しようと試みた場合、それは一か所にあります。

  1. 有効なアーキテクチャ= armv7 armv7s
  2. アクティブアーキテクチャのみを構築=いいえ
  3. ターゲット->ビルド設定->その他のリンカーフラグ= $(継承)
  4. ターゲット->ビルド設定->ライブラリ検索パス= $(継承)
  5. 製品のクリーン
  6. ターミナルのポッド更新

2

私の場合、命名の問題がありました。私のライブラリはと呼ばれてios-admob-mm-adapter.aいましたが、Xcodeは名前がプレフィックスlibで始まる必要があると予期していました。libの名前を変更してlibios-admob-mm-adapter.a問題を修正しました。

Cocoapodsを使用しており、ターゲットのビルド設定でライブラリを他のリンカーフラグオプションにリンクしています。旗はこんな感じ-l"ios-admob-mm-adapter"

それが他の誰かを助けることを願って


2

単に、GoogleAdMobAds.aプロジェクトのターゲットにありません。私にとっては、libAdIdAccessLibrary.a添付のスクリーンショットを確認してください

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


2

私にとっては、この問題はIOSのMaterial Libraryをインストールしたために発生します。この問題を解決する

1:ターゲットアプリのビルド設定に移動します。

2:他のリンカーフラグを検索する

3:他のリンカーフラグを開き、エラーで言及されているライブラリを確認します。

4:そのフラグを削除します。

5:クリーンアップしてビルドします。

これで問題が解決することを願っています。


2

ld: library not found for -{LIBRARY_NAME}ライブラリファイルが存在しないために発生した場合。

アプリケーションターゲットの「ビルドフェーズ」ライブラリ検索パスタブでライブラリパスを確認します。

ライブラリファイルのパスは、実際のパスに従っている必要があります。たとえば、プロジェクトのルートにあるファイルの場合、次のようにパスを設定する必要があります。 $(PROJECT_DIR)


1

これは少し古いことはわかっていますが、同様の問題が発生し、「ポッドアップデート」を実行すると、これが修正されました。ライブラリエラーはAFNetworkingで発生しました...

Podファイルで明示的なバージョンを使用しない場合は、Podの更新に注意してください。


1

このエラーは非常に奇妙です。

-ldAfnetworkingでこのエラーが発生し、プロジェクトを別のパスにコピーしてのみ機能します。


1

私は私のビルド構成の名前を変更しようとしたReleaseProductionが、どうやらココアポッドはそれが好きではありません。私は再び名前をに変更しましたがRelease、すべて正常にビルドされます。


podfileでターゲットの名前を変更することもできます。
Romain TAILLANDIER 2017年

1

@rauroraの答えは私を正しい方向に向けました。「watchkitapp Extension / lib」パスにライブラリを含めていました。この場合、ライブラリ検索パスは「\」でエスケープする必要がありましたが、リンカはこれを理解していなかったようです。この問題を修正/回避するには、libパスを1レベル上に移動して、名前にスペースが含まれているディレクトリには存在しないようにしました。



1

プロジェクトで「ポッド更新」を実行すると、「-lSTPopupのライブラリが見つかりません」エラーの問題が解決しました。

Trevor Panhorstの回答について:

「ポッドファイルで明示的なバージョンを使用しない場合は、ポッドの更新に注意してください。」


1

簡単なソリューション。問題を解決する方法は次のとおりです。

  1. ディレクトリに移動します platforms/ios
  2. 次に、コマンドを実行します pod install

それでおしまい。これにより、不足しているライブラリがインストールされます。


1
  1. クリーンアップされたビルドフォルダー
  2. XCodeを再起動しました

離れて行った...


1

Static Library原因はのコンパイル時エラーですStatic Linker

ld: library not found for -l<Library_name>
  1. Library not found forライブラリパスを含めない場合、エラーが発生する可能性があります。Library Search Paths

    ldStatic Linkerライブラリの場所が見つからないことを意味します。開発者は、リンカーを支援して、Library Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. また.xcodeproj、Cocoapodsをサポートする新しいプロジェクト()を初めて開いた場合にも、このエラーが発生する可能性がありますpod update。修正するには、このプロジェクトを閉じて、代わりにワークスペースを開いて作成します(.xcworkspace


0

ライブラリで同様のバグが見つかりませんでした。最終的にこれは私がそれを解決することができた方法です

  1. Xcode Archiveを開始する前に、使用されたフラッタービルドiOS
  2. IOS展開ターゲットをより高いターゲットのiOS 11.2に変更しました。以前は、8.0のようなものがあり、上記のエラーがすべて発生していました。
  3. XcodeのIOS展開ターゲットがプロジェクト、ターゲット、ポッドで同じであることを確認
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.