OpenSSL-Universal
OpenSSL 用于 iOS 和 macOS 的 CocoaPods、Carthage 和 Swift Package Manager 的包。iOS 和 macOS 上 OpenSSL 的完整解决方案。该包附带预编译库,并在必要时包含脚本以构建更新的版本。
当前版本包含使用最新 iOS SDK (目标 7.0) 和最新 macOS SDK (目标 10.10) 构建的二进制文件,适用于所有支持的架构(包括 macOS Catalyst)。
支持
为了您的便捷,维护这些内容需要一些时间,所以也许您可以赞助 1 美元,这样我就可以继续工作。每天有超过8000个克隆。如果每个月每家使用我在这里的工作的公司都赞助我 1 美元,那么我们就持平了。赶快,找到 赞助 按钮,履行您的职责。
架构
- iOS 支持以下架构:armv7, armv7s, arm64 + 模拟器 (x86_64, arm64)
- macOS 支持以下架构:x86_64, arm64
输出格式
为什么?
苹果表示:“尽管OpenSSL在开源社区中得到广泛应用,但OpenSSL并没有提供从版本到版本的稳定API。因此,尽管OS X提供了OpenSSL库,但OS X中的OpenSSL库已不再推荐使用,并且OpenSSL从未作为iOS的一部分提供。”
安装
构建
您不必使用我提供的预构建的二进制文件。您可以在您信任的机器上本地构建。
$ git clone https://github.com/krzyzanowskim/OpenSSL.git
$ cd OpenSSL
$ make
构建过程的结果放在框架目录下。
加固运行时(macOS)和Xcode
用于Swift Package Manager包集成的二进制文件OpenSSL.xcframework
,如果您使用的应用使用了带有启用加固运行时的本地运行签名证书,则无法正确加载。为了解决这个问题,您有两个选择
- 使用合适的签名证书,例如开发<- 这是正确的行为
- 使用
禁用库验证
即com.apple.security.cs.disable-library-validation
权限
Swift 包管理器
dependencies: [
.package(url: "https://github.com/krzyzanowskim/OpenSSL.git", .upToNextMinor(from: "1.1.180"))
]
CocoaPods
pod 'OpenSSL-Universal'
Carthage
github "krzyzanowskim/OpenSSL"
作者
常见问题等。
在哪里可以使用 OpenSSL-Universal?
这些库适用于 iOS 和 macOS。有两组 OpenSSL 静态库;libcrypto.a
和 libssl.a
。 不要期望这些 OpenSSL 文件能在全世界所有 CPU 架构上工作。这是您自己的责任去检查。问问自己,您是否正在为旧设备编写应用程序?只为新设备?所有 iOS 设备?仅为 macOS?等等:
胖二进制
OpenSSL-Universal框架是一个胖二进制文件。这意味着它在一个文件中支持多种CPU架构。为了理解这一点,请回到终端
。转到您的OpenSSL-Universal macOS文件,并运行命令file libcrypto.a
。这将告诉您文件编译所针对的架构x86_64
。如果您尝试了iOS OpenSSL-Universal文件,它将显示armv7
、armv7s
、arm64
+ 模拟器(x86_64
)。
Xcode 设置
确保Xcode知道;
- OpenSSL静态库的位置。
- OpenSSL头文件的位置,用于C语言包的包含语句。在您的workspace中,转到目标(不是项目)。目标是在成功构建后产生的C应用。选择
构建阶段
和链接二进制与库
。选择+
,导航到框架中包含的静态OpenSSL库。神奇的结果是,您的目标
和构建设置
中的库搜索路径
已自动填充,您无需输入任何内容。现在转到目标。在构建设置
中,将始终搜索用户路径
设置为是
。然后添加一个新的条目到用户头文件搜索路径
。这应该是OpenSSLUniversal中包含的OpenSSL头文件位置。