This project neatly packs OpenSSL into a dynamic framework for iOS and macOS.
Current OpenSSL version used: 1.1.1
You have a few different options:
- Include the OpenSSL.xcodeproj as a dependency in your project. This is what the projects under
Examples/are doing. Doing this means OpenSSL will be compiled alongside your project, including after every clean (building OpenSSL can take a while).
- Use a pre-built OpenSSL.xcframework. You can find them under Releases.
OpenSSL as a dependency:
dependencies: [ .package(url: "https://github.com/OuterCorner/OpenSSL", from: "1.1.1") ],
Associate the dependency with your target:
targets: [ .target(name: "App", dependencies: ["OpenSSL"]) ]
After importing the umbrella header:
You can simply start using OpenSSL APIs as usual.
Byte buffer; int rc = RAND_bytes(buffer, sizeof(buffer));
See example projects under
When including this framework in your project you'll have to set Allow Non-modular Includes In Framework Modules to YES.
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
This is needed because the current version of OpenSSL's public headers reference system headers.
This project is licensed under the MIT License - see LICENSE.
Note the underlying OpenSSL library LICENSE still applies when using this project.
The build scripts for this project were based on: