This document provides high-level guidelines for converting CocoaPods dependencies to Bazel packages that are compatible with Tulsi. CocoaPods is a third-party dependency management system for Apple application development.
Note: CocoaPods conversion is a manual process with many variables. CocoaPods integration with Bazel has not been fully verified and is not officially supported.
If you're using CocoaPods, you need to:
Examine the Podfile
files to determine the hierarchy of the Podspecs
.
Take note of the version numbers in the corresponding Podfile.lock
files to ensure that you are pulling the correct Podspecs
.
Document the dependency tree, including the hierarchy of the Podspecs
, resource URLs, filenames, and version numbers.
Podspec
to a Bazel packageTo convert a Podspec
dependency to a Bazel package, do the following:
Download each Podspec
and decompress it into its own directory within the Bazel workspace. All Podspec
s must reside within the same Bazel workspace for Tulsi to be aware of them for inclusion in the Xcode project.
Within the Podspec
directory, create a BUILD
file that specifies the library target(s) referencing the source and header files on which your project depends.
Based on your project‘s dependency tree, add the Podspec
s target(s) as dependencies to the appropriate targets in the project’s BUILD
file(s).
In the project's BUILD
files, configure package visibility as desired.