33

Cocoapods を使用してDTCoreText ( https://github.com/Cocoanetics/DTCoreText ) をインストールした後、シミュレーターまたはデバイスを実行しようとすると、常にエラーが発生します。

ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos'
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

私の「Link Binary With Libraries」では、「libPods」の部分は赤です:

ここに画像の説明を入力

ここに私のビルド設定があります:

私のプロジェクトの設定:

ここに画像の説明を入力

私のポッドの設定:

ここに画像の説明を入力

編集:

何が問題だったのか正確にはわかりませんが、DTCoreText と Cocoapods をすべて削除し、すべてを再インストールしたときに解決しました。

4

13 に答える 13

37

これも役立つかもしれません:

  1. メイン プロジェクト (ポッドではない) で、メイン ターゲットを選択します。
  2. [ビルド フェーズ] タブに移動します。
  3. バイナリをライブラリにリンクするに移動します
  4. 問題の原因となっているライブラリを削除します (おそらく赤色です)。
于 2015-03-04T08:36:50.493 に答える
29

.xcodeproj ではなく、.xcworkspace ファイルを開いていることを確認してください。

于 2014-11-29T07:11:56.177 に答える
27

リンクされたバイナリには、 と の両方がlibPods.aありlibPods-MyProj.aました。以前に Podfile を更新して 2 つの個別のターゲット (ブリッジングを使用して Swift でテストをコンパイルするため) を持つようにしたため、古いlibPods.a依存関係を手動で削除する必要がありました。

于 2014-12-01T20:24:42.063 に答える
8

Other Linker Flagsビルド設定$(inherited)に欠落していることがわかりました。このオプションを適用すると、私が見ていたライブラリの欠落の問題が修正されました。

于 2015-02-05T16:49:27.033 に答える
5

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

于 2014-07-08T16:50:47.490 に答える
4

ターゲットのビルド設定ページで「ライブラリ検索パス」を探します。Debugのフォルダ名をDebug-iphoneosからDebug-iphonesimulatorに変更

于 2014-06-24T02:18:55.720 に答える
3

不足しているポッド ライブラリが実際にビルドされることを確認します。これを行うには、ビルドスキームを開きます

Product > Scheme > Edit Scheme... > Build

Pods ターゲットを追加し、ライブラリが見つからないことを訴えたターゲットの前に配置します (私の場合、これは UI テストでした。これに何時間も苦労しました...)

于 2016-04-19T12:16:18.467 に答える
2

この問題の原因は非常に多くあります。

以下を確認する必要があります。

  • ビルド設定$(inherited)
  • すべての暗黙的な依存関係を検出する
  • .......

トラブルシューティング: http://guides.cocoapods.org/using/troubleshooting.html

于 2014-12-09T06:50:26.223 に答える
2

私にとってのエラーは、Pods ターゲットに i386 に必要なアーキテクチャ スライスが含まれていなかったことです。そこで、Pods プロジェクト --> Pods-ProjectName ターゲットをクリックし、Build Settings でBuild Active Architecture Only をDebugReleaseの両方で NO に変更しました。これにより、Simulator スライスと Device スライスの両方が確実にビルドされます。シミュレータは i386 アーキテクチャを使用し、実際のデバイスは x86-64 を使用します。したがって、シミュレーターとデバイスへのサイドローディングの両方で実行する場合は、すべての依存プロジェクトのすべての依存ターゲットが両方をビルドしていることを確認する必要があります。

于 2016-07-01T15:17:42.883 に答える