GitHub composite action to automatically build and sign macOS applications using fastlane. Complete support for npm, CocoaPods, Xcode builds, code signing, and notarization.
Complete macOS build automation with intelligent dependency detection
Automatically detects and installs npm, Bundler, and CocoaPods dependencies based on your project structure.
Customizable paths for workspace, project, scheme, and output. Works with any macOS project structure.
Optional code signing with fastlane match and Developer ID for distribution outside the Mac App Store.
Built-in support for Apple notarization to ensure your app is trusted by macOS Gatekeeper.
Built-in caching for npm, CocoaPods, and Xcode DerivedData for faster builds.
Optional ZIP archive creation for easy distribution and upload to GitHub releases.
Get up and running in minutes with these simple examples
# Build unsigned app for local testing
- name: Build macOS App
uses: starburst997/build-macos@v1
with:
workspace_path: "macos/MyApp.xcworkspace"
project_path: "macos/MyApp.xcodeproj"
scheme: "MyApp-macOS"
output_name: "MyApp"
mac_bundle_id: "com.company.myapp"
build_signed: false
# Build and sign for distribution outside Mac App Store
- name: Build macOS App
uses: starburst997/build-macos@v1
with:
# Project configuration
workspace_path: "macos/MyApp.xcworkspace"
project_path: "macos/MyApp.xcodeproj"
scheme: "MyApp-macOS"
output_name: "MyApp"
mac_bundle_id: "com.company.myapp"
# Build configuration
build_signed: true
export_method: "developer-id"
create_zip: true
# Apple credentials
apple_connect_email: ${{ secrets.APPLE_CONNECT_EMAIL }}
apple_developer_email: ${{ secrets.APPLE_DEVELOPER_EMAIL }}
apple_team_id: ${{ secrets.APPLE_TEAM_ID }}
# Match configuration
match_repository: ${{ secrets.MATCH_REPOSITORY }}
match_password: ${{ secrets.MATCH_PASSWORD }}
match_deploy_key: ${{ secrets.MATCH_DEPLOY_KEY }}
# App Store Connect API
appstore_issuer_id: ${{ secrets.APPSTORE_ISSUER_ID }}
appstore_key_id: ${{ secrets.APPSTORE_KEY_ID }}
appstore_p8: ${{ secrets.APPSTORE_P8 }}
# Build React Native macOS app with npm and CocoaPods
- name: Build React Native macOS App
uses: starburst997/build-macos@v1
with:
working_directory: "sample"
workspace_path: "macos/MyApp.xcworkspace"
project_path: "macos/MyApp.xcodeproj"
scheme: "MyApp-macOS"
cocoapods_directory: "macos"
output_name: "MyApp"
mac_bundle_id: "com.company.myapp"
build_signed: true
create_zip: true
# ... add credentials
Versatile solution for various macOS app development workflows