This project neatly packs OpenSSL into a dynamic framework for iOS and macOS.
Current OpenSSL version used: 1.1.1m
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.
In your Package.swift
, add 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:
#import <OpenSSL/OpenSSL.h>
You can simply start using OpenSSL APIs as usual.
Byte buffer[128];
int rc = RAND_bytes(buffer, sizeof(buffer));
See example projects under Examples/
.
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: