[Swift] FrameworkプロジェクトにCommonCryptoをインポートする


Obj-cであれば、
#import <CommonCrypto/CommonCrypto.h>
と書けばインポートできました。

一般的なSwiftプロジェクトの場合は、「プロジェクト名-Bridging-Header.h」を作成し、そこに書くことになります。

ですが、Frameworkプロジェクトの場合は、単純にimportしようとすると
No such module 'フレームワーク名'
とエラーが出ます。

SwiftのFrameworkプロジェクトでもこんな感じで、インポートしたいと試行錯誤してみました。
import フレームワーク名

手順は以下のとおりです。

  1. [モジュール名]でフォルダを作成(今回はCommonCrypto)
  2. 1の中に[module.map]ファイルを作成
  3. [module.map]を編集
    module CommonCrypto [system] {
    header "/usr/include/CommonCrypto/CommonCrypto.h"
    link "CommonCrypto"
    export *
    }
  4. Build Settings -> Swift Compiler – Search Paths -> Import Pathsに1の[モジュール名]フォルダまでのパスを追加

これでimport フレームワーク名により、CommonCryptoが使えるようになりました。
試してはいないのですが、他のフレームワークでも同様にimportできるのではと思います。

ios – Importing CommonCrypto in a Swift framework – Stack Overflow

この記事を書いた人

Hoge Huga