ios - Importing CommonCrypto in a Swift framework - Stack Overflow より
- Appleが解説しているのはObjective-Cなframeworkを使用するケース
- CommonCryptoはPure Cなdylibなので同じ方法では不可能
CommonCrypto.frameworkを自分で作る。
-
あなたのframeworkプロジェクト内にCocoa Touch Frameworkプロジェクトを作成する
-
プロジェクトの名前を
CommonCrypto
にする -
自動生成されるUmbrellaヘッダは削除して良い
-
modulemapファイルを作る
- iphneos.modulemap
module CommonCrypto [system] { header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h" export * }
- iphonesimulator.modulemap
module CommonCrypto [system] { header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h" export * }
- macosx.modulemap
module CommonCrypto [system] { header "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/CommonCrypto/CommonCrypto.h" export * }
-
xcconfigファイルを作成する
MODULEMAP_FILE[sdk=iphoneos*] = $(SRCROOT)/CommonCrypto/iphoneos.modulemap MODULEMAP_FILE[sdk=iphonesimulator*] = $(SRCROOT)/CommonCrypto/iphonesimulator.modulemap MODULEMAP_FILE[sdk=macosx*] = $(SRCROOT)/CommonCrypto/macosx.modulemap
-
xcconfigをDebug/Release両Configurationに設定する (Project > Info > Configurations)
-
あなたのframeworkプロジェクトのBuild Phases > Target DependenciesにCommonCrypto.frameworkを追加する
-
あなたのframeworkプロジェクトのソースで
import CommonCrypto
とすれば CommonCrypotの関数が使える
以上で、ビルドは通る。
審査に注意? > Nested sqlite3 framework causing app store rejection · Issue #88 · stephencelis/SQLite.swift