The XCRemoteCache should successfully authenticate with AWS S3 using Signature V4 when using S3 as the cache storage backend. The cache should be uploaded and downloaded correctly without authentication errors.
Minimal reproduction of the problem with instructions
Set up an AWS S3 bucket for use with XCRemoteCache.
Configure XCRemoteCache to use the S3 bucket with Signature V4 authentication.
Attempt to build and cache a project in Xcode with a configuration that contains a space in its name.
Observe authentication errors when uploading the marker file with an HTTP code 403 SignatureDoesNotMatch.
Producer Logs
[REPLACE THIS WITH YOUR CONSUMER LOGS]
Consumer Logs
[REPLACE THIS WITH YOUR CONSUMER LOGS]
Pods/Carthage file
[REPLACE THIS WITH YOUR PODS OR CARTHAGE FILE CONTENT]
Environment
XCRemoteCache: 0.3.20
cocoapods-xcremotecache: X.Y.Z
HTTP cache server: AWS S3 with Signature V4 authentication
Xcode: 14.2
Post build stats
[REPLACE THIS WITH YOUR POST BUILD STATS]
Others
Operating System: macOS 12
The .zip files are uploaded correctly in the S3 bucket, so it's not a configuration issue.
The issue occurs when uploading the marker file in the format #{commitSha}-#{TargetName}-#{Configuration}-#{Platform}-#{XcodeBuildNumber}-#{ContextBuildSettings}-#{SchemaID}.json. Some configurations have a space in the name, which seems to break the signature process and results in an HTTP code 403 SignatureDoesNotMatch.
We removed the spaces in the configuration name and it works correctly now
My integration setup
[ ] CocoaPods cocoapods-xcremotecache plugin [x] Automatic integration using
xcprepare integrate ...
[ ] Manual integration [ ] CarthageExpected/desired behavior
The XCRemoteCache should successfully authenticate with AWS S3 using Signature V4 when using S3 as the cache storage backend. The cache should be uploaded and downloaded correctly without authentication errors.
Minimal reproduction of the problem with instructions
SignatureDoesNotMatch
.Producer Logs
Consumer Logs
Pods/Carthage file
Environment
Post build stats
Others
#{commitSha}-#{TargetName}-#{Configuration}-#{Platform}-#{XcodeBuildNumber}-#{ContextBuildSettings}-#{SchemaID}.json
. Some configurations have a space in the name, which seems to break the signature process and results in an HTTP code 403SignatureDoesNotMatch
.