Xcode Swift 中的 7.3 beta 1 与 CommonCrypto

Xcode 7.3 beta 1 vs. CommonCrypto in Swift

我在 Swift 框架中使用 CommonCrypto - 它已经运行良好一年多了。

我使用了在这里找到的解决方案:Importing CommonCrypto in a Swift framework

具体来说,要从 Swift 框架中引用 CommonCrypto,我必须:

在我的框架的 Xcode 项目旁边的名为 CommonCrypto 的文件夹中创建一个 module.map 文件。 module.map 内容:

module CommonCrypto [system]
{
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h"
    link "CommonCrypto"
    export *
}

这很好用;有点复杂 - 但它有效。

但是,在 Xcode 7.3 beta 1 (7D111g) 中,此技术不再有效。

libcommonCrypto.tbd 似乎已从 Xcode-beta.app 中的 $(SDKROOT)/usr/lib/system 中删除。而且我在 iPhoneOS SDK 文件夹结构下的任何地方都找不到它。

所以我得到了这些错误:

ld: warning: directory not found for option '-L/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/system' ld: library not found for -lCommonCrypto for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果用更简单的东西代替疯狂的模块映射业务,那就太好了。例如,只需使用 import CommonCrypto

无论如何,我不确定如何解决这个问题,因此非常感谢您的帮助。

如果解决方案与上一个问题中找到的解决方案有很大不同,我在这里作为一个新问题提出问题,尽管我知道这可能不合适。

看起来解决方案是删除以下行:

link "CommonCrypto"

来自 module.map 文件。