问题
I am building a framework in which I need to import some objective-c frameworks for now I need to import "Beaconstac.framework" but as we can not add a bridging header in a swift framework project so my question is how can I use this framework in my project this is not directly accessible in my project I tried
import Beaconstac
but its giving error "No Such Module"
is there any alternative to do this?
回答1:
You need to import the Beaconstac framework in your umbrella header. That is, if you'd ordinarily use, e.g., #import <Beaconstac/Beaconstac.h>
in an Obj-C bridging header, for a framework you need to put that in the umbrella header.
See this chapter in Apple's documentation for more info:
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID130
回答2:
Steps to include an existing Obj C framework in a swift framework project
Say we are creating an “SwiftProj.framework" project in swift which internally has to use an Objective C “ObjC.framework”
- Place the ObjC.framework in Frameworks folder, Link to Swift framework project via Linked Frameworks and Libraries, and create a module.modulemap file at the same level.
- In module.modulemap
module ObjC{
header "ObjC.framework/Headers/ClassA.h"
export *
}
Create xcconfig file (File->New->iOS->Other->Configuration Settings file)
In xcconfig file
SWIFT_INCLUDE_PATHS = $(SRCROOT)/
MODULEMAP_PRIVATE_FILE = $(SRCROOT)/module.modulemap
Now you can access ObjC.ClassA in SwiftProj.framework
回答3:
Create a file called module.modulemap
and include the following contents:
module ObjCFrameworkName {
header "ObjCFrameworkName.framework/Headers/ObjCFrameworkNameUmbrellaHeader.h"
export *
}
Be aware that you need to have the correct path to your Obj-C framework's umbrella header which may differ slightly with what's listed in the example above.
If you are still stuck, I would strongly suggest taking a look at this project.
来源:https://stackoverflow.com/questions/33797212/import-objective-c-framework-into-swift-framework-project