I have created a new swift lib pod using the command : pod lib create MixSwiftObjectiveC found from https://guides.cocoapods.org/making/using-pod-lib-create.html
In this pod lib I need to use a code that's written in Objective-C. If I would have a separate "normal" project I would just include the import in the header file …-Bridging-Header.h. Is there an equivalent for a pod lib? Can Swift and Objective-C be mixed inside a pod lib?
As an example I've created this github: https://github.com/crarau/MixSwiftObjectiveC In order to run the example you'll need XCode Version 7.0 beta 6 and Swift 2.0
Thanks for your help!
I confirmed a working solution, here is how it works:
public
. You may need to consult the documentation
source_files
in your podspec file. Xcode automatically creates an umbrella header for your framework when you create a framework project. If your framework name is NVMDummy
, the header is NVMDummy.h
.Test your pod lib. I created a demo app, added my pod lib and in my ViewController.m
, I did the following:
@import MyPodLibMixingOjbcAndSwift;
// in viewDidLoad
// use objc code in MyLib -> OK...
// use swift code in MyLib -> OK...
The demo app works, so I conclude it works.
Here's the demo: https://github.com/axl411/TestNVMDummy
This is actually pretty straight forward in cocoapod. you just need to define these lines in the .podspec file.
s.source_files = '{YOUR_POD}/Classes/**/*.{swift,h,m}'
s.public_header_files = '{YOUR_POD}/Classes/**/*.h'
"s.public_header_files" automatically create an umbrella header that serves the purpose of the bridging header as well. That's it you should be able to use ObjC classes inside swift classes.
You can also use swift classes in ObjC. you just need to import -swift header in your ObjC file.
#import <YOUR_POD/YOUR_POD-Swift.h>
As long as the dependency is one way, you would not face any issues.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With