I want to add SwiftLint to my KM~M~P project, and ...
# multiplatform
z
I want to add SwiftLint to my KM~M~P project, and I got some errors, so I figured I will add it to the sample project provided at https://kotlinlang.org/docs/native-cocoapods.html#module-not-found > Check out the
withXcproject
branch of the sample project, which contains an example of Xcode integration with an existing Xcode project named
kotlin-cocoapods-xcproj
. After adding the "pod("SwiftLint") to the
kotlin-librar/build.gradle.kts
"kotlin > cocoapods" section I get the same error:
Failed to generate cinterop for :kotlin-library:cinteropSwiftLintIosArm64: Process 'command '/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java'' finished with non-zero exit value 1
Any idea how to fix it? Android Studio terminal:
Copy code
which swiftlint
/opt/homebrew/bin/swiftlint
Thanks
The failure
Interestingly other pods are okay
Copy code
> Task :commonizeNativeDistribution UP-TO-DATE
> Task :commonize UP-TO-DATE
> Task :prepareKotlinIdeaImport UP-TO-DATE
> Task :kotlin-library:generateDefAFNetworking UP-TO-DATE
> Task :xcodeVersion UP-TO-DATE
> Task :kotlin-library:podspec UP-TO-DATE
> Task :kotlin-library:podGenIos UP-TO-DATE
> Task :kotlin-library:podInstallSyntheticIos UP-TO-DATE
> Task :kotlin-library:podSetupBuildAFNetworkingIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildAFNetworkingIphoneos
> Task :kotlin-library:cinteropAFNetworkingIosArm64
> Task :kotlin-library:podSetupBuildAFNetworkingIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildAFNetworkingIphonesimulator
> Task :kotlin-library:cinteropAFNetworkingIosSimulatorArm64
> Task :kotlin-library:cinteropAFNetworkingIosX64
> Task :kotlin-library:generateDefCocoaLumberjack UP-TO-DATE
> Task :kotlin-library:podSetupBuildCocoaLumberjackIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildCocoaLumberjackIphoneos
> Task :kotlin-library:cinteropCocoaLumberjackIosArm64 UP-TO-DATE
> Task :kotlin-library:podSetupBuildCocoaLumberjackIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildCocoaLumberjackIphonesimulator
> Task :kotlin-library:cinteropCocoaLumberjackIosSimulatorArm64 UP-TO-DATE
> Task :kotlin-library:cinteropCocoaLumberjackIosX64 UP-TO-DATE
> Task :kotlin-library:generateDefJSONModel UP-TO-DATE
> Task :kotlin-library:podSetupBuildJSONModelIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildJSONModelIphoneos
> Task :kotlin-library:cinteropJSONModelIosArm64 UP-TO-DATE
> Task :kotlin-library:podSetupBuildJSONModelIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildJSONModelIphonesimulator
> Task :kotlin-library:cinteropJSONModelIosSimulatorArm64 UP-TO-DATE
> Task :kotlin-library:cinteropJSONModelIosX64 UP-TO-DATE
> Task :kotlin-library:generateDefPod_dependency UP-TO-DATE
> Task :kotlin-library:podSetupBuildPod_dependencyIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildPod_dependencyIphoneos
> Task :kotlin-library:cinteropPod_dependencyIosArm64 UP-TO-DATE
> Task :kotlin-library:podSetupBuildPod_dependencyIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildPod_dependencyIphonesimulator
> Task :kotlin-library:cinteropPod_dependencyIosSimulatorArm64 UP-TO-DATE
> Task :kotlin-library:cinteropPod_dependencyIosX64 UP-TO-DATE
> Task :kotlin-library:generateDefSDWebImage UP-TO-DATE
> Task :kotlin-library:podSetupBuildSDWebImageIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildSDWebImageIphoneos
> Task :kotlin-library:cinteropSDWebImageIosArm64 UP-TO-DATE
> Task :kotlin-library:podSetupBuildSDWebImageIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildSDWebImageIphonesimulator
> Task :kotlin-library:cinteropSDWebImageIosSimulatorArm64 UP-TO-DATE
> Task :kotlin-library:cinteropSDWebImageIosX64 UP-TO-DATE
> Task :kotlin-library:generateDefSubspec_dependency UP-TO-DATE
> Task :kotlin-library:podSetupBuildSubspec_dependencyIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildSubspec_dependencyIphoneos
> Task :kotlin-library:cinteropSubspec_dependencyIosArm64 UP-TO-DATE
> Task :kotlin-library:podSetupBuildSubspec_dependencyIphonesimulator UP-TO-DATE
> Task :kotlin-library:podBuildSubspec_dependencyIphonesimulator
> Task :kotlin-library:cinteropSubspec_dependencyIosSimulatorArm64 UP-TO-DATE
> Task :kotlin-library:cinteropSubspec_dependencyIosX64 UP-TO-DATE
> Task :kotlin-library:generateDefSwiftLint UP-TO-DATE
> Task :kotlin-library:podSetupBuildSwiftLintIphoneos UP-TO-DATE
> Task :kotlin-library:podBuildSwiftLintIphoneos
What I also don't understand is how it actually builds successfully:
Copy code
BUILD SUCCESSFUL in 28s
72 actionable tasks: 20 executed, 52 up-to-date
😕 1
On my own project I tried running the Xcode project, and SwiftLint works as expected despite these errors.
t
Hi! Could you please try adding the
SwiftLint
module as:
Copy code
pod("SwiftLint") {
    linkOnly = true
}
The issue you encountered happened because CocoaPods plugin assumed you want to import
SwiftLint
as a module in Kotlin code. Unfortunately CocoaPods plugin doesn't handle cases when a pod doesn't have any sources at all, which is the case with the
SwiftLint
pod.
👀 1
z
Works! 🎉 Thanks a lot. It prevents the pod from being compiled as part of the project, making it more like a development dependency I guess, which is perfect. Should have known. 🤷
v
So what the idea to remove/fix t hose warning? because I also have them, but for different pods. linkOnly = true for all the pods?