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