Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem with Swift Package Manager - module map should be inside "Include" directory

This is my Package.swift file:

let package = Package(
    name: "MyProject",
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
        .package(url: "https://github.com/AlwaysRightInstitute/cows.git",
                 from: "1.0.0"),
        .package(url: "https://github.com/NozeIO/MicroExpress.git",
                 .branch("branches/swift-nio-lib"))
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(name: "Demo",
                dependencies: [
                    "cows", "MicroExpress"
            ],
                path: ".")

    ]
)

I've already initialised the Package correctly (I think) and the git repos are fetched (using "Swift package fetch/resolve")

Now i'm trying to "Swift build" but I get the follosing error:

'MyTarget' /Users/nimrodshai/Documents/MyProject: error: package has unsupported layout; modulemap '/Users/nimrodshai/Documents/MyProject/Pods/FirebaseCrash/Frameworks/FirebaseCrash.framework/Modules/module.modulemap' should be inside the 'include' directory

Anyone has any idea how do I solve this?

Edit: I've trying uninstalling everything from the Pod file (including firebase) and then build. This is what i'm getting:

'Toky' /Users/nimrodshai/Documents/TOKY-TOY: error: target at '/Users/nimrodshai/Documents/TOKY-TOY' contains mixed language source files; feature not supported
like image 979
Nimrod Shai Avatar asked Jun 10 '26 05:06

Nimrod Shai


1 Answers

Try using the documentation found here for publicHeadersPath for targets. It says:

publicHeadersPath: This property defines the path to the directory containing public headers of a C target. This path is relative to the target path and default value of this property is include. Only valid for C family library targets.

You should be able to set that to the path to your module.modulemap and it will then be happy.

like image 86
bscothern Avatar answered Jun 11 '26 18:06

bscothern



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!