touchlab / KMMBridge

KMMBridge is a tool that helps publish Kotlin Multiplatform (KMP) Xcode binaries for use from Swift Package Manager (SPM) and CocoaPods.
https://touchlab.co/kmmbridge/
Apache License 2.0
357 stars 20 forks source link

Execution failed for task ':updatePackageSwift'. #248

Open developer-- opened 3 months ago

developer-- commented 3 months ago

Summary

I'm trying to publish KMM module for iOS but iOS Publish action fails with an error

Details

KMMBridge plugin version 0.5.5

Task :linkReleaseFrameworkIosX64
> Task :assembleReleaseIosSimulatorFatFrameworkForCoreXCFramework
> Task :assembleCoreReleaseXCFramework
xcframework successfully written out to: /Users/runner/work/sample-kmm-core/sample-kmm-core/build/XCFrameworks/release/core.xcframework
> Task :zipXCFramework
> Task :publishKMMBridgeFrameworkPublicationToGitHubPackagesRepository
> Task :uploadXCFramework
> Task :updatePackageSwift FAILED
16 actionable tasks: 16 executed
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':updatePackageSwift'.
> java.io.FileNotFoundException: /Package.swift (Read-only file system)
* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org./
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':updatePackageSwift'.

....
Caused by: java.io.FileNotFoundException: /Package.swift (Read-only file system)
    at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:108)
    at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:134)
    at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:134)
    at co.touchlab.faktory.dependencymanager.SpmDependencyManager.writePackageFile(SpmDependencyManager.kt:132)
    at co.touchlab.faktory.dependencymanager.SpmDependencyManager.access$writePackageFile(SpmDependencyManager.kt:42)
    at co.touchlab.faktory.dependencymanager.SpmDependencyManager$configure$updatePackageSwiftTask$1$1.execute(SpmDependencyManager.kt:89)
    at co.touchlab.faktory.dependencymanager.SpmDependencyManager$configure$updatePackageSwiftTask$1$1.execute(SpmDependencyManager.kt:78)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:835)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:808)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
    ... 114 more

After the pipeline error, when I go to github packages, there is KMM package published, but I don't know if it is ok or not

Reproduction

I tried to inlcude Package.swift file at the same level as gradle.build.kts file is, but error is same (when running it without Package.swift file)

addGithubPackagesRepository()
kmmbridge {
    mavenPublishArtifacts()
    spm()
}

Expected result

Github action successfull result

Current state

Github action fails

Possible Fix