Summary
I wanted to distribute a snapshot build via Cocoapods but the url created by the MavenPublishArtifactManager.artifactPath is not the proper url to the snapshot build.
Details
We're using azure as our artifact repository for xcframeworks and one of its limitations is that you cannot overwrite published artifacts unless you append SNAPSHOT to its version. Snapshot builds have a different naming convention and do not follow the ...$kmmbridgeArtifactId-$version.zip url naming that the MavenPublishArtifactManager.artifactPath creates.
I also previously created a custom gradle task to make sure that the actual version in the generated podspec follows the proper naming convention so it passes pod lint such that if the version is 0.1.0-SNAPSHOT it becomes 0.1.0.beta in the podspec when generated.
Reproduction
- Change artifact version to 0.1.0-SNAPSHOT
- Use azure as artifact repository
- Run
kmmBridgePublish
Expected result
The generated podspec should refer to the actual URL of the maven artifact which is something like this ...sdk-kmmbridge/0.1.0-SNAPSHOT/sdk-kmmbridge-0.1.0-20230418.083616-1.zip
Current state
The generated podspec refers to ...sdk-kmmbridge/0.1.0-SNAPSHOT/sdk-kmmbridge-0.1.0-SNAPSHOT.zip which is not the actual URL of the maven artifact
Summary
I wanted to distribute a snapshot build via Cocoapods but the url created by the
MavenPublishArtifactManager.artifactPathis not the proper url to the snapshot build.Details
We're using azure as our artifact repository for xcframeworks and one of its limitations is that you cannot overwrite published artifacts unless you append
SNAPSHOTto its version. Snapshot builds have a different naming convention and do not follow the...$kmmbridgeArtifactId-$version.zipurl naming that theMavenPublishArtifactManager.artifactPathcreates.I also previously created a custom gradle task to make sure that the actual version in the generated podspec follows the proper naming convention so it passes
pod lintsuch that if the version is0.1.0-SNAPSHOTit becomes0.1.0.betain the podspec when generated.Reproduction
kmmBridgePublishExpected result
The generated podspec should refer to the actual URL of the maven artifact which is something like this
...sdk-kmmbridge/0.1.0-SNAPSHOT/sdk-kmmbridge-0.1.0-20230418.083616-1.zipCurrent state
The generated podspec refers to
...sdk-kmmbridge/0.1.0-SNAPSHOT/sdk-kmmbridge-0.1.0-SNAPSHOT.zipwhich is not the actual URL of the maven artifact