diff --git a/.gitignore b/.gitignore
index 3b29812086f28a2b21884e57ead495ffd9434178..bc1000195251d7d8595e50fc5908862f61abbb1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ DerivedData/
 .swiftpm/config/registries.json
 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
 .netrc
+/.build-bindings
diff --git a/build-bindings.sh b/build-bindings.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c307b05e69952f3815b492faa16cfe7263eff7dd
--- /dev/null
+++ b/build-bindings.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+#=======================================
+# Configuration
+#=======================================
+
+working_dir="$(pwd)"
+temp_dir="$(dirname $(realpath $0))/.build-bindings"
+client_git_url="https://gitlab.com/elixxir/client.git"
+client_git_dir="$temp_dir/client"
+client_git_commit="$1"
+frameworks_dir="$(dirname $(realpath $0))/Frameworks"
+
+#=======================================
+# Helpers
+#=======================================
+
+message() { 
+  local text=$1
+  echo ""
+  echo "\033[1;32mâ–¶ ${text}\033[0m"
+}
+
+#=======================================
+# Main script
+#=======================================
+
+set -e
+
+if [ ! -n "$client_git_commit" ]; then
+  echo "Invalid option. Usage:"
+  echo "  build-bindings.sh COMMIT_HASH - Build Bindings from provided commit"
+  exit 1
+fi
+
+message "Go version..."
+go version
+
+if [ ! -d "$client_git_dir" ]; then
+  message "Cloning client repo..."
+  git clone $client_git_url $client_git_dir
+else
+  message "Updating client repo..."
+  cd $client_git_dir
+  git reset --hard
+  git fetch origin
+  cd $working_dir
+fi
+
+message "Checkout commit $client_git_commit..."
+cd $client_git_dir
+git switch --detach $client_git_commit
+git reset --hard
+
+message "Build client..."
+go mod tidy
+rm -rf vendor/
+go build ./...
+
+message "Make Bindings.xcframework..."
+go get golang.org/x/mobile/bind
+go install golang.org/x/mobile/cmd/gomobile@latest
+gomobile init
+gomobile bind -target ios gitlab.com/elixxir/client/bindings
+
+message "Move framework..."
+cd $working_dir
+rm -rf "$frameworks_dir/Bindings.xcframework"
+mv "$client_git_dir/Bindings.xcframework" "$frameworks_dir/"
+
+message "Done."