A lightweight macOS menu bar app for quickly composing and queuing posts to Buffer.
0

Configure Feed

Select the types of activity you want to include in your feed.

buffit-mac / RELEASE.md
4.2 kB

Release Instructions for Buffit#

How to build and release a new version of Buffit on GitHub.

Prerequisites#

  • Xcode installed
  • GitHub repository set up
  • Version number ready (use semantic versioning: v1.0.0, v1.0.1, etc.)

Step 1: Update Version#

Update the app version in Xcode:

  1. Open BufferQueue.xcodeproj
  2. Select the BufferQueue target
  3. Go to Build Settings
  4. Search for "Version" and update:
    • Marketing Version (e.g., 1.0.0)
    • Build Number (e.g., 1)

Or edit Info.plist:

<key>CFBundleShortVersionString</key>
<string>1.0.0</string>

Step 2: Build Release#

Run the build script:

cd /Volumes/Media/xcode/BufferQueue/BufferQueue
./build-release.sh

This will:

  • ✅ Compile the app in Release mode (optimized)
  • ✅ Create Buffit.dmg (distribution package)
  • ✅ Create release/Buffit.app (direct app)

Step 3: Test the DMG#

Before releasing, test installation:

  1. Mount the DMG: Open Buffit.dmg
  2. Drag Buffit to Applications
  3. Open System Settings → Privacy & Security
  4. Click "Open Anyway" if prompted
  5. Test core functionality:
    • Connect with Buffer API key
    • Select channels
    • Compose and upload image
    • Post to Buffer

Step 4: Create GitHub Release#

Via GitHub Web:#

  1. Go to your GitHub repository

  2. Click Releases (right sidebar)

  3. Click Create a new release

  4. Set release info:

    • Tag version: v1.0.0 (must match app version)
    • Release title: Buffit v1.0.0
    • Description:
      ## 🎉 Buffit v1.0.0
      
      ### Features
      - ✨ New feature here
      - 🐛 Fixed bug here
      
      ### Installation
      1. Download `Buffit.dmg`
      2. Open DMG and drag to Applications
      3. Open Buffit from Applications
      4. Approve in System Settings if prompted
      5. Add your Buffer API key and enjoy!
      
      ### System Requirements
      - macOS 12.0 or later
      
      See [README.md](README.md) for full installation instructions.
      
  5. Click Choose Files (or drag):

    • Upload Buffit.dmg
  6. Click Publish release

Via GitHub CLI:#

# Create release with DMG
gh release create v1.0.0 \
  --title "Buffit v1.0.0" \
  --notes "See README.md for installation instructions" \
  ./Buffit.dmg

Step 5: Distribute#

Share the release link:

  • Direct: https://github.com/yourusername/BufferQueue/releases/tag/v1.0.0
  • Direct DMG: https://github.com/yourusername/BufferQueue/releases/download/v1.0.0/Buffit.dmg

Important Notes#

Code Signing#

Since you're not using an Apple Developer Account:

  • ⚠️ The app will be unsigned
  • ✅ Users will see a security warning on first launch
  • ✅ Users can approve it in System Settings → Privacy & Security
  • ✅ This is normal for unsigned Mac apps

Apple Notarization#

Notarization requires a paid developer account ($99/year). Without it:

  • Users may see "Cannot verify developer" message
  • This is expected and normal for free, open-source apps
  • Users can still run it by clicking "Open Anyway" in System Settings

Future: If You Pay for Developer Account#

If you ever get an Apple Developer Account:

  1. Code sign the app with your certificate
  2. Notarize it with Apple
  3. Users can then open it without warnings

Troubleshooting#

"App is corrupted" error on user's Mac

  • This is normal for unsigned apps
  • User should: System Settings → Privacy & Security → Click "Open Anyway"
  • Or: xattr -d com.apple.quarantine ~/Applications/Buffit.app

DMG won't open

  • Rebuild: ./build-release.sh
  • Check disk space (DMG creation needs space)

Build fails with architecture errors

  • Make sure build script has both arm64 and x86_64
  • Run: xcode-select --install to update Xcode command line tools

Version Bumping Checklist#

Before each release:

  • Update version in Xcode
  • Update version in Info.plist
  • Test on macOS 12.0+ (compatibility)
  • Update CHANGELOG.md with changes
  • Run ./build-release.sh
  • Test DMG installation
  • Create GitHub release
  • Share with users

Next Release Cycle#

Repeat steps 1-5 for each new version.


Good luck shipping! 🚀