To check my understanding of CBL project setup for Swift, I am trying to “recreate” the Swift version of the Grocery-Sync-iOS project. (It would be lovely to have a Swift version of Building your first Couchbase Lite iOS app.)
I am getting build errors with symbols that obviously should be defined, such as:
CBLDatabase
CBLManager
CBLReplication
Here’s what I did to recreate the project (I think):
- Create a new 1-window iOS app in Xcode
- Copy everything from Grocery-Sync’s
DemoAppDelegate.swift
to the new project’sAppDelegate.swift
- Copy everything from Grocery-Sync’s
RootViewController.swift
to the new project’sViewController.swift
- Copied Grocery-Sync’s
Utilities.Swift
to my project’s source folder and added it to the project - Added
CouchbaseLite.framework
andCouchbaseLiteListener.framework
to the project - Followed the instructions for Creating a New Project on the CBL site’s tutorial to change the Other Linker Flags to
-ObjC
in Build Settings and added the 5 frameworks listed in the documentation to the Build Phases Link Binary with Libraries - My project is called cb1, so I (manually) created a cb1-
Bridging-Header.h
that contains
#import <CouchbaseLite/CouchbaseLite.h>
Then I build, and get a slew of failures due to undefined symbols such as the ones listed at the beginning of post.
I can’t follow the tutorial past that, because I’m working in Swift. (I did, however, go through the tutorial in Objective-C first.) What am I missing? The Grocery-Sync project builds, but mine doesn’t. Obviously I’ve omitted a necessary step.
I would think this post and, hopefully, responses with a solution will be of interest to anyone trying to build their first Swift CBL app.