2016-05-22 11 views
4

私は混合言語フレームワークを構築しています。私は主にSwiftファイルといくつかのObjective-Cファイルを持っています。CommonCryptoを混在言語フレームワークでインポートできません

Objective-Cファイルの1つは、CommonCryptoを使用する暗号クラスです。

Objective-Cフレームワークでインポートすることはできますが、何らかの理由でインポートできないようです。

誰かが私にその理由を説明することはできますか?

私が発見した他のすべてのソリューションは、SwiftでCommonCryptoを使用する方法について、SwiftフレームワークのObjective-Cで使用する必要があるときに話しました。

PS:

  1. 私はそうのような傘のヘッダファイルにインポートを追加してみました:この答えは、問題を解決しませんでしたInclude of non-modular header inside framework module 'name of header'

  2. answer

  3. #import <CommonCrypto/CommonCrypto.h> エラー
+0

インポート指示はどこに挿入しますか? –

+0

@ElTomato私のObjective-cクラスのヘッダー..また、傘のヘッダーを試しました – Fashizel

+0

[バグレポート](http://bugreport.apple.com)を提出してください。これは一般的な問題であり、Appleは何年もCommon Cryptoを無視していますそれはスウィフトでしか悪化していない。 – zaph

答えて

3

この非常に問題が発生しました。これを解決する方法は次のとおりです。

  1. モジュールマップファイル(here's my file)を作成します。
  2. 最新のCommonCrypto.hヘッダーをコピーしてください。
  3. これらのファイルの両方にディレクトリCommonCryptoを作成します。
  4. ディレクトリを(ドラッグアンドドロップで)プロジェクトにコピーします。
  5. ターゲットフレームワークにSWIFT_INCLUDE_PATHSというディレクトリパスを追加します。

これは、あなたが好きな場所あなたが(スウィフト、ないのObjective-Cのため)をimport CommonCryptoを使用できるようにする必要があります。

編集:最初は質問を誤読したようです。 Objective-CでCommonCryptoを使用し、それをSwiftから使用したいとします。ここにいくつかのアドバイスがあります:#import CommonCryptoはあなたのパブリックヘッダーではなく内部的にだけです。 CommonCryptoの公開依存関係が存在しないように、すべての暗号構造をラップして、デフォルトのブリッジ手順でSwiftから使用するだけです。

+0

ありがとう! CommonCrypto.hはどこにありますか?ありがとう – Fashizel

+0

これはobjective-cクラスのために動作しますか? – Fashizel

+0

@Fashizel:そうは思わない。私のアドバイスは、Swiftの暗号クラスを書き直すことです。 –

関連する問題