A tiny SSH tunnel menu bar helper written in SwiftUI.
This repo already includes:
.gitignorefor Xcode/Swift, to keep your repo clean.- GitHub Actions workflows:
CI(build Release on pushes/PRs tomain/master).Release(build and upload a zipped app on tags that start withv).
- A local packaging script:
scripts/build_and_package.shto build unsigned Release and zip the app.
# From repo root
bash scripts/build_and_package.sh
# Output
# - Build artifacts in: build/Build/Products/Release
# - Zipped app at: dist/ProxyMb-macos.zipNote: The local build and CI builds are unsigned (CODE_SIGNING_ALLOWED=NO). If you plan to distribute to other Macs, consider adding Developer ID signing and notarization (see below).
# Initialize (if not already)
git init
git add .
# First commit
git commit -m "feat: initial commit (ProxyMb + CI/Release)"
# Add your remote (replace YOUR_NAME and REPO)
git remote add origin [email protected]:YOUR_NAME/REPO.git
# Push the code
git branch -M main
git push -u origin main- Triggers: push/PR to
mainormaster. - Workflow:
.github/workflows/ci.ymlbuilds an unsigned Release with Xcode onmacos-latest.
Create a semver-style tag starting with v (e.g. v0.1.0). The Release workflow will:
- Build a Release (unsigned),
- Package
ProxyMb.appintoProxyMb-macos.zip, - Publish a GitHub Release and upload the zip as an asset.
# Bump version (optional): update your app version in Xcode if desired
# Create and push tag
git tag v0.1.0
git push origin v0.1.0After a few minutes, check your repo's Releases page; you should see ProxyMb-macos.zip attached.
For broader distribution, you should sign and notarize:
- Create a Developer ID Application certificate in your Apple Developer account.
- Export the certificate and keychain password into GitHub Secrets (e.g.
MACOS_CERT_BASE64,MACOS_CERT_PASSWORD,KEYCHAIN_PASSWORD). - Update the Release workflow to import the certificate, enable signing, and add a notarization step (e.g.,
xcrun notarytool).
This repo uses unsigned builds by default to keep setup simple.
- Project:
ProxyMb.xcodeproj - Scheme:
ProxyMb - App target:
ProxyMb(macOS)
- If the GitHub runner picks a wrong Xcode, the workflow pins to
/Applications/Xcode.app. - If the build fails due to signing, confirm
CODE_SIGNING_ALLOWED=NOis present. - For local packaging script, ensure it’s executable:
chmod +x scripts/build_and_package.shThis project is licensed under the MIT License — see the LICENSE file for details.