-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.yml
More file actions
122 lines (117 loc) · 4.63 KB
/
Copy pathproject.yml
File metadata and controls
122 lines (117 loc) · 4.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
name: HyperCapslock
options:
bundleIdPrefix: me.xueshi
deploymentTarget:
macOS: "14.0"
xcodeVersion: "16.0"
minimumXcodeGenVersion: "2.35"
createIntermediateGroups: true
settings:
base:
SWIFT_VERSION: "5.0"
MACOSX_DEPLOYMENT_TARGET: "14.0"
ARCHS: "$(ARCHS_STANDARD)"
ONLY_ACTIVE_ARCH_Release: "NO"
ENABLE_HARDENED_RUNTIME: YES
CODE_SIGN_STYLE: Automatic
DEVELOPMENT_TEAM: "584KQTRF3B"
MARKETING_VERSION: "26.07.109"
CURRENT_PROJECT_VERSION: "109"
packages:
Sparkle:
url: https://github.com/sparkle-project/Sparkle
from: "2.6.0"
Yams:
url: https://github.com/jpsim/Yams
from: "5.0.6"
Aptabase:
url: https://github.com/aptabase/aptabase-swift
from: "0.3.4"
targets:
HyperCapslock:
type: application
platform: macOS
sources:
- path: HyperCapslock/Sources
- path: HyperCapslock/Resources/Assets.xcassets
info:
path: HyperCapslock/Resources/Info.plist
properties:
LSUIElement: false
# Both follow PRODUCT_NAME. The System Settings Privacy panes show the
# Launch-Services name, which resolves to the .app/executable name
# (PRODUCT_NAME) — NOT these Info.plist keys — so PRODUCT_NAME itself
# must differ per-config to make the Accessibility row read "HyperCapslock-Dev".
CFBundleDisplayName: $(PRODUCT_NAME)
CFBundleName: $(PRODUCT_NAME)
CFBundleShortVersionString: $(MARKETING_VERSION)
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET)
# Sparkle auto-update feed (appcast published as a GitHub Release asset).
SUFeedURL: https://github.com/XueshiQiao/HyperCapslock/releases/latest/download/appcast.xml
# EdDSA public key for verifying Sparkle updates. Regenerate with
# Sparkle's generate_keys; private key lives in the SPARKLE_EDDSA_KEY CI secret.
SUPublicEDKey: T9q4sGi3oIIqlFTMZBprpimBAIEWEN+P7yuaE1e3bCE=
SUEnableInstallerLauncherService: false
NSHumanReadableCopyright: "© 2026 Xueshi Qiao"
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: me.xueshi.hypercapslock
PRODUCT_NAME: HyperCapslock
# Pin the Swift module name so the Debug product rename (HyperCapslock-Dev)
# doesn't rename the module — `@testable import HyperCapslock` must keep working.
PRODUCT_MODULE_NAME: HyperCapslock
CODE_SIGN_ENTITLEMENTS: HyperCapslock/Resources/HyperCapslock.entitlements
COMBINE_HIDPI_IMAGES: true
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
ENABLE_USER_SCRIPT_SANDBOXING: NO
configs:
# Debug is a fully distinct app — its own bundle id AND product name
# ("HyperCapslock-Dev.app") — so it gets its own Accessibility (TCC)
# entry, named "HyperCapslock-Dev", coexisting with the release build
# without re-authorization. (The test target's TEST_HOST is overridden
# to match this Debug product name.)
Debug:
PRODUCT_BUNDLE_IDENTIFIER: me.xueshi.hypercapslock.debug
PRODUCT_NAME: HyperCapslock-Dev
entitlements:
path: HyperCapslock/Resources/HyperCapslock.entitlements
dependencies:
- package: Sparkle
- package: Yams
- package: Aptabase
HyperCapslockTests:
type: bundle.unit-test
platform: macOS
sources:
- path: HyperCapslockTests
dependencies:
- target: HyperCapslock
settings:
base:
GENERATE_INFOPLIST_FILE: YES
PRODUCT_BUNDLE_IDENTIFIER: me.xueshi.hypercapslock.tests
BUNDLE_LOADER: $(TEST_HOST)
TEST_HOST: $(BUILT_PRODUCTS_DIR)/HyperCapslock.app/Contents/MacOS/HyperCapslock
configs:
# The Debug app is renamed to HyperCapslock-Dev.app, so the test host
# (tests run in Debug) must point there instead.
Debug:
TEST_HOST: $(BUILT_PRODUCTS_DIR)/HyperCapslock-Dev.app/Contents/MacOS/HyperCapslock-Dev
# XCUITest (UI-automation) suite — drives the app through the accessibility
# tree. Launches the app with `-uitest` so it never installs the global
# keyboard hook / hidutil remap and uses an isolated temp config.
HyperCapslockUITests:
type: bundle.ui-testing
platform: macOS
sources:
- path: HyperCapslockUITests
dependencies:
- target: HyperCapslock
settings:
base:
GENERATE_INFOPLIST_FILE: YES
PRODUCT_BUNDLE_IDENTIFIER: me.xueshi.hypercapslock.uitests
# Designates the app this UI-test bundle drives. This is the TARGET name,
# not the product name — it resolves to HyperCapslock-Dev.app under Debug.
TEST_TARGET_NAME: HyperCapslock