ios frame特别收藏

Import framework by module map

2017-03-30  本文已影响419人  巴依老爷的锅

一般的Swift项目(Executable)中如需使用Objc库可以使用Bridging Header的方式,然而如果Swift项目是Framework则无法采用此种方式,这时就需要另一种方式:Module Map。
下面以CommonCrypto为例

  1. 在我们的Swift Framework工程中添加一个新的Target, 类型选择Framework,起名为CommonCrypto
  2. 给CommonCrypto添加一个文件,类型选择Other->Configuration Settings File,起名为CommonCrypto.xcconfig,这是一个配置文件,其内容为:
    MODULEMAP_FILE[sdk=iphoneos] = $(SRCROOT)/CommonCrypto/iphoneos.modulemap
    MODULEMAP_FILE[sdk=iphonesimulator
    ] = $(SRCROOT)/CommonCrypto/iphonesimulator.modulemap
    分别对应真机和模拟器上的modulemap文件。
  3. 创建配置文件中引用的modulemap模块文件:
    1. iphoneos.modulemap 内容为:
      module CommonCrypto [system] {
      header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h"
      export *
      }
    2. iphonesimulator.modulemap 内容为:
      module CommonCrypto [system] {
      header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h"
      export *
      }
      如果两个文件内容相同可以使用同一文件,header字段为framework的头文件路径。
  4. 选择我们的Framework Project设置Info->Configurations,找到Target CommonCrypto,将其Debug和Release的Based On Configuration File设置为CommonCrypto,即对应CommonCrypto.xcconfig文件。


    未命名.jpg
  5. 选择我们的Framework Target设置 Build Phases 添加依赖CommonCrypto


    屏幕快照 2017-03-30 下午9.49.28.png
  6. 大功告成
上一篇 下一篇

猜你喜欢

热点阅读