OpenSSL

3.1.5004

OpenSSL package for SwiftPM, CocoaPod, and Carthage, multiplatform
krzyzanowskim/OpenSSL

What's New

2024-05-03T10:12:17Z
  • appletv support

OpenSSL-Universal

OpenSSL CocoaPods, Carthage and Swift Package Manager package for iOS, macOS, tvOS, visionOS. A complete solution to OpenSSL. The package comes with precompiled libraries and includes a script to build newer versions if necessary.

The current version contains binaries built with the latest iOS SDK, and the latest macOS SDK for all supported architectures (including macOS Catalyst).

Support & Sponsors

The financial sustainability of the project is possible thanks to the ongoing contributions from our GitHub Sponsors

Premium Sponsors

Emerge Tools is a suite of revolutionary products designed to supercharge mobile apps and the teams that build them.

emerge-tools-black

Architectures

  • iOS with architectures: arm64 + simulator (x86_64, arm64)
  • macOS with architectures: x86_64, arm64 (including Catalyst target)
  • tvOS with architectures: arm64
  • visionOS with archtectures: arm64

Output Formats

Why?

Apple says: "Although OpenSSL is commonly used in the open source community, OpenSSL does not provide a stable API from version to version. For this reason, although OS X provides OpenSSL libraries, the OpenSSL libraries in OS X are deprecated, and OpenSSL has never been provided as part of iOS."

Installation

Build

You don't have to use the pre-built binaries I provide. You can build it locally on your trusted machine.

$ git clone https://github.com/krzyzanowskim/OpenSSL.git
$ cd OpenSSL
$ make

The result of a build process is put inside Frameworks directory.

Hardened Runtime (macOS) and Xcode

Binary OpenSSL.xcframework (Used by the Swift Package Manager package integration) won't load properly in your app if the app uses Sign to Run Locally Signing Certificate with Hardened Runtime enabled. It is possible to setup Xcode like this. To solve the problem you have two options:

  • Use proper Signing Certificate, eg. Development <- this is the proper action
  • Use Disable Library Validation aka com.apple.security.cs.disable-library-validation entitlement

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/krzyzanowskim/OpenSSL-Package.git", from: "3.1.5004")
]

and then as a dependency for the Package target utilizing OpenSSL:

.target(
    name: "MyApp",
    dependencies: [
        .product(name: "OpenSSL", package: "OpenSSL")
    ]
),

CocoaPods

pod 'OpenSSL-Universal'

Carthage

  • If building from source is preferred:
github "krzyzanowskim/OpenSSL"
  • If using a prebuilt framework is preferred:
binary "https://raw.githubusercontent.com/krzyzanowskim/OpenSSL/main/OpenSSL.json"

Authors

Marcin Krzy┼╝anowski

FAQ etc.

Where can I use OpenSSL-Universal?

These libraries work for both iOS and macOS. It is your prerogative to check. Ask yourself, are you trying to write an app for old devices? new devices only? all iOS devices? only macOS?, etc ::

What is XCFramework?

OpenSSL.xcframework is distributed as a multiplatform XCFramework bundle, for more information checkout the documentation Distributing Binary Frameworks as Swift Packages

Description

  • Swift Tools 5.6.0
View More Packages from this Author

Dependencies

  • None
Last updated: Mon May 27 2024 09:03:51 GMT-0900 (Hawaii-Aleutian Daylight Time)