This project builds a Swift package that provides Swift language bindings for the
bdk
library. The Swift language bindings are created by the bdk-ffi
project which
is included as a git submodule of this repository.
To use the Swift language bindings for bdk
in your Xcode iOS or MacOS project add
the github repository (https://github.com/bitcoindevkit/bdk-swift) and select one of the
release versions. You may then import and use the BitcoinDevKit
library in your Swift
code. For example:
import BitcoinDevKit
...
let desc = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)"
let config = DatabaseConfig.memory(junk: "")
let wallet = try OfflineWallet.init(descriptor: desc, network: Network.regtest, databaseConfig: config)
let address = wallet.getNewAddress()
If you are a maintainer of this project or want to build and publish this project to your own Github repository use the following steps:
-
Clone this repository and init and update it's
bdk-ffi
submodule.git clone https://github.com/bitcoindevkit/bdk-swift git submodule update --init
-
Follow the "General"
bdk-ffi
"Getting Started (Developer)" instructions. -
Install the latest version of Xcode, download and install the advanced tools.
-
Ensure Swift is installed.
-
Install required targets.
rustup target add aarch64-apple-ios x86_64-apple-ios rustup target add aarch64-apple-ios-sim --toolchain nightly rustup target add aarch64-apple-darwin x86_64-apple-darwin
-
Build
bdk-ffi
Swift bindings andbdkFFI.xcframework.zip
../build.sh
-
Update the
Package.swift
file with the new expected URL for thebdkFFI.xcframework.zip
file and new hash as shown at the end of the build.sh script. For example:.binaryTarget( name: "bdkFFI", url: "https://github.com/bitcoindevkit/bdk-swift/releases/download/0.1.3/bdkFFI.xcframework.zip", checksum: "c0b1e3ea09376b3f316d7d83575e1cd513fc4ad39ef8cf01120a3a1d7757fb97"),
-
Commit the changed
Package.swift
and tag it with the new version number.git add Package.swift git commit -m "Bump version to 0.1.3" git tag 0.1.3 -m "Release 0.1.3" git push --tags
-
Create a github release for your new tag.
-
Upload the newly created zip to the new github release and publish the release.
-
Test the new package in Xcode. If you get an error you might need to reset the Xcode package caches: File -> Packages -> Reset Package Caches.