Add an iPhone client sharing the macOS app's SwiftUI code

This commit is contained in:
Ian Gulliver
2026-10-21 22:00:54 -07:00
parent 57d660c57f
commit 9e81e9107d
46 changed files with 1625 additions and 287 deletions
+3 -14
View File
@@ -8,25 +8,14 @@ app=$build/Byre.app
svg=$mac/icon.svg
icns=$build/byre.icns
identity="Developer ID Application"
libtailscale=d1dc45d039edb7759ecbee6ba2aea0c4bca884b8
mkdir -p "$shared" "$build"
if [ "$(security cms -D -i "$mac/byre.provisionprofile" | plutil -extract ProvisionsAllDevices raw -)" != true ]; then
echo "bundle: mac/byre.provisionprofile is not a Developer ID profile" >&2
exit 1
fi
lockf -k "$shared.lock" sh -ec '
kit=$2/libtailscale-$7
if [ ! -d "$kit/TailscaleKit.xcframework" ]; then
rm -rf "$kit"
git clone --quiet https://github.com/tailscale/libtailscale "$kit"
git -C "$kit" checkout --quiet "$7"
make -C "$kit/swift" macos XCPRETTIFIER=cat
xcodebuild -create-xcframework -framework "$kit/swift/build/Build/Products/Release/TailscaleKit.framework" -output "$kit/TailscaleKit.xcframework"
fi
rsync -rlc --delete --exclude /mac/.build --exclude /mac/Frameworks --exclude /hands/.build "$1/mac" "$1/api" "$1/hands" "$2/"
rm -rf "$2/mac/Frameworks"
mkdir -p "$2/mac/Frameworks"
ditto "$kit/TailscaleKit.xcframework" "$2/mac/Frameworks/TailscaleKit.xcframework"
sh "$2/mac/tailscalekit.sh" "$2"
swift build --package-path "$2/mac" --configuration release --no-color-diagnostics
swift build --package-path "$2/hands" --configuration release --no-color-diagnostics
cp "$2/mac/.build/release/Byre" "$3"
@@ -34,8 +23,8 @@ cp "$2/hands/.build/release/byre-hands" "$4"
cp "$2/mac/.build/release/byre-update" "$6"
rm -rf "$5" "$8"
ditto "$2/mac/.build/release/Sparkle.framework" "$5"
ditto "$2/mac/.build/release/TailscaleKit.framework" "$8"
' sh "$root" "$shared" "$build/Byre" "$build/byre-hands" "$build/Sparkle.framework" "$build/byre-update" "$libtailscale" "$build/TailscaleKit.framework"
ditto "$2/mac/.build/release/TailscaleKit.framework" "$7"
' sh "$root" "$shared" "$build/Byre" "$build/byre-hands" "$build/Sparkle.framework" "$build/byre-update" "$build/TailscaleKit.framework"
go -C "$root" build -trimpath -o "$build/server/byre" ./cmd/byre
if [ ! "$icns" -nt "$svg" ]; then
iconset=$build/byre.iconset