Building TablePro
Development Builds
Using Xcode
- Open
TablePro.xcodeproj - Select the TablePro scheme
- Select My Mac as the destination
Cmd+Rto build and run, orCmd+Bto build only
Using Command Line
Clean Build
If you hit build issues:Release Builds
Using the Build Script
Build Script Details
build-release.sh does the following:
- Prepares libraries: Extracts the correct architecture from universal libraries
- Builds the app: Runs xcodebuild with Release configuration
- Copies output: Places the app in
build/Release/ - Restores icon: Ensures the full app icon is included
- Verifies architecture: Confirms the binary matches the target
Output Location
Manual Release Build
Native Libraries
TablePro uses native C libraries for database connectivity. These are hosted on a dedicated GitHub Release and downloaded viascripts/download-libs.sh.
Library Setup
build-release.sh) extracts the correct architecture slice automatically from the universal libraries.
Creating DMG
Using the DMG Script
DMG Contents
- TablePro.app
- Applications folder shortcut
- Background image (if configured)
- License file (if included)
Output
Code Signing
Development Builds
Unsigned by default. Fine for local testing.Release Distribution
To sign (requires Apple Developer account):Notarization
For distribution outside the App Store:Build Configuration
Build Settings
| Setting | Debug | Release |
|---|---|---|
| Optimization | None (-O0) | Optimize for Speed (-O) |
| Debug Information | Full | Stripped |
| Assertions | Enabled | Disabled |
| Code Signing | None | Developer ID (optional) |
Architecture Settings
| Setting | Value |
|---|---|
| ARCHS | Standard (arm64, x86_64) |
| ONLY_ACTIVE_ARCH | Yes (Debug), No (Release) |
| VALID_ARCHS | arm64 x86_64 |
Troubleshooting
Missing libraries: Runscripts/download-libs.sh and verify libraries exist for your architecture.
Code signing errors: Build script disables signing. For manual builds, add CODE_SIGN_IDENTITY="" and CODE_SIGNING_REQUIRED=NO.
Architecture mismatch: Clean build and ensure libraries match target. Use the build script.
Xcode issues: Delete derived data: rm -rf ~/Library/Developer/Xcode/DerivedData
CI/CD
GitHub Actions
Example CI workflow:Release Workflow
Build Sizes
Typical sizes (v0.1.1):| Build | Size |
|---|---|
| Debug app | ~15 MB |
| Release app | ~10 MB |
| DMG (arm64) | ~3.5 MB |
| DMG (x86_64) | ~3.5 MB |
