web-dev-qa-db-ja.com

dyld:シンボルが見つかりません:iOSアプリを実行しようとすると、_NSURLAuthenticationMethodClientCertificate

私のアプリは次のメッセージでクラッシュします:

dyld:シンボルが見つかりません:_NSURLAuthenticationMethodClientCertificate
参照元:/ var/mobile/Applications/C7B596AD-FB09-4685-BDFC-7E955A5DD185/IRON TRAINERS.app/IRON TRAINERS対象:/System/Library/Frameworks/CFNetwork.framework/CFNetwork in/var/mobile/Applications/C7B596AD-FB09-4685-BDFC-7E955A5DD185/IRON TRAINERS.app/IRON TRAINERS(lldb)

ビルドして実行しようとすると。プロジェクトからCFNetworkを削除しても機能しますが、理由はわかりません。

Xcode6Betaをインストールして、プロジェクトを開きました。 Xcode5.1では正常に動作していました。

更新:

Xcode 6を搭載したiOSシミュレーターでは問題なく動作しますが、問題はiOS 7.1.1を実行しているデバイスにあります。

更新2:

以下の選択された回答は私にとってはうまくいきましたが、プロジェクトに明示的に追加された基礎フレームワークが既にありましたが、それを削除して再度追加する必要がありました。少なくとも今のところ、問題は解決しました。 :)

48
Jorge

必要な2つのステップを含めるように編集しました。

  1. プロジェクトにFoundationフレームワークがあることを確認してください。 (確認のために削除して再度追加してください)。
  2. Foundationフレームワークのインクルードがbefore CFNetworkであることを確認してください。

IOS8.0ではヘッダーに含まれるものが変更されているようです(たとえば、glextensionsファイルはトップヘッダーにありません)。 Foundationフレームワークをプロジェクトに明示的に追加すると、正常にビルドされます。もちろん、CFNetworkをオプションにすることは失敗につながり、ビルドエラーの解決策にすぎず、全体的な解決策ではありません。

enter image description here

87
plluke

UIAlertActionでも同様の問題がありました

dyld:シンボルが見つかりません:_OBJC_CLASS _ $ _ UIAlertAction参照元:/ var/mobile/Applications/.... app/...予想される場所:/System/Library/Frameworks/UIKit.framework/UIKit in/var/mobile/Applications/.... app/...

作成UIKit.frameWorkOptionalは私の問題を解決しました。あなたの場合、あなたのCFNetwork.frameworkoptionalはあなたの問題も解決します。

Make your <code>CFNetwork.framework</code> optional

38

XCodeでの並べ替えはうまくいきませんでした。私は、Pods.xcconfigファイルを作成するCocoapodsを使用しています。これにはOTHER_LDFLAGS行があります。置いた -framework Foundation最初のエントリとして、それが私のプロジェクトを機能させました。

OTHER_LDFLAGS = -framework Foundation -ObjC …

(注意:このファイルは、pod update。)

16
Graham Perks

CFNetworkの前にFoundationを持つようにフレームワークを並べ替えます。

これは、Xcode 6の明らかにバグである何かに対する一時的な修正です。

11
Felix Lapalme

WWDCでこの問題に遭遇しました。私は、これがCFNetworkとFoundationの間でいくつかのシンボルを移動することによって引き起こされるSDKのバグであり、次のリリースで解決されると言ったAppleエンジニアと話をしました。場合によっては、フレームワークがインポートされる順序で遊ぶことで回避できますが、常に機能するとは限りません。

6
user2620092

IOS 8.1.3を実行しているデバイスでXcode 6.3を使用してsqlite3を使用しているため、sqlite3 v3.7.13を使用しても同じ問題が発生しました。

C関数sqlite3_errstr()は、sqlite3 v3.7.15で導入されました。

私のコードはsqlite3_errstr()を呼び出していました。

アプリケーションは起動時にクラッシュしていました。

Libsqlite3.dylibを(必須ではなく)オプションとして設定すると、ジョブが実行されました。

2
Nicolas Buquet

同様のエラーが発生しました:dyld:Symbol not found:_ NSDictionary0リンクによって:関連プロジェクトのDeploymentターゲットを同じ値にリセットしてから、8.0いいよ。 ios9.0およびios8.0で何かが変更される可能性があります。そのため、8.0を互換性にしたい場合は、関連するプロジェクトを知っておく必要があります。

dyld:シンボルが見つかりません:___NSDictionary0__ XCode 7およびiOSターゲット9.0のディスカバリドキュメントでgoogle ServiceGeneratorバイナリを使用する場合

1
Huangzy

簡単なClean(shift + cmd + K)が私に起こった数回のトリックでした。

1

CFNetwork.frameworkをオプションにする

0
Vishal Parihar