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 *
}
- 在我的框架项目的 Swift 导入路径中,我添加
CommonCrypto
- 在我的框架项目的库搜索路径中,我包括:
$(SDKROOT)/usr/lib/system
- 在我的来源中,我包括:
import CommonCrypto
这很好用;有点复杂 - 但它有效。
但是,在 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 文件。
我在 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 *
}
- 在我的框架项目的 Swift 导入路径中,我添加
CommonCrypto
- 在我的框架项目的库搜索路径中,我包括:
$(SDKROOT)/usr/lib/system
- 在我的来源中,我包括:
import CommonCrypto
这很好用;有点复杂 - 但它有效。
但是,在 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 文件。