如何使CommonCrypto与您自己的Xcode 8 / Swift 3.0框架一起使用

  1. 准备包含模块映射文件,CommonCrypto.xcconfig和Info.plist的“ CommonCrypto”文件夹。 您可以从这里获取或创建自己的文件。
  2. 创建一个新的Xcode项目(跨平台)。
  3. 为您需要的每个平台添加目标。
  4. 在项目设置的“信息”选项卡下,将每个目标的配置都设置为CommonCrypto.xcconfig(用于“调试”和“发布”)。
  5. 在每个目标的“常规”选项卡下,您可能需要选中“仅允许应用程序扩展API”,以确保即使在应用程序扩展中也可以安全地使用框架。
  6. 删除项目中不需要的文件夹,例如“ CommonCrypto-iOS”,“ CommonCrypto-watchOS”,“ CommonCrypto-macOS”和“ CommonCrypto-tvOS”。 同时从项目目录下的文件系统中删除这些文件夹。 您需要的只是包含Info.plist,CommonCrypto.xcconfig和modulemap文件的“ CommonCrypto”文件夹。
  7. 对于每个目标,在“构建设置”下搜索“产品名称”,然后用“ CommonCrypto”(例如,代替“ CommonCrypto-watchOS”)替换在那里看到的内容。
  8. 对于每个目标,在“构建设置”下搜索“产品捆绑包标识符”,并将其替换为所有目标都具有相同的捆绑包ID。 就我而言,我将org.world.CommonCrypto-watchOS(等等)替换为org.world.CommonCrypto。
  9. 对于每个目标,在“构建设置”下搜索“ Info.plist文件”(对于watchOS目标,您将在其中找到“ CommonCrypto-watchOS / Info.plist”之类的东西),因此将其替换为“ CommonCrypto / Info.plist”。
  10. 现在,有两种可能的使用方式:

a)将此CommonCrypto项目作为子项目添加到您的父swift框架中;

b)为每个目标生成二进制文件,从而为每个平台生成CommonCrypto.framework,然后将其* .framework文件及其父文件夹复制到父项目中,方法是将它们拖放到Xcode并应用“如果需要复制项目”复选框(取消选择任何目标成员)虽然)。 如果将它们放在没有文件夹的位置,则Xcode将不允许这样做,因为它们的名称是等效的。

现在,只需在目标swift类中使用import CommonCrypto语句,即可使用基础CommonCrypto C API。

注意:Xcode中没有其他设置被调整,只有上面列出的设置。

截图供参考

链接

模块— Clang 4.0文档
大多数软件是使用许多软件库构建的,包括平台提供的库,内部… clang.llvm.org