Obj-C Package with Swift Dependency Not Accessible in Swift

I've searched through the Forums and found similar questions but thus far none of the answers seem to work for the case I am running into.

I have a Swift Package defined like so as an example:

@objcMembers public class SwiftClass: NSObject {

    public convenience init?(authorization: String) {
        self.authorization = authorization

This is then used by my Obj-C code like so in my .m:

@import SwiftCore;

@implementation ExampleObjC

- (instancetype)initWithSwiftClass:(SwiftClass *)swiftClass {
    if (self = [super init]) {
        _swiftClass = swiftClass;
    return self;

And my .h file is like so:

@class SwiftClass;

@interface ExampleObjC : NSObject

- (instancetype)initWithSwiftClass:(SwiftClass *)swiftClass NS_DESIGNATED_INITIALIZER;


My Package.swift is defined as the following:

// swift-tools-version:5.7

import PackageDescription

let package = Package(
    name: "MyPackage",
    platforms: [.iOS(.v14)],
    products: [
            name: "ExampleObjC",
            targets: ["ExampleObjC"]
            name: "SwiftCore",
            targets: ["SwiftCore"]
    targets: [
            name: "ExampleObjC",
            dependencies: ["SwiftCore"],
            publicHeadersPath: "Public"
            name: "SwiftCore",
            path: "Sources/SwiftCore",
            exclude: ["Info.plist"]

In the following cases this works as expected with other package managers:

  • Cocoapods - in ObjC project
  • Cocoapods - in Swift project
  • Carthage - in ObjC project
  • Carthage - in Swift project
  • Swift Package Manager - in ObjC project

This setup does not work in the following:

  • Swift Package Manager - Swift project

The Swift project is defined like so:

import SwiftCore
import ExampleObjC

class ViewController: UIViewController {
        override func viewDidLoad() {
            let swiftClass = SwiftClass(authorization: "my-string")
            let example = ExampleObjC(swiftClass: swiftClass)

The above returns the error: Argument passed to call that takes no arguments.

It seems like SPM in a Swift project with this setup cannot find the -Swift headers and therefore cannot expose them to the Swift project. Is there a specific set up that should be used to force SPM to expose the headers for consumption by the Swift project or is this expected? Since this works for everything except SPM + Swift, I would have to think this is either a bug or there is a setup step I have missed.