Swift bindings for the Chromium Embedded Framework.
Xcode 10.1, Swift 4.2 (see notes below)
Supported target platforms: macOS 10.9+, 10.10+, 10.11+ (currently x86_64 only)
Required tools: jq, xcpretty
To set up your environment:
$ brew install jq
$ gem install xcpretty
You can now build CEF.swift using Carthage. Just add the following line to your Cartfile
:
github "lvsti/CEF.swift" "<branch_specifier>"
(For the branch_specifier
, see the notes on branches below.)
Note that the bootstrap build will take quite some time as CEF.swift has to fetch and build external dependencies as well.
- fetch this repo
- switch to the appropriate branch in CEF.swift to match the CEF distribution (see notes below)
- run
scripts/setup.sh
from the repo root - now you are ready to compile the CEF.swift framework
CEF is developed on multiple branches simultaneously, which differ in API and functionality (see Spotify OpenSource and ChromeStatus). CEF.swift aims at supporting the current stable release branch and a couple more of earlier releases. For any CEF branch NNNN
, the corresponding CEF.swift branch is named cef_NNNN
.
Currently supported branches:
- 4638 (Chrome 95) - Swift 4.2, macOS 10.11+
- 4606 (Chrome 94) - Swift 4.2, macOS 10.11+
- 4577 (Chrome 93) - Swift 4.2, macOS 10.11+
- 4515 (Chrome 92) - Swift 4.2, macOS 10.11+
- 4472 (Chrome 91) - Swift 4.2, macOS 10.11+
- 4430 (Chrome 90) - Swift 4.2, macOS 10.11+
Archived branches (not maintained anymore):
- 4389, 4280 - Swift 4.2, macOS 10.10+
- 4240, 4183, 4147, 4103, 4044, 3987, 3904, 3865, 3809, 3770, 3729, 3683, 3626, 3578, 3538 - Swift 4.2, macOS 10.9+
- 3497, 3440, 3396, 3359, 3325, 3282, 3239, 3202, 3163 - Swift 4.1, macOS 10.9+
- 3112, 3071, 3029, 2987, 2924, 2883, 2840, 2785, 2743, 2704 - Swift 3.0, macOS 10.9+
- 2623, 2526, 2454, 2357 - Swift 2.3, macOS 10.9+
Check out the (pretty skinny) CEFDemo app under Samples/CEFDemo
to get the basic idea of how a CEF-based app should look like. For more inspiration, take a look at the cefsimple
and cefclient
apps shipped with the CEF binary distribution.
CEF.swift is just a (partial) language wrapper around CEF. Once you can get a webpage to load, you are pretty much set on the integration side. If, later on, you bump into a problem, you should first go and check the official CEF forum for guidance unless it is clearly a flaw in the Swift bindings themselves (in which case please create an issue here).
This project is incomplete, untested, and most likely unstable, so use it at your own risk. Bug reports and suggestions are welcome though.