GMOpenSSL
GMOpenSSL copied to clipboard
openssl 1.1.1u 的 framework 版本,发布至 cocoapods,方便集成。
GMOpenSSL
cocoapods 不支持直接集成 OpenSSL,将 OpenSSL 源码编译为 framework,并发布至 cocoapods,名称为 GMOpenSSL,方便通过 cocoapods 集成。
版本映射
GMOpenSSL 版本 | OpenSSL 版本 | 支持架构 | Bitcode | 兼容版本 |
---|---|---|---|---|
3.0.5 | 1.1.1u | x86_64 arm64 | 不包含 | iOS>= iOS 9.0, OSX>=10.13 |
2.2.9 | 1.1.1q | x86_64 arm64 | 包含 | >= iOS 9.0 |
2.2.4 | 1.1.1l | x86_64 arm64 arm64e armv7 armv7s | 包含 | >= iOS 8.0 |
CocoaPods
CocoaPods 是最简单方便的集成方法,编辑 Podfile 文件,添加
pod 'GMOpenSSL'
然后执行 pod install
即可,默认最新版本。
Swift Package Manager
GMOpenSSL 支持 SwiftPM,在工程中使用,点击 File
-> Swift Packages
-> Add Package Dependency
,输入 https://github.com/muzipiao/GMOpenSSL.git,或者在 Xcode 中添加 GitHub 账号,搜索 GMOpenSSL
即可。
如果在组件库中使用,更新 Package.swift
文件:
dependencies: [
.package(url: "https://github.com/muzipiao/GMOpenSSL.git", from: "3.0.3")
],
自定义编译 OpenSSL
如果编译的静态库不能满足需求,可以自行运行脚本编译。工程目录下有一个名称为 OpenSSL_BUILD 的文件夹,依次执行 cd 切换到当前目录下,然后执行make
即可,待执行完毕,即可看到编译完成的 OpenSSL_BUILD/Frameworks/OpenSSL.xcframwork
。静态库在对应平台的 lib 文件夹下,如iphoneos/lib/libcrypto.a
。
编译工程依赖开源项目OpenSSL,由于此项目未暴露国密头文件,本目录与原项目有小量改动;主要改动为将 OpenSSL 源码 include/crypto/ 路径下的 sm2.h、sm3.h,sm4.h 都拷贝至项目。
主要步骤:
- 将
OpenSSL_BUILD/gmheaders
文件夹下头文件夹拖至项目,并设置头文件依赖为public; - 在
OpenSSL_BUILD/support
目录下的OpenSSL.h
中添加下方导入,然后执行make
编译即可;
#include <OpenSSL/sm2.h>
#include <OpenSSL/sm3.h>
#include <OpenSSL/sm4.h>