McBasic™Get McBasic™ ↗
Build 881
Practical guide

Prepare a Mac application for release

Separate a successful build from an unsigned package, a signed artifact and an approved distribution.

Need Windows or Linux?#

McBasic™ runs on Mac and exports DesktopApp projects for Mac, Windows and Linux. This page covers Mac packaging; use the six-target publishing guide for the support matrix, commands and platform limitations.

Make the source reproducible#

Commit the intended source and dependency lockfile. Set the application identity, version and build number in the project. Confirm the target architecture and test with a fresh data directory. An app that only works with a developer’s existing database is not ready for distribution.

Build and inspect the artifact#

Developer CLI — run in the extracted project directory
mcbasic check HelloForms.mcproj
mcbasic build HelloForms.mcproj --configuration Release
mcbasic publish HelloForms.mcproj --rid osx-arm64 --format app --publication-profile mac-compatible

For an Intel target use osx-x64 only when the project and dependencies support it. Read the actual output path reported by the command; do not assume a path from a different build. Publish creates a local unsigned self-contained application, not an App Store submission.

Test outside the development workflow#

  • Launch the built application and exercise its startup path.
  • Confirm images, report definitions, media and migrations are packaged.
  • Test writes in the application data location and a user-selected destination.
  • Try offline operation, a failed request and cancellation.
  • Check resize, keyboard flow and the smallest supported window.

Keep distribution gates separate#

The distribution tooling has explicit preparation, signing, verification and Apple-contact steps. Preparation alone is not signing; signing alone is not notarization; notarization alone is not an App Store approval. Use the selected public distribution profile and review each artifact before advancing.

McBasic™ and your applications are different releases#

McBasic™ itself is planned for the Mac App Store. That distribution plan does not imply that every application created with McBasic™ is already eligible, submitted or approved. Your application has its own identity, data practices, entitlements and release requirements.

Source baseline 20f4bfed6b · Build manifest
Sources & maintenance

Original web explanation, reviewed against these repository sources. API tables and example files follow the implementation.

  • docs/manual/33-publishing-for-windows.md
  • docs/manual/34-publishing-for-linux.md
  • src/McBasic.Build/PublishTargets.cs
  • src/McBasic.Build/PlatformAvailabilityCheck.cs
  • src/McBasic.Runtime/McPlatformAvailability.cs