Skip to content

added binary format distribution support - #381

Draft
aslam9691 wants to merge 2 commits into
grpc:grpc_release_1.84.xfrom
aslam9691:xcframework_release_1.84.x
Draft

aslam9691 wants to merge 2 commits into
grpc:grpc_release_1.84.xfrom
aslam9691:xcframework_release_1.84.x

Conversation

@aslam9691

@aslam9691 aslam9691 commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This PR introduces an automated pipeline to build, package, and publish prebuilt static XCFrameworks (iOS device arm64 + simulator arm64/x86_64) for all 5 gRPC CocoaPods alongside every release, while keeping the existing source CocoaPods release as the default.
With this change, every GitHub Release will distribute both source code (default) and 100% prebuilt static .xcframework binaries

3. Standalone GitHub Actions Release Workflow (.github/workflows/prod_release_xcframework.yml)

  • Runs independently of .github/workflows/prod_release_cocoapod.yml (keeping the default source pod release untouched and fault-isolated).
  • Triggers automatically on release: types: [published] and supports manual workflow_dispatch (by tag).
  • Builds all 5 static *-xcframework.zip archives and *.binary.podspec files, attaches them to the GitHub Release via gh release upload, and publishes the 5 *-XCFramework pods to CocoaPods Trunk in dependency order.

Consumer Usage (Podfile)

# Default: Source pods (unchanged)
pod 'gRPC-ProtoRPC', '~> 1.84.0'
pod 'gRPC', '~> 1.84.0'

# Option 1: Binary XCFramework pods from CocoaPods Trunk
pod 'gRPC-ProtoRPC-XCFramework', '~> 1.84.0'
pod 'gRPC-XCFramework', '~> 1.84.0'
pod 'gRPC-C++-XCFramework', '~> 1.84.0'

# Option 2: Drop-in binary podspecs from GitHub Releases (keeps standard pod names)
release_url = 'https://github.com/grpc/grpc-ios/releases/download/v1.84.0'
pod 'gRPC-Core', :podspec => "#{release_url}/gRPC-Core.podspec"
pod 'gRPC-RxLibrary', :podspec => "#{release_url}/gRPC-RxLibrary.podspec"
pod 'gRPC', :podspec => "#{release_url}/gRPC.podspec"
pod 'gRPC-ProtoRPC', :podspec => "#{release_url}/gRPC-ProtoRPC.podspec"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant