Swift consumer -> Swift static library
Xcode version 10.2.1
Create Swift static library
Create a library project or create a library target
File -> New -> Project... -> Cocoa Touch Static Library
//or
Project editor -> Add a Target -> Cocoa Touch Static Library
Add files .swift
Select `.swift` file -> Select File Inspectors Tab -> Target Membership -> Select the target
//or
Project editor -> select a target -> Build Phases -> Compile Sources -> add files
Build library - ⌘ Command + B or Product -> Build
Note 1: Be sure that you build library for the same process architecture as the client code.
Note 2: expose your API that should be visible for consumer using public
or open
access modifiers[About]
Find generated output[Build location]
Products group -> lib<product_name>.a -> Show in Finder
The directory includes
lib<product_name>.a
– a built static library
<product_name>.swiftmodule
. swiftmodule
describe an interface of a library and a compiler version. This folder includes:
.swiftdoc
- docs
.swiftmodule
- public interface/definitions
Swift consumer with Swift static library
Drag and drop
the binary into the Xcode project[About]
Link Binary
[Undefined symbols] [Link vs Embed]
Project editor -> select a target -> General -> Linked Frameworks and Libraries -> add -> Add Others... -> point to `lib<target_name>.a` file
//or
Project editor -> select a target -> Build Phases -> Link Binary With Libraries -> add -> Add Others... -> point to `lib<target_name>.a` file
Add Library Search paths(LIBRARY_SEARCH_PATHS)
[Library not found for] [Recursive path]
Project editor -> select a target -> Build Settings -> Search Paths -> Library Search paths -> add path to the parent of `lib<target_name>.a` file
Add Import Paths
[No such module] [Recursive path]
Project editor -> select a target -> Build Settings -> Swift Compiler - Search Paths -> Import Paths -> add path to a folder with `.swiftmodule`
Import module to the Swift client code [module_name]
import module_name
[More examples]