プロジェクトをアーカイブするときにエラーが発生しました。これが私の環境です。
プロジェクトの展開ターゲットは次のとおりです。
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'
エラーの意味がわかりませんか。
Xcodeprojではなくワークスペース(CocoaPodsによって生成されたもの)を開いていますか?
を使用して、Podfileでアプリとテストターゲットを分離しました。
target :App do
…
end
target :AppTests do
…
end
これにより、2つの新しい製品libPods-App.aとlibPods-AppTests.aがそれぞれ生成され、以前の製品libPods.a廃止されました。両方のターゲットのビルドフェーズ構成のライブラリとのバイナリのリンクセクションからこの製品を削除する必要がありました。
私は今日同様の問題に出くわした。
Preview
とDebug
と共に新しい設定Release
を作成しました。この新しいPreview
設定でコンパイルすると、コンパイラはPodsとリンクできず、次のメッセージを表示します。
ld: library not found for -lPods
私がしなければならなかったのは走ることでした
pod install
またして、新しいPreview
設定用にcocoapodを設定します。私のプロジェクト、ワークスペース、そしてPodのプロジェクトファイルが更新され、問題は消えました
.xcworkspace
ではなく、必ず.xcodeproj
を開いてください
解決策は私のために働いていない、これは本当に耐え難いです、私はそれを削除し、すべてが正常に動作しているファイルlibpods.a
があります(それは赤い色でした)!応援します;)
私はポッドリストを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
を削除してください。
古いlibPod.aファイルを指定しました(おそらくターゲットを変更したことが原因です)。
プロジェクト設定 - >ビルドフェーズ - >ライブラリとバイナリをリンクする
通常、cocoapodには、libPods-target.a
やlibPods.a
などのライブラリが1つだけ含まれます。重複を削除して解決しました。
あなたがcocoapods v25/Xcode 5でこれに問題を抱えているなら
Pods Xcodeプロジェクトは、デバッグ設定でONLY_ACTIVE_Archビルド設定をYESに設定するようになりました。あなたはあなたのプロジェクト/ターゲットに同じ設定をしなければならないでしょう、そうでなければ構築は失敗するでしょう。
アップデート最新のgem/cocoapodがあることを確認してください
プロジェクトを再構築するには、Pod Installを使用してプロジェクトを再構築します。
リンク時にXcodeからエラーが発生した場合ライブラリが-lPodsに見つかりません。暗黙の依存関係を検出しません。
Product> Schemeの編集をクリックします。Buildをクリックします。Podsスタティックライブラリを追加し、それがリストの一番上にあることを確認します。それでうまくいかない場合は、含めようとするスペックのソースがgithubから引っ張った。/Pods /を見てこれを行います。空の場合(そうではない場合)、〜/ .cocoapods/master //。podspecに正しいgitハブURLが含まれていることを確認してください。それでもうまくいかない場合は、XCodeのビルド場所の設定を確認してください。 「設定」 - >「場所」 - >「派生データ」 - >「詳細」の順に選択し、ビルド場所を「ワークスペースに相対的」に設定します。
以前にターゲットなしで使用していたターゲットを追加してPodfileを編集したときにも同じ問題がありました。
target 'xxxx' do
pod 'xyz'
pod 'abc'
end
不思議に思った後、私はターゲットのプロパティ>>全般タブ>>リンクされたフレームワークとライブラリのセクションの下に、新しいlibPods-xxxx.aと古いものlibPods.aがあることを発見しました。
LibPods.aを削除したところ、すべてうまくいきました。
GitHubに関するCocoaPodsのwikiは その答えをFAQ /に持っています:
Product > Edit Scheme
に行くBuild
をクリック<Project Dir>/Pods/<Name of spec you are trying to include>
を調べます。空の場合(空にしないでください)、~/.cocoapods/master/<spec>/<spec>.podspec
に正しいgithub URLが含まれていることを確認してください。Preferences -> Locations -> Derived Data -> Advanced
に移動し、ビルド場所を "Relative to Workspace"に設定します。プロジェクトの名前を "Partners"から "NBSelector"に変更しました。
プロジェクトの名前を変更した後、「libPods-Partnersにライブラリが見つかりません」というエラーが表示されました。 Xcodeは古いPartners.aファイルにリンクしようとしていました。名前を変更した後にpodInstalledした場合はそれを削除してください。
すべてのポッドで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
これで完了です。
私の場合、問題はXcodeの派生データの場所が "Legacy"オプションに設定されていることでした。 CocoaPodsターゲット(libPods.a)は正しく構築されていましたが、Xcodeは間違った場所を探していました。
"Unique"(デフォルト)に切り替えると、問題は解決しました。これを行うには、Preferences> Locationsに移動してAdvanced ...ボタンをクリックします。
Ad-HocやApp Storeのアーカイブを作成するために 'Distribution'または類似の設定を作成しましたか?他の多くの人と同じように、私はAppleの勧告に従い、それを 'Distribution'と名付け、それに異なる署名規則を設定した 'Release'設定と名付けました。とにかく、オーガナイザーにスキームと "Distribute"オプションを導入する前は、おそらくそれがお勧めでした。
それから私はポッドと同じ問題を抱えていた。デバッグ時にはすべてうまくいきましたが、アーカイブはリンクエラーで失敗しました。これを試した後、元のプロジェクトのアーカイブ設定を「配布」から「リリース」に変更したところ、リンクエラーがなくなりました。
それでも、私はファイルシステムでそれを見つけることができたけれども、アーカイブはOrganizerに現れなかった、しかしそれは0のサイズを持っていた。
これをすべて修正する最後のステップは、 'Release'設定の "Skip Install"設定を "NO"に変更することでした。ただし、これはメインプロジェクトに対してのみ行う必要があり、Podsプロジェクトに対しては行わないでください。 Podsプロジェクトは「pod install」を実行するたびに生成されるため、Podsプロジェクトはそのままにしておいてください。
更新CocoaPods devsから の回答が得られました 私にはうまくいかないようですPods設定が正しく設定されていました。しかしそれは他の人を助けることができます。
"Pods/build/Debug-iphonesimulator"に "Library Search Paths"( 'MyProject'のビルド設定)を追加することだけが私のために働きました(シミュレータを使うとき)。
こちらから入手してください。 https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
ターゲットとしてポッドを追加するのではなく、「暗黙の依存関係を検索」(製品/編集スキームの下にある)を選択するとこの問題が解決することがわかりました。
IOS7およびXcode5用にアーカイブしているときにこれらのエラーが発生した場合は、このリンクを参照してください。 Appleがココアポッドに必要なアーキテクチャを削除しているようです https://github.com/CocoaPods/CocoaPods/pull/1352
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"
に変更しました、そしてそれはうまくいきました。
私はこの背後にある完全な理由を知りませんが、これは誰かに役立つかもしれません。
私はここですべての答えを調べました、しかし私にとってそれはめちゃくちゃ単純でした...ターゲット - > Build Phasesに行き、そしてlibPods-YourProject.aを削除し、そしてそれから "+"を使ってそれを再び追加してください。ライブラリが赤であることを心配しないでください、大丈夫です。
私の場合、pod install
は配布とリリースの仕組みを作成した後、問題を解決しました。
以下の手順で解決しました。
あなたがiOS7とXcode 5を使っているならば、してください:
やってみる
link_with 'YouTarget1'、 'YouTarget2' ...
私のプロジェクトはうまくいきました、ターゲットは突然コンパイルを止めました。それから "link_with"を追加して通常に戻しました。
どうやら、今は最初のターゲットに接続しているだけなのですが、そのリンクが言っていることです。
IOS 7でXcode 5を使う
これは私が1時間立ち往生した後にしたことです。 [ビルド設定]> [有効なアーキテクチャ]からARM64を削除します。
追加:また、私の場合は、派生データの場所ではありません。私はビルド場所にユニークを選びました。
送信用にアーカイブするときにも同じ問題が発生しました。この問題についての議論はここで見つけることができます: https://github.com/CocoaPods/CocoaPods/issues/155
まとめると、2つの方法が私には役立ちます。
- platform :ios, :deployment_target => "5.0"
に設定します私は無駄にこのスレッドですべての答えを試してみました。最後に、ターゲットプロジェクトの「Pre-Configuration Build Products Path」とPodsプロジェクトの値を一致させることで、私の問題を解決しました。 2つの異なる出力場所にそれらが構築されていたことがわかりました。このスレッドの他の提案はどれも私にとって意味がありませんでした。 XCodeが便利なエラーの説明(libを使用できない理由、ファイルが見つからない、一致するアーキテクチャが見つからないなど)を提供していただければ幸いです。
この問題では、システムにすでにpodをインストールしてアップデートしている場合、XcodeはPodsライブラリを見つけることができません。この問題を解決するには、以下の原因が考えられます。
それでも問題が解決しない場合は、次のことを試してください。
pod update
私のために仕事をしました、これがあなたを助けることを願っています。
ワークスペースを開きましたが、同じエラーが発生しました。
アクティブアーキテクチャのみを構築するをYESに設定
私の問題を解決してください。
@ i4niacの答えを簡単にするために:
これに対するもう一つの一般的な原因はSchemeのBuild Configurationの不一致です。私たちの場合、私たちの 'AppName-AppStore'スキームは、 "AppStore"の代わりに "Build"をアーカイブビルド設定として持っていました(他の人にとっては逆の方法かもしれません)。
私は自分のプロジェクトと同じアーキテクチャと有効なアーキテクチャをすべてのポッドに設定することでこの問題を解決しました。だから私の場合の穴の解決策は次のとおりです。
私は同じ問題を抱えていました。私の場合はxCodeのバグであることがわかりました。私がしなければならなかったのは、 "有効なアーチ"を削除し、きれいにし、それらを再追加することだけでした。また、一般的にアップデートされたカカオポッドを試してみてください。
私もそうでした、Cocoapodsバージョン0.28.0
ここで簡単に修正、長い読書: - Cocoapodsをアンインストールする(コマンドラインまたはAppCode) - Podfile、Podfile.lock、Podsフォルダを消去する
私はtarget
にlibPods.a
が欠けていたので、最初にやるべきことはそれをリンクされたフレームワークとライブラリに追加することです。
次に、Product - > Build for - > Profilingの順に指定します。 )
そして最後に、Build Podsリソーススクリプトをビルドフェーズでチェックします(2番目のターゲットと同じ場合は、Podfileとそのターゲットによって異なります)。それならあなたはうまく構築するべきです。
some_project.workspaceファイルの名前をsome_project.workspace.backupに変更し、$ podインストールを実行しました。それは新しいワークスペースファイルを作成し、そしてエラーは消えました。
私は自分自身の.xcworkspace
を作成したという問題に遭遇しました。それはそれ自身を作成することからpodsを保っていました(それはそれがそれがそれのライブラリを取り付ける場所です)。
作成した.xcworkspace
を移動してpod install
を再度実行し、次に手動で.xcworkspace
と両方のワークスペースを開いて作成した1つの pods をマージしました。あるワークスペースから別のワークスペースにファイルをドラッグします。
xcodeprojファイルの代わりにxcworkspaceファイルを開く
CocoaPodのキャッシュフォルダを削除する〜/ Library/Caches/CocoaPodsとインストールポッドは私にとってはうまくいく。
私の場合、このリンクのFAQのうち4番目は、 https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods
問題が解決しない場合に試してみることができる追加のことがいくつかあります。