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: