web-dev-qa-db-ja.com

自動リンクフレームワークが見つかりません

BTNavigationDropdownMenu(ios用のSwiftプロジェクト)というフレームワークをフォークしました。作成したブランチの最新バージョンに依存関係を追加しようとするまで、すべて正常に機能しました。問題は、他のフレームワーク(DYBadge)をポッドファイルから追加してもCarthageから追加しても同じです。

自動リンクフレームワークが見つかりませんDYBadge

UIViewの一部であるDYBadge拡張に問題があるようです。

DYBadgeは、作業中のメインアプリで正常に動作します(アプリターゲットでも必要です)。

以下のエラー。正しい方向へのヒントをありがとう。

ld:警告:オートリンクフレームワークが見つかりませんSwift.String、at:Swift.Int)->()in BTNavigationDropdownMenu.o ld:symbol(s)not found for architecture x86_64 clang:error:failed:リンカーコマンドが終了コード1で失敗しました(呼び出しを表示するには-vを使用)

9
user3122959

_FRAMEWORK_SEARCH_PATHS_がおそらく設定されていないか間違っているため、Xcodeがフレームワークを見つけることができません(_Info.plist_ファイルを移動したために私に起こりました)。

これを修正するには、ターゲットに移動してビルド設定を調整します。そこで単純に_FRAMEWORK_SEARCH_PATHS_を検索し、正しいものを追加します。通常は$(PROJECT_DIR)/Carthage/Build/iOS(iOSプロジェクトの場合)です。 $(inherited)も最初のエントリとしてそこになければなりません。

これはコメントでの@ user3122959の回答の投稿です。これは、私や他の人がこの問題を解決するのに役立ち、この質問への回答として入力するように要求されました。

14
palme

このプロセスを試してください-

  1. 押す "Cmd + Shift + K" または shift + cmd + alt + kをクリーンアップし、Xcodeを終了します。
  2. キャッシュを削除実行"rm -rf ~/Library/Developer/Xcode/DerivedData"ターミナルで
  3. プロジェクトを開き、re-build それ
1

私の場合、ビットコードに問題がありましたが、プロジェクトフレームワークの参照も何らかの理由で混乱していたため、Xcodeは正確なエラー診断を行うことができませんでした。フレームワークテストの実行は正常に機能しましたが、アーカイブすると自動リンクエラーが発生しました。

プロジェクトからFrameworksグループを含むすべてのフレームワーク参照を削除し、それらを再度追加して参照の問題を解決し、ターゲットフレームワークで無効にしたビットコードの問題を取得し、その後のみ、アーカイブは成功しました

0
Mazyod

1つのワークスペース内でCarthageと複数のプロジェクトを使用している場合、メインCarthageフォルダーにシンボリックリンクを追加する必要があります。それはあなたが持っている構造に依存しますが、例えば

プロジェクト->カルタゴ

プロジェクト->フレームワーク-> MyImbaFrameworkフォルダーのターミナルでcdよりMyImbaFrameworkを実行します

ln -s ../../Carthage Carthage

0
swift2geek

これは、ビットコードが有効になっているフレームワークをfalseで使用している場合にもエラーになる可能性があります。すべてのフレームワークでビットコードが有効になっている場合にのみ、ビットコードを有効にできます。ターゲットビルド設定に移動し、ビットコードを無効にします。

0
Secondwave