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

Update supported SDKs and archs for Carthage #733

Merged
merged 4 commits into from
Oct 27, 2020

Conversation

ilammy
Copy link
Collaborator

@ilammy ilammy commented Oct 27, 2020

There are several changes here, bringing Carthage in sync with CocoaPods.

Minimum SDK versions

Just like we did for CocoaPods earlier, bump the minimum SDK versions for Carthage to the defaults suggested by Xcode 12.

arm64 exceptions

As noted before several times, it is not possible to distribute several arm64 slices in a single regular framework. It is possible with XCFrameworks, but we'll still need to do the migration.

For now, keep arm64 disabled for iOS Simulator, disallowing its use with Apple Silicon. CLOpenSSL dependency does not provide this slice either.

Disable arm64 for macOS as well because the current version of CLOpenSSL does not include support for Apple Silicon.

macOS support will be enabled back with an update CLOpenSSL release, but iOS Simulator will have to wait until the XCFramework migration.

CI updates

Since now arm64 is being disabled in Xcode project directly, no special tricks are needed to disable it in Carthage builds run by CI.

However, the scripts provided for examples are kept in place for the benefit of the users. CI tests the latest version from master, but examples refer to 0.13.3 which still does not have arm64 exclusion.

Checklist

  • Change is covered by automated tests
  • The coding guidelines are followed
  • Example projects and code samples are up-to-date (unchanged)
  • Changelog is updated (in case of notable or breaking changes)

Required reviews:

Just like we did for CocoaPods earlier, bump the minimum versions for
Carthage to the defaults suggested by Xcode 12.
As noted before several times, it is not possible to distribute several
arm64 slices in a single regular framework. It is possible with
XCFrameworks, but we'll still need to do the migration.

For now, keep arm64 disabled for iOS Simulator, disallowing its use with
Apple Silicon. CLOpenSSL dependency does not provide this slice either.

Disable arm64 for macOS as well because the current version of CLOpenSSL
does not include support for Apple Silicon.

macOS support will be enabled back with an update CLOpenSSL release, but
iOS Simulator will have to wait until the XCFramework migration.
Since now arm64 is being disabled in Xcode project directly, no special
tricks are needed to disable it in Carthage builds run by CI.

However, the scripts provided for examples are kept in place for the
benefit of the users. CI tests the latest version from master, but
examples refer to 0.13.3 which still does not have arm64 exclusion.
@ilammy ilammy added O-iOS 📱 Operating system: iOS O-macOS 💻 Operating system: macOS W-SwiftThemis 🔶 Wrapper: SwiftThemis, Swift API W-ObjCThemis 🎨 Wrapper: ObjCThemis, Objective-C API M-Carthage Package manager: Carthage, Objective-C and Swift, iOS and macOS labels Oct 27, 2020
@ilammy ilammy merged commit ca0b853 into cossacklabs:master Oct 27, 2020
@ilammy ilammy deleted the carthage/sdk-and-arch branch October 27, 2020 15:23
ilammy added a commit to ilammy/themis that referenced this pull request Oct 28, 2020
* Bump iOS and macOS minimum SDK versions

Just like we did for CocoaPods earlier, bump the minimum versions for
Carthage to the defaults suggested by Xcode 12.

* Exclude arm64 for iOS Simulator and macOS

As noted before several times, it is not possible to distribute several
arm64 slices in a single regular framework. It is possible with
XCFrameworks, but we'll still need to do the migration.

For now, keep arm64 disabled for iOS Simulator, disallowing its use with
Apple Silicon. CLOpenSSL dependency does not provide this slice either.

Disable arm64 for macOS as well because the current version of CLOpenSSL
does not include support for Apple Silicon.

macOS support will be enabled back with an update CLOpenSSL release, but
iOS Simulator will have to wait until the XCFramework migration.

(cherry picked from commit ca0b853)

arm64 hacks are not removed from GitHub Actions since they were never
added to the release/0.13 branch in the first place.

Signed-off-by: Alexei Lozovsky <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
M-Carthage Package manager: Carthage, Objective-C and Swift, iOS and macOS O-iOS 📱 Operating system: iOS O-macOS 💻 Operating system: macOS W-ObjCThemis 🎨 Wrapper: ObjCThemis, Objective-C API W-SwiftThemis 🔶 Wrapper: SwiftThemis, Swift API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants