Repository navigation
Release an iOS xcframework SDK; release 0.7.1 - #57
Merged
Merged
Conversation
The macOS release job also builds aarch64-apple-ios and aarch64-apple-ios-sim at IPHONEOS_DEPLOYMENT_TARGET 16.0 and publishes replicant-sdk-<tag>-ios-xcframework.tar.gz: include/ plus a static lib/libreplicant_client.xcframework. workflow_dispatch builds and uploads every archive as workflow artifacts (named dev-<sha>) without publishing a release.
On CMAKE_SYSTEM_NAME iOS, fetch_replicant() selects the ios-xcframework asset and links libreplicant_client.xcframework (CMake 3.28+). A release without the asset fails naming 0.6.5 and 0.7.1 as the first with one. Other platforms are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an iOS prebuilt SDK to the release, so iOS apps can link a released
libreplicant_clientinstead of a local cargo build.Changes
aarch64-apple-iosandaarch64-apple-ios-sim(IPHONEOS_DEPLOYMENT_TARGET=16.0). It packages them as a staticlibreplicant_client.xcframework(slicesios-arm64andios-arm64-simulator) with the usual headers, inreplicant-sdk-<version>-ios-xcframework.tar.gz.workflow_dispatchfor dry runs. A manual run uploads artifacts but doesn't publish a release (create-releaseruns only on tag pushes). Archive names useSDK_VERSION: the tag name for tag builds, as before, anddev-<sha>for manual runs.CMAKE_SYSTEM_NAME=iOSit selects the xcframework asset and links it intoreplicant_client. It needs CMake 3.28+ on iOS, supports static linking only, and gives a clear error for releases without an iOS asset (the first ones with it are 0.6.5 and 0.7.1). Behaviour on macOS, Linux and Windows is unchanged.release/0.6for a 0.6.5 backport.Simulator note
CMake picks the xcframework slice from
CMAKE_OSX_SYSROOTat configure time. To switch device and simulator withxcodebuild -sdkon one project, setCMAKE_XCODE_LINK_BUILD_PHASE_MODE=KNOWN_LOCATION. There is no x86_64 simulator slice.Verification
FetchReplicant.cmakedownload and extract path, for device and arm64 simulator, on both versions.softprops/action-gh-release@v1warning.Only CI can verify the GitHub job and the release upload. After merge, run
gh workflow run release.yml --ref mainand check thereplicant-sdk-macosartifact before tagging v0.7.1.