The CocoaPods plugin that integrates XCRemoteCache with the project.
gem install cocoapods-xcremotecache
Build & install the plugin
gem build cocoapods-xcremotecache.gemspec
gem install cocoapods-xcremotecache-{CurrentGemVersion}.gem # e.g. gem install cocoapods-xcremotecache-0.0.1.gem
- Add plugin reference to your project
Podfile
:
plugin 'cocoapods-xcremotecache'
- Configure XCRemoteCache at the top of your
Podfile
definition:
xcremotecache({
'cache_addresses' => ['http://localhost:8080/cache/pods'],
'primary_repo' => 'https://your.primary.repo.git',
'mode' => 'consumer'
})
- (Optional) Unzip all XCRemoteCache binaries to the
xcrc_location
directory (defaults toXCRC
placed next to thePodfile
). If you don't provide all binaries in the location, the plugin will try to download the latest XCRemoteCache artifact from the public GitHub page. - Call
pod install
and verify that[XCRC] XCRemoteCache enabled
has been printed to the console.
An object that is passed to the xcremotecache
can contain all properties supported natively in the XCRemoteCache. In addition to that, there are extra parameters that are unique to the cocoapods-xcremotecache
:
Parameter | Description | Default | Required |
---|---|---|---|
enabled |
A Boolean value that enables XCRemoteCache integration to the project | true |
⬜️ |
xcrc_location |
The location of all XCRemoteCache binaries | {podfile_dir}/XCRC |
⬜️ |
exclude_targets |
Comma-separated list of targets that shouldn't use XCRemoteCache | [] |
⬜️ |
exclude_build_configurations |
Comma-separated list of configurations that shouldn't use XCRemoteCache | [] |
⬜️ |
final_target |
A target name that is build at the end of the build chain. Relevant only for a 'producer' mode to mark a given sha as ready to use from cache | Debug |
⬜️ |
check_build_configuration |
A build configuration for which the remote cache availability is performed. Relevant only for a 'consumer' mode | Debug |
⬜️ |
check_platform |
A platform for which the remote cache availability is performed. Relevant only for a 'consumer' mode | iphonesimulator |
⬜️ |
modify_lldb_init |
Controls if the pod integration should modify ~/.lldbinit |
true |
⬜️ |
xccc_file |
The path where should be placed the xccc binary (in the pod installation phase) |
{podfile_dir}/.rc/xccc |
⬜️ |
remote_commit_file |
The path of the file with the remote commit sha (in the pod installation phase) | {podfile_dir}/.rc/arc.rc |
⬜️ |
prettify_meta_files |
A Boolean value that opts-in pretty JSON formatting for meta files | false |
⬜️ |
fake_src_root |
An arbitrary source location shared between producers and consumers. Should be unique for a project. | /xxxxxxxxxx |
⬜️ |
disable_certificate_verification |
A Boolean value that opts-in SSL certificate validation is disabled | false |
⬜️ |
exclude_sdks_configurations |
array of sdks to not integrate XCRemoteCache (e.g. "watchos*, watchsimulator*") (Experimental) | [] |
⬜️ |
To fully uninstall the plugin, call:
gem uninstall cocoapods-xcremotecache