Why linker link static libraries with errors? iOS

Yaroslav Skachkov picture Yaroslav Skachkov · Sep 27, 2018 · Viewed 54.3k times · Source

I have a problem with linking my mixed language framework to a project.

1) I create a framework with Swift and Objective-C classes.

2) The main logic was stored in the Swift file. For example the class with a method that calls NSLog("Swift log was called").

3) Objective-C file has a class that has a method in which I create an instance of Swift class and call Swift-log method.

4) I link this framework with my Objective-C project, I can call all that I need in this project, but when I want to build this project I receive error "linker command failed with exit code 1 (use -v to see invocation)"

And warnings:

ld: warning: Could not find auto-linked library 'swiftFoundation'

ld: warning: Could not find auto-linked library 'swiftDarwin'

ld: warning: Could not find auto-linked library 'swiftCoreFoundation'

ld: warning: Could not find auto-linked library 'swiftCore'

ld: warning: Could not find auto-linked library 'swiftCoreGraphics'

ld: warning: Could not find auto-linked library 'swiftObjectiveC'

ld: warning: Could not find auto-linked library 'swiftDispatch'

ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'

I also saw the solution with importing empty Swift-file, but it necessary to make a project without any trash.

Answer

Hussam Kurd picture Hussam Kurd · Feb 8, 2019
  1. Open ios/YourAppName.xcodeproj in Xcode
  2. Right-click on Your App Name in the Project Navigator on the left, and click New File…
  3. Create a single empty Swift file to the project (make sure that Your App Name target is selected when adding)
  4. when Xcode asks, press Create Bridging Header and do not remove Swift file then. re-run your build.

This should fix the problem