2017-08-25 3 views
0

この非常に奇妙な問題が発生しています。メソッドが実際に存在していても、インスタンスに送信されたセレクタが認識されない

私はMQTTKitというサードパーティのMQTTクライアントlibを使用しています。私はSSL/TLSを使用してブローカーに接続するMQTTクライアントを構築するためにそれを使用しています。著者は自分のブログで、libをTLSサポートのためのメソッドと一緒に使うつもりなら、ビルド設定にこのマクロをWITH_TLS = 1追加する必要があると言いました。

enter image description here

だから私は彼が言ったことでした。

enter image description here

しかし、私はプログラムをコンパイルして実行すると、私は、TLSをサポートするための方法が認識したことを知らせるクラッシュを得ました。しかし、どのように私は、アプリケーションを構築するときにコンパイラの問題はなかった?それから、ちょうどクラッシュしてセレクタが見つからなかったと言いましたか?私はこれを理解していない。

enter image description here

+0

を再建されました:TLS/SSLのサポート MosquittoサポートTLS/SSLをOpenSSLのではなく、それがiOS版で削除されます。だからあなたはyurselfによってiOSデバイス用のOpenSSL(iPhone、iPad、iPod Touch、AppleTV)をコンパイルする必要があります。 –

+0

OpenSSLの代わりにCommonCryptoでTLS/SSLをサポートする他のライブラリを使用することをお勧めします。 –

+0

@ Cy-4AHはい、私はそれを知っています。私はプロジェクトにOpenSSLを追加しました。 –

答えて

0

問題はlibMQTTターゲットにWITH_TLS=1マクロを設定した後に解決し、MQTTKit`ページ `からlibMQTT.a

3

コンソールのメッセージから、あなたが一度リンクフレームワークとアプリ自体の一部として、別の時間として、あなたのアプリケーションで二回MQTTKitているようで、そのうちの一つは、TLSのサポートなしでコンパイルされて。

これをアプリケーションターゲットから削除し、フレームワークを使用して、そのフレームワークのビルド設定にマクロを追加するか、その逆の操作を行うことができます。

+0

こんにちは、あなたはここにいくつかのポイントを持って参照してください、しかし、私はこれが起こった方法を理解していない。プロジェクトには4つのターゲットがあります。しかし、libMQTT.a(MQTTKitはフレームワークではありません)のためにチェックされたTarget Membershipが1つだけです。だから、なぜ私はMQTTKitが2回あるのか分かりません。 –

+0

こんにちは、私はこの問題を解決しましたが、ここでも私の主な問題は解決していません。認識できないセレクターが引き続き発生します。 –

+0

@finalstatic - 'libMQTT'ターゲットに' WITH_TLS = 1'マクロを設定して、 'libMQTT.a'を再ビルドしましたか? – DonMag

関連する問題