[CocoaPodsPlugin] Support first-party caching for incremental install #19
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.
When
Podfile
has enabled incremental_installation, e.g.CocoaPods plugin was failing as
pods_project
isnil
(see here). To fix that, this PR optimistically integrates XCRemoteCache to all targets in thePods
project (adding pre/postbuild scripts,CC
,SWIFT_EXEC
etc) on a firstPods
project generation as the plugin will not have a chance to integrate/deintegrate it in consecutive invocations (cocoapods intentionally leavesPods
project intact to not generate it without need).There will be just a tiny performance penalty if no artifacts are ready and XCRemoteCache is disabled - xcprebuild will quit early when a global
.rc/arc.rc
doesn't exist and fallback to the local compilation.By the way, I revealed that
generate_multiple_pod_projects
mode is not fully supported (for now). Such setup changes a way thePods
project is configured and each pod has a separate .xcodeproj.To support it, manually modifying each .xcodeproj to integrate XCRemoteCache (build steps build settings etc.), would be required, but so far CocoaPods Plugins interface does not provide a nice API for that (link).
Standard
generate_multiple_pod_projects
Fixes #18