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
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,25 @@

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

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

**Deprecation Notice for CocoaPods users:**
- `themis/themis-openssl` subspec based on GRKOpenSSLFramework is deprecated and will be removed in Themis version 0.14.
- `themis/themis-boringssl` subspec based on BoringSSL is deprecated and will be removed in Themis version 0.14.

Please, switch to the default option in your Podfile: `pod 'themis'`

**Hotfix for Apple platforms:**

- `themis` for CocoaPods now uses XCFrameworks, supports Apple Silicon, and OpenSSL 1.1.1k ([#828](https://github.com/cossacklabs/themis/pull/828)).
ilammy marked this conversation as resolved.
Show resolved Hide resolved
- Updated Carthage examples to use Themis XCFramework ([#823](https://github.com/cossacklabs/themis/pull/823)).

_Code:_

- **Objective-C / Swift**

- `themis` for CocoaPods now uses XCFrameworks, supports Apple Silicon, and OpenSSL 1.1.1k ([#828](https://github.com/cossacklabs/themis/pull/828)).

## [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
24 changes: 14 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 @@ -88,6 +81,11 @@ Pod::Spec.new do |s|
end
end

# ---------- WARNING! --------------------------------------------
# themis-boringssl is DEPRECATED and will be removed in version 0.14
# Switch to the default subspec in your Podfile: `pod 'themis'`
# ----------------------------------------------------------------
ilammy marked this conversation as resolved.
Show resolved Hide resolved

# use `themis/themis-openssl` as separate target to use Themis with OpenSSL
s.subspec 'themis-openssl' do |so|
# Enable bitcode for OpenSSL in a very specific way, but it works, thanks to @deszip
Expand All @@ -103,6 +101,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 Expand Up @@ -148,6 +147,11 @@ Pod::Spec.new do |s|
end


# ---------- WARNING! ----------------------------------------------
# themis-boringssl is DEPRECATED and will be removed in version 0.14
# Switch to the default subspec in your Podfile: `pod 'themis'`
# ------------------------------------------------------------------

# use `themis/themis-boringssl` as separate target to use Themis with BoringSSL
s.subspec 'themis-boringssl' do |so|

Expand Down