project.yml

name: Amped
options:
  bundleIdPrefix: dev.gustaf
  deploymentTarget:
    macOS: "14.0"
  createIntermediateGroups: true
  groupSortPosition: top

settings:
  base:
    MARKETING_VERSION: "1.0"
    CURRENT_PROJECT_VERSION: "1"
    SWIFT_VERSION: "5.0"
    # Ad-hoc sign for local builds. For a working helper + a shippable build,
    # set DEVELOPMENT_TEAM and a "Developer ID Application" identity (see README).
    CODE_SIGN_IDENTITY: "-"
    CODE_SIGN_STYLE: Manual
    DEVELOPMENT_TEAM: ""

targets:
  Amped:
    type: application
    platform: macOS
    sources:
      - path: Sources
      - path: Shared
      # The asset catalog (app icon) must live under `sources` — XcodeGen has no
      # `resources` key and silently ignores it, which would drop the icon.
      - path: Resources/Assets.xcassets
    dependencies:
      - target: AmpedHelper
        copy:
          destination: executables
          # Don't re-sign on copy — that clobbers the helper's own Developer ID
          # signature with ad-hoc. The helper is signed by its target; the app's
          # final signing seals it.
          codeSign: false
    postBuildScripts:
      - name: Embed LaunchDaemon plist
        basedOnDependencyAnalysis: false
        script: |
          set -e
          DEST="${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Library/LaunchDaemons"
          mkdir -p "$DEST"
          cp "${SRCROOT}/Helper/dev.gustaf.Amped.Helper.plist" "$DEST/"
    settings:
      base:
        PRODUCT_NAME: Amped
        PRODUCT_BUNDLE_IDENTIFIER: dev.gustaf.Amped
        ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
        ENABLE_HARDENED_RUNTIME: YES
        COMBINE_HIDPI_IMAGES: YES
    info:
      path: Resources/Info.plist
      properties:
        CFBundleDisplayName: Amped
        CFBundleShortVersionString: "$(MARKETING_VERSION)"
        CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
        LSMinimumSystemVersion: "14.0"
        LSUIElement: true
        NSHumanReadableCopyright: "Amped"

  AmpedHelper:
    type: tool
    platform: macOS
    sources:
      - path: Helper
        excludes:
          - "*.plist"
      - path: Shared
    settings:
      base:
        PRODUCT_NAME: AmpedHelper
        PRODUCT_BUNDLE_IDENTIFIER: dev.gustaf.Amped.Helper
        GENERATE_INFOPLIST_FILE: YES
        CREATE_INFOPLIST_SECTION_IN_BINARY: YES
        SKIP_INSTALL: YES
        ENABLE_HARDENED_RUNTIME: YES