I spent about 4 hours trying to enable Swift
in my Xcode
Objective-C based project. My myproject-Swift.h
file was created successfully, but my Xcode
didn’t see my Swift-classes
. So, I decided to create a new Xcode
Objc-based project and finally, I found the right answer! Hope this post will help someone 🙂
Step by step Swift integration for Xcode Objc-based project:
- Create new
*.swift
file (in Xcode) or add it by using Finder. - Create an
Objective-C bridging header
when Xcode asks you about that. -
Implement your Swift class:
import Foundation // use @objc or @objcMembers annotation if necessary class Foo { //.. }
-
Open Build Settings and check these parameters:
- Defines Module :
YES
Copy & Paste parameter name in a search bar
- Product Module Name :
myproject
Make sure that your Product Module Name doesn’t contain any special characters
- Install Objective-C Compatibility Header :
YES
Once you’ve added
*.swift
file to the project this property will appear in Build Settings - Objective-C Generated Interface Header :
myproject-Swift.h
This header is auto-generated by Xcode
- Objective-C Bridging Header :
$(SRCROOT)/myproject-Bridging-Header.h
- Defines Module :
-
Import Swift interface header in your *.m file.
#import "myproject-Swift.h"
Don’t pay attention to errors and warnings.
- Clean and rebuild your Xcode project.
- Profit!