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を使用)
_FRAMEWORK_SEARCH_PATHS
_がおそらく設定されていないか間違っているため、Xcodeがフレームワークを見つけることができません(_Info.plist
_ファイルを移動したために私に起こりました)。
これを修正するには、ターゲットに移動してビルド設定を調整します。そこで単純に_FRAMEWORK_SEARCH_PATHS
_を検索し、正しいものを追加します。通常は$(PROJECT_DIR)/Carthage/Build/iOS
(iOSプロジェクトの場合)です。 $(inherited)
も最初のエントリとしてそこになければなりません。
これはコメントでの@ user3122959の回答の投稿です。これは、私や他の人がこの問題を解決するのに役立ち、この質問への回答として入力するように要求されました。
このプロセスを試してください-
"Cmd + Shift + K"
または shift + cmd + alt + k
をクリーンアップし、Xcodeを終了します。"rm -rf ~/Library/Developer/Xcode/DerivedData"
ターミナルでre-build
それ私の場合、ビットコードに問題がありましたが、プロジェクトフレームワークの参照も何らかの理由で混乱していたため、Xcodeは正確なエラー診断を行うことができませんでした。フレームワークテストの実行は正常に機能しましたが、アーカイブすると自動リンクエラーが発生しました。
プロジェクトからFrameworks
グループを含むすべてのフレームワーク参照を削除し、それらを再度追加して参照の問題を解決し、ターゲットフレームワークで無効にしたビットコードの問題を取得し、その後のみ、アーカイブは成功しました
1つのワークスペース内でCarthageと複数のプロジェクトを使用している場合、メインCarthageフォルダーにシンボリックリンクを追加する必要があります。それはあなたが持っている構造に依存しますが、例えば
プロジェクト->カルタゴ
プロジェクト->フレームワーク-> MyImbaFrameworkフォルダーのターミナルでcdよりMyImbaFrameworkを実行します
ln -s ../../Carthage Carthage
これは、ビットコードが有効になっているフレームワークをfalseで使用している場合にもエラーになる可能性があります。すべてのフレームワークでビットコードが有効になっている場合にのみ、ビットコードを有効にできます。ターゲットビルド設定に移動し、ビットコードを無効にします。