31c401bdf5
SwiftPM only allows major.minor.patch version syntax, but we need to avoid collisions. E.g. OpenSSL 3.2.5 and script version 34 (0-99) normalized_patch = (patch + 1) * 100 + script -> 3.2.634 The +1 is necessary because e.g. 3.2.0 with script 34 would translate to 3.2.34, which collides with OpenSSL versioning. In this scheme, the repo tag will be of the form: - .1xx (for 3.2.0) - .2xx (for 3.2.1) - ... which is reversible to infer the OpenSSL patch. E.g. 3.2.434 - Patch is 434 - OpenSSL patch is 434 / 100 - 1 = 3 - Script version is 434 % 100 = 34 (precondition is 0-99) So 3.2.434 is OpenSSL 3.2.3 with script version 34 |
||
---|---|---|
.github/workflows | ||
Demo | ||
Demo.xcodeproj | ||
Demo.xcworkspace | ||
DemoTests | ||
assets | ||
config | ||
include | ||
scripts | ||
.gitignore | ||
.travis.yml | ||
.version | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
OPENSSL-LICENSE | ||
OpenSSL-Apple.podspec | ||
Package.swift | ||
Podfile | ||
Podfile.lock | ||
README.md | ||
build-libssl.sh | ||
create-openssl-framework.sh |
README.md
OpenSSL-Apple
This is a fork of the popular work by Felix Schulze, that is a set of scripts for using self-compiled builds of the OpenSSL library on the iPhone and the Apple TV.
However, this repository focuses more on framework-based setups and also adds macOS and watchOS support.
Compile library
Compile OpenSSL 3.2.0 for all targets:
./build-libssl.sh --version=3.2.0
Compile OpenSSL 3.2.0 for specific targets:
./build-libssl.sh --version=3.2.0 --targets="ios64-cross-arm64 macos64-x86_64 macos64-arm64"
For all options see:
./build-libssl.sh --help
Generate frameworks
Generate dynamically linked frameworks and a compound XCFramework:
./create-openssl-framework.sh
Original project
Acknowledgements
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (https://www.openssl.org/)