A plugin for CocoaPods that creates XCFramework(for internal distribution) for speeding up build time.
馃殰 Still working on development, but partially works
Alternatives
If you are interested in this project or you need
- Hit the 猸愶笍 button to make this project popular.
- Becoming sponsorship in subscription or one-time.
![yellow-button](https://user-images.githubusercontent.com/1888355/146226808-eb2e9ee0-c6bd-44a2-a330-3bbc8a6244cf.png)
- Supports static or dynamic by
use_frameworks! :linkage => :static
- Supports coexisting in source code and frameworks
Managed in issues
- Supports only iOS currently
- some pods fails build
- especially, already provided as framework
- if you found such pod, please report it from issues
- Does not create xcframework for implicit dependencies from a pod
- Make it explicit using
frost_pod
. - For instance,
frost_pod 'Alamofire'
forfrost_pod 'Moya'
- Make it explicit using
- Multiple specifying pods with
pod
andfrost_pod
- Do not use
pod
andfrost_pod
in different target. Please use either one.
- Do not use
- Not inherited current install version in pod
- Specify install version (e.g.
pod 'some', "1.2.0"
)
- Specify install version (e.g.
- Not supported yet building pod that has resource
- Should build all of targets when pod updated - partially building might causes linking error (compile-time or dynamic-linking-time)
- Future updates, completely isolated pods can be build partially.
- Defines pod by
frost_pod
that creates XCFramework. - Builds and creates XCFramework with
-allow-internal-distribution
from build settings CocoaPods generated. - Generates a
podspec.json
that installs XCFramework asvendored_frameworks
frost_pod
uses that generated podspec as a local pod. which installs XCFramework instead of sources.
Make bundler installs cocoapods-frost
Gemfile
gem 'cocoapods-frost', git: "https://github.com/muukii/cocoapods-frost.git", branch: "main"
Annotate Podfile that uses cocoapods-frost
as plugin
Podfile
plugin "cocoapods-frost"
Specifies pods with pod_frost
that needs to create XCFramework.
Still, using pod
can be left to build from source code.
Podfile
frost_pod "Moya"
frost_pod "MondrianLayout"
pod "JAYSON"
Build XCFrameworks
$ bundle exec pod frost
Then
$ bundle exec pod install
Use --update-pods
to update pods
$ bundle exec pod frost --update-pods=RxSwift
- Repository
- Podfile
- Podfile.lock
- FrostPodfile.lock
cocoapods-frost
creates, should be managed in git - Pods
- FrostPods <-
cocoapods-frost
creates- GeneratedPods (should be managed in git, git-lfs, something else)
CocoaPods integrates multiple subspecs into one module.
Generated XCFramework contains all of subspecs specified in Podfile.
For instance,
https://github.com/Moya/Moya/blob/master/Moya.podspec
frost_pod "Moya/Core"
frost_pod "Moya/Combine"
that creates Moya.xcframework
includes core implementation and combine supports.
So frost_pod
specifies as whole pod with dropping subspec specifiers.
It supports debugging in VSCode.
MIT