Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Themis CocoaPods now support CLOpenSSL-XCF #828

Merged
merged 11 commits into from
May 26, 2021
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@

Changes that are currently in development and have not been released yet.

## [0.13.10](https://github.com/cossacklabs/themis/releases/tag/0.13.9), May 26th 2021
ilammy marked this conversation as resolved.
Show resolved Hide resolved

**Hotfix for Apple platforms:**

- `themis` for CocoaPods now uses OpenSSL 1.1.1k ([#828](https://github.com/cossacklabs/themis/pull/828)) and supports ARM64 simulator.
ilammy marked this conversation as resolved.
Show resolved Hide resolved

_Code:_

- **Objective-C / Swift**

- `themis` for CocoaPods now uses OpenSSL 1.1.1k ([#828](https://github.com/cossacklabs/themis/pull/828)) and supports ARM64 simulator.
ilammy marked this conversation as resolved.
Show resolved Hide resolved

## [0.13.9](https://github.com/cossacklabs/themis/releases/tag/0.13.9), May 14th 2021

**Hotfix for Apple platforms:**
Expand Down
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ let package = Package(
targets: [
.binaryTarget(name: "themis",
// update version in URL path
url: "https://github.com/cossacklabs/themis/releases/download/0.13.9/themis.xcframework.zip",
url: "https://github.com/cossacklabs/themis/releases/download/0.13.10/themis.xcframework.zip",
// The scripts/create_xcframework.sh calculates the checksum when generating the XCF.
// Alternatively, run from package directory:
// swift package compute-checksum build/xcf_output/themis.xcframework.zip
checksum: "5e1e3bb83cf18465e3705dd333fd94510c5a8464680d43025331efa8c999df23"),
checksum: "2c77a19be873f306ed0fc997794d564f0ff32633c3596b81e8bb9d684ccfc049"),

]
)
8 changes: 4 additions & 4 deletions Themis.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1549,7 +1549,7 @@
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEFINES_MODULE = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
Expand Down Expand Up @@ -1578,7 +1578,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 0.13.9;
MARKETING_VERSION = 0.13.10;
PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis;
PRODUCT_MODULE_NAME = themis;
PRODUCT_NAME = themis;
Expand All @@ -1598,7 +1598,7 @@
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 9;
CURRENT_PROJECT_VERSION = 10;
DEFINES_MODULE = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
Expand Down Expand Up @@ -1627,7 +1627,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 0.13.9;
MARKETING_VERSION = 0.13.10;
PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis;
PRODUCT_MODULE_NAME = themis;
PRODUCT_NAME = themis;
Expand Down
14 changes: 4 additions & 10 deletions themis.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "themis"
s.version = "0.13.6"
s.version = "0.13.10"
s.summary = "Data security library for network communication and data storage for iOS and mac OS"
s.description = "Themis is a convenient cryptographic library for data protection. It provides secure messaging with forward secrecy and secure data storage. Themis is aimed at modern development practices and has a unified API across 12 platforms, including iOS/macOS, Ruby, JavaScript, Python, and Java/Android."
s.homepage = "https://cossacklabs.com"
Expand All @@ -23,8 +23,8 @@ Pod::Spec.new do |s|

# This variant uses the current stable, non-legacy version of OpenSSL.
s.subspec 'openssl-1.1.1' do |so|
# OpenSSL 1.1.1h
so.dependency 'CLOpenSSL', '1.1.10802'
# OpenSSL 1.1.1k
so.dependency 'CLOpenSSL-XCF', '1.1.11101'

# Enable bitcode for OpenSSL in a very specific way, but it works, thanks to @deszip
so.ios.pod_target_xcconfig = {
Expand All @@ -34,13 +34,6 @@ Pod::Spec.new do |s|
'BITCODE_GENERATION_MODE[config=Debug]' => 'bitcode-marker'
}

# As of version 1.1.10801, the framework produced by CLOpenSSL does not
# contain arm64 slice for iOS Simulator since it conflicts with arm64
# slice for the real iOS. Fixing this requires migration to XCFrameworks.
# See T1406 for current status of XCFrameworks.
so.ios.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
so.ios.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

# We're building some C code here which uses includes as it pleases.
# Allow this behavior, but we will have to control header mappings.
so.ios.xcconfig = {
Expand Down Expand Up @@ -103,6 +96,7 @@ Pod::Spec.new do |s|
# arm64 slices for iOS Simulator and macOS, and thus do not support
# Apple Silicon. Disable building Themis for Apple Silicon until
# GRKOpenSSLFramework gets proper arm64 support.
# Update: 1.0.2.20.2 still with no arm64 simulator support
so.ios.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
so.ios.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
so.osx.pod_target_xcconfig = { 'EXCLUDED_ARCHS' => 'arm64' }
Expand Down