混合言語フレームワークをプロジェクトにリンクする際に問題があります。
1)SwiftおよびObjective-Cクラスを使用してフレームワークを作成します。
2)メインロジックはSwiftファイルに保存されていました。たとえば、NSLog( "Swift log was called")を呼び出すメソッドを持つクラス。
3)Objective-Cファイルには、Swiftクラスのインスタンスを作成し、Swift-logメソッドを呼び出すメソッドを持つクラスがあります。
4)このフレームワークをObjective-Cプロジェクトにリンクします。このプロジェクトに必要なものはすべて呼び出すことができますが、このプロジェクトをビルドしようとするとエラーが発生します "linker command failed with exit code 1 (use -v to see invocation)
」
そして警告:
ld: warning: Could not find auto-linked library 'swiftFoundation'
ld: warning: Could not find auto-linked library 'swiftDarwin'
ld: warning: Could not find auto-linked library 'swiftCoreFoundation'
ld: warning: Could not find auto-linked library 'swiftCore'
ld: warning: Could not find auto-linked library 'swiftCoreGraphics'
ld: warning: Could not find auto-linked library 'swiftObjectiveC'
ld: warning: Could not find auto-linked library 'swiftDispatch'
ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'
空のSwiftファイルをインポートするソリューションも見ましたが、ゴミを出さずにプロジェクトを作成する必要がありました。
純粋なObjective-Cプロジェクトの場合、この$(TOOLCHAIN_DIR)/usr/lib/Swift/$(PLATFORM_NAME)
をターゲットのライブラリ検索パスに追加する必要があるようです。 Swiftで書かれたライブラリをObjective-Cのプロジェクトに含めると、これがうまくいきました。
これで問題が解決するはずです
XCode 11ベータ4の場合ライブラリ検索パスは次のようになります。
$(TOOLCHAIN_DIR)/usr/lib/Swift-5.0/$(PLATFORM_NAME)
この回避策を試してください https://stackoverflow.com/a/50495316/1658268
基本的に、プロジェクトにダミーのSwiftファイルを追加して、ビルドを再実行します。
Xcodeの設定"コンポーネント"ツールチェーンで構成されたSwift 5.0スナップショットで誤ってプロジェクトをコンパイルしたときに同じエラーが発生しました。
誰もこれを解決できましたか?私はSwift専用プロジェクトで作業しています。
以下のアプローチはどれもうまくいきませんでした:
空のファイルを追加しても機能しません(ブリッジングヘッダーの入力も求められません)
Always Embed Swift Standard Libraries
をYes
に変更しても機能しませんでした
$(TOOLCHAIN_DIR)/usr/lib/Swift/$(PLATFORM_NAME)
または$(TOOLCHAIN_DIR)/usr/lib/Swift-5.0/$(PLATFORM_NAME)
を追加しても機能しなかったなぜこれが起こっているのですか? Xcode 10.3とiOS 12.4.1を使用していますが、実際のiPhoneまたはiPadではなくシミュレーターで正常に動作します
追伸モデレーターが説明なしに私のメッセージを削除できなかったら本当に感謝しています。少なくとも削除するのではなく、少なくとも正しい方向に向けてください。
Xcode 11 beta 4をcarthageと組み合わせて使用しているときにこのエラーが発生した場合は、次の回避策を参照してください。
https://github.com/Carthage/Carthage/issues/2825
基本的に、修正を含むxcconfigを作成し、これらを各ビルドに挿入することで構成されます。